grr
Provides tools for interacting with the Gmail API, enabling users to list messages, retrieve user profiles, and manage Gmail data from the command line.
grr
Google tools from the terminal, at maximum performance. grr-cli is one published Rust package built around the grr command-line binary. Fourteen Google APIs share one OAuth login and one command tree — generated straight from Google's own Discovery Service — while stdout stays clean and machine-readable.
Project site: grr-cli.pages.dev · Privacy
grr is an independent project and is not affiliated with or endorsed by Google.
grr auth login
grr gmail users messages list --user-id me --q "in:inbox" --max-results 5
grr drive files list --page-size 10
grr api describe calendar.events.list
grr schemaInstall
Prebuilt binaries — macOS arm64, Linux x86_64, Linux aarch64, Windows x86_64, and Windows on ARM (aarch64): GitHub Releases
Release binaries are zero-config — an OAuth client is compiled in, so grr auth login works immediately. Archives are .tar.zst (zstd level 22) on unix and .zip on Windows; binaries are UPX-packed with --best --lzma where the compressor supports it — the workflow verifies the packed copy still executes and falls back to the unpacked binary with a warning if not.
From source (the default CLI build requires Rust nightly — see Development):
cargo install --git https://github.com/debanjanbasu/grr-clior from a local clone at the repository root:
git clone https://github.com/debanjanbasu/grr-cli
cd grr-cli
cargo install --path .A source build has no OAuth client compiled in — see Authentication and configuration.
Package managers:
winget install debanjanbasu.grr # Windows (manifest not yet published — submission automated via REPO_WINGET_TOKEN; see Packaging & status)
cargo install grr-cli # crates.ioHomebrew (macOS + Linux), from the debanjanbasu/tap tap:
brew tap debanjanbasu/tap
brew trust debanjanbasu/tap
brew install grrbrew trust is required, not decorative: since Homebrew 4.4 third-party taps are untrusted by default, and brew install refuses to install a formula from an untrusted tap until you trust it once. Skipping that line is the most common first-run failure.
The crates.io CLI build needs nightly Rust and RUSTFLAGS="--cfg reqwest_unstable" for HTTP/3; the prebuilt releases avoid that source-build step. cargo install also produces a binary with no embedded OAuth client, so budget five minutes for grr auth setup (or a .env) on that path.
Shell completions — grr completions <shell> prints scripts from the same tree as grr --help. Bash and zsh: write the script once (refresh after upgrading); both load it lazily (the zsh script is ~2.6 MB). PowerShell and Elvish snippets below run the generator on each shell startup.
# zsh: any directory on $fpath; if ~/.zfunc is not on it yet, add
# `fpath=(~/.zfunc $fpath)` to ~/.zshrc ABOVE compinit (or oh-my-zsh's source line)
mkdir -p ~/.zfunc && grr completions zsh > ~/.zfunc/_grr
# bash (bash-completion 2.x loads this lazily)
mkdir -p ~/.local/share/bash-completion/completions
grr completions bash > ~/.local/share/bash-completion/completions/grr
# PowerShell: add to $PROFILE
grr completions powershell | Out-String | Invoke-Expression
# elvish: add to rc.elv
eval (grr completions elvish | slurp)Fish is not supported yet: clap_complete's fish generator stops below two levels of subcommand nesting, and grr's methods sit three to five levels deep.
Related MCP server: google-workspace-mcp-advanced
60-second quickstart
brew tap debanjanbasu/tap
brew trust debanjanbasu/tap
brew install grr
grr auth login
grr gmail users getProfile --user-id meThere is nothing to configure first: a release binary already carries an OAuth client, so grr auth login opens the browser, you consent, and every service works. Headless machine? grr auth login --device prints a URL + code instead of opening a browser — that flow authenticates as a separate client of type TVs and Limited Input devices (Google's device endpoint rejects the Desktop client with Invalid client type), which release binaries also carry; a source build supplies it with GRR_DEVICE_CLIENT_ID / GRR_DEVICE_CLIENT_SECRET. Google also caps what that flow may ask for: only drive.file, calendar, calendar.readonly, the legacy Calendar/Contacts feeds, userinfo and openid are grantable, so a device login asks for the same flag-derived set the browser flow would (--service / --all-scopes work here too) intersected with that allowlist — one scope outside it fails the whole request. Gmail, Chat, Docs, Sheets, Slides, Tasks, Forms, Apps Script, Analytics and the admin APIs still need the browser flow, and --device --all-scopes will not get them.
Building from source instead of installing a release? Read Authentication and configuration before your first grr invocation.
Authentication and configuration
Release binaries are zero-config. build.rs reads GRR_CLIENT_ID / GRR_CLIENT_SECRET from the build environment — GitHub Actions repo secrets for the official builds — and compiles them in, so GitHub Releases and Homebrew installs need no config file and no console visit.
Source builds bring their own client. cargo install grr-cli compiles the published sources with nothing in the build environment, so that binary has no embedded client. Any one of these fixes it:
A
.envnext toCargo.toml— copy.env.exampleto.env, fill in both values, rebuild.build.rsreads the environment first and.envsecond, so every build after that is zero-config too..envis gitignored; never commit it.Environment variables for a single build —
GRR_CLIENT_ID=… GRR_CLIENT_SECRET=… cargo build --release.grr auth setup— no rebuild required, because it writes~/.grr/config.toml(Windows:%USERPROFILE%\.grr\config.toml) instead.
grr auth setup
Create and store an OAuth client. Release builds ship with one, so this is only needed when using
your own client
Usage: grr auth setup [OPTIONS]
Options:
--client-id <CLIENT_ID> Google OAuth client id (…apps.googleusercontent.com).
Prompted for when omitted
--client-secret <CLIENT_SECRET> Google OAuth client secret. Prompted for when omitted
--print-only Print the instructions and the resolved path, but write
nothing. Useful for a first look, and for agents that only
want the recipe
--force Overwrite an existing ~/.grr/config.toml instead of refusing
--enable-apis Try `gcloud services enable` for the APIs when gcloud is on
PATH
-f, --format <FORMAT> Output format [default: json] [possible values: json, jsonl,
table, pretty]
--readonly Refuse every write method (POST/PATCH/PUT/DELETE); only reads
run
--deny-service <SERVICE> Refuse every method of this service (repeatable)
--deny-verb <VERB> Refuse this HTTP verb (repeatable)
-h, --help Print helpIt checks the client-id shape before writing anything (must end in .apps.googleusercontent.com, and a truncated paste is rejected), rejects a truncated secret, writes the file mode 0600 on unix, and refuses to clobber an existing config.toml without --force. It prints the exact Cloud Console URLs and the gcloud services enable line covering every API behind a command — gmail, calendar-json, drive, people, chat, forms, tasks, docs, sheets, slides, script, analyticsadmin, analyticsdata, and searchconsole …googleapis.com — and --print-only hands you that recipe without touching disk, which is the right first command when you have no client at all:
grr auth setup --print-onlyBecause it runs before any client is resolved, grr auth setup works even when nothing is configured yet: it is the escape hatch, not a last resort. Under a non-TTY stdin (CI, agents, pipes) it errors instead of hanging, so pass --client-id and --client-secret explicitly rather than relying on the prompts.
Resolution order at runtime: GRR_OAUTH__CLIENT_ID / GRR_OAUTH__CLIENT_SECRET → ~/.grr/config.toml → the client compiled into the binary (env wins over the file; the compiled-in client is the fallback). GRR_CONFIG_PATH moves the file; RUST_LOG sets the log level.
Embedding a client secret is acceptable here because Google treats installed-app client secrets as non-confidential — the flow is protected by PKCE, which is always on. The secret lives in GitHub Actions repo secrets and is compiled in at release time; it must never enter the repository or a CI log.
To create a client from scratch, follow docs/gcp-setup.md — you only need that if you are building from source or deliberately want your own client.
The project/fork is Google Rust Rewrite; the Google consent-screen application is named Rust Rewrite. The consent screen is where that shorter name appears.
grr ask and System One (JEV)
grr ask "<request>" routes plain words to a typed method + parameters and prints the plan; --run executes it through the same call path as grr api. Routing is three System One judgments — service, then method, then parameters — each a small HTTP request. The model only ever selects among candidates the CLI supplies: the 14 services, a service's methods, a parameter's enum values or spans found in your request. It cannot invent a method id or a value — the CLI decides what runs.
Set TYPESAFE_API_KEY and it works against TypeSafe's hosted Jev:
export TYPESAFE_API_KEY=...
grr ask "show my unread messages"The env route is preferred: a key in a config file can leak with the file. The [systemone] block in ~/.grr/config.toml is the only other surface:
Key | Default | Meaning |
|
| any provider speaking the System One contract (POST |
|
| model name sent to that endpoint |
| — | sent as |
|
| below this method-choice confidence the plan is flagged, never blocked |
Any key also accepts the generic GRR_SYSTEMONE__ENDPOINT / GRR_SYSTEMONE__MODEL / GRR_SYSTEMONE__API_KEY env form (the same GRR_ route as GRR_OAUTH__*), and TYPESAFE_API_KEY overrides api-key. The key never appears in the printed plan or in a request body — it rides only in the Authorization header.
Pointing endpoint/model at your own provider changes only which model ranks the CLI-supplied candidates; the candidate sets, the typed parameter fill, and what actually executes stay grr's. grr ask honors the global safety flags (--readonly, --deny-service <name>, --deny-verb <VERB>) whether or not you pass --run, and the gate runs as soon as the method is resolved — before the parameter-fill judgment and before any Google request is built or sent.
Usage highlights
grr gmail users messages list --user-id me --q "from:github.com" --max-results 10
grr gmail users messages get --user-id me --id 191f8ab2 --param-format metadata
grr gmail users threads list --user-id me --max-results 10
grr calendar events list --calendar-id primary --time-min 2026-10-01T00:00:00Z --max-results 10
grr drive files list --q "name contains 'report'" --page-size 10
grr drive files export --file-id <id> --mime-type application/pdf
grr chat spaces messages create --parent spaces/AAAA --body-file ./message.json
grr sheets spreadsheets values get --spreadsheet-id 1AbC… --range Sheet1!A1:B10
grr tasks tasklists list
grr transport
grr schemaEvery command that prints data takes -f/--format json|jsonl|table|pretty (default json); grr transport, grr completions and grr skills install print plain text instead. For gmail users messages get, the Gmail MIME parameter named format arrives as --param-format full|metadata|minimal|raw (see the collision rule below), while -f/--format still selects the printed output format. Logs go to stderr, so stdout is always parseable:
grr gmail users messages list --user-id me --q "in:inbox" --max-results 1 | jq -r '.[0].id'grr --version prints the semver on its first line (scripts depend on that), then the crab mascot: in full 24-bit-colour pixel art on a terminal that advertises COLORTERM/direct colour, and as plain ASCII everywhere else — a pipe, TERM=dumb, or NO_COLOR. Set CLICOLOR_FORCE=1 to force the colour logo through a pipe (grr --version | less -R); NO_COLOR still wins over it.
Command reference
The command tree is generated from the committed Discovery index by scripts/generate-commands.ts (CI-gated with --check), so this table is deliberately coarse: grr --help and grr schema are the source of truth, and every one of the 401 methods is a real, typed command.
Group | What it covers | Methods |
|
| — |
|
| - |
| an MCP (JSON-RPC over stdio) server exposing every method as a typed tool; speaks the stateless | - |
|
| 401 |
| the whole command tree as JSON | — |
|
| — |
| negotiated HTTP version + runtime features | — |
|
| — |
| messages, threads, drafts, labels, history, attachments, filters, forwarding, POP/IMAP, send-as, CSE, delegates, watches | 79 |
| calendars, events, instances, ACL, free/busy, colors, settings | 38 |
| files, permissions, comments, replies, revisions, changes, drives, apps, approvals | 64 |
| contacts, connections, contact groups, other contacts, directory people | 24 |
| spaces, members, messages, reactions, media, custom emoji, read state | 54 |
| form bodies, responses, watches, publish settings | 10 |
| tasklists and the tasks inside them | 14 |
| documents | 3 |
| spreadsheets, values, batch operations, developer metadata | 17 |
| presentations, pages, thumbnails | 5 |
| script projects, deployments, versions, processes, running functions | 16 |
| accounts, properties, data streams, custom dimensions and metrics, conversion events | 55 |
| standard, realtime, pivot and batch reports, audience exports | 11 |
| search analytics queries, sitemaps, sites, URL inspection | 11 |
Safety profiles. --readonly, --deny-service <name> and --deny-verb <VERB> are global flags honored by the generated tree, grr api call, grr ask and grr mcp alike — they parse before or after the subcommand, and turn destructive methods into actionable errors:
grr --readonly gmail users messages delete --user-id me --id abc # refused: DELETE
grr --deny-service chat chat spaces list # refused: the chat serviceThe generated tree
Every service command above is generated from the committed index by scripts/generate-commands.ts — there are no hand-written per-service commands and no hand-written per-service clients. scripts/generate-commands.ts reads the committed Discovery index (src/discovery/*.json, ~430 KiB across the 14 services) and emits the whole tree into src/commands/generated.rs — 401 leaves, 994 typed flags, using clap's builder API. A daily workflow refetches Google's Discovery Service, regenerates the index along with the command tree, the per-service agent skills, and the site's coverage table, and opens a PR, so new API surface reaches you without waiting for a grr release. The tree and the index are generated artifacts: never hand-edit them.
The rules, so you can predict any command without memorizing it:
The naming rule. A leaf mirrors its Discovery method id:
gmail.users.messages.list→grr gmail users messages list. Resources nest as subcommands; each leaf also carries its bare method name as a visible alias (list,get— camelCase methods keep their casing, e.g.getProfile).Typed flags per method. Parameter names come from the same ids:
userId→--user-id,maxResults→--max-results. Integers are parsed asi64, booleans are presence flags, repeated parameters repeat (--label-ids a --label-ids b), enum parameters validate their values, and required parameters are enforced by clap.The collision rule. A parameter named
format,query,params,body-file,dry-run, orhelpwould collide with the shared escape hatches, so it is exposed as--param-format/--param-query/ … (seeRESERVED_FLAG_IDSinscripts/script-utils.ts).Untyped bodies. Discovery's request schemas are not part of the index, so
POST/PATCH/PUTbodies pass through--params <JSON>(merged; typed flags win) or--body-file <PATH|->verbatim.Every leaf also carries the escape hatches:
--params <JSON>,--body-file, repeatable--query KEY=VALUE,--dry-run, and-f json|jsonl|table|pretty.
Dispatch resolves the leaf's id against the embedded index and funnels into one shared call path — the same engine grr api call uses. The two routes are interchangeable:
grr api call gmail.users.messages.list --param userId=me --dry-run
grr gmail users messages list --user-id me --dry-run
# byte-identical outputgrr api stays as the flat escape hatch: list [--service] [--filter] [--grouped] to browse, describe <id> for parameters and scopes, call <id> to invoke, refresh [--service] to pull the index forward between releases. Because the index is embedded rather than fetched, both grr api list and grr schema work with no network at all.
Consent starts small: grr auth login requests Gmail, Drive, Calendar, Tasks, Docs, Sheets, Slides and the sign-in scopes, and grr auth login --service <name> adds one service's scopes from the embedded index (--all-scopes asks for the whole ~112-scope union). That default exists because Google's consent screen stops submitting past roughly 27 ticked boxes on an unverified project — with no error at all — so asking for everything makes a first-time login impossible. Every login carries include_granted_scopes, so widening merges with what the account already granted instead of replacing it. Chat's app-authentication scopes (chat.bot, chat.app.*, chat.import) are never requested: a user consent screen cannot show them, and one of them fails the whole authorization with invalid_scope. Everything the index can express stays reachable that way, so a call is never refused for want of a narrower sibling. grr api describe still reports each method's least-privilege scope for a human deciding what a call touches. A 403 therefore means a scope outside the current grant (the message names it — run grr auth login --service <name> for that service) or an API that is not enabled on your Cloud project. Every API behind a command (tasks.googleapis.com, docs.googleapis.com, sheets.googleapis.com, slides.googleapis.com) must still be enabled on your Cloud project — see docs/gcp-setup.md.
Design philosophy
Zero-config. Release binaries carry an OAuth client compiled in by
build.rs, so a fresh install runsgrr auth loginwith nothing to configure.~/.grr/config.tomlis the override, not the prerequisite, and holds only the OAuth client (ID, optionally a secret) plus — if you pointgrr askat your own model — its[systemone]block (seegrr askand System One). Redirect URI, pool sizes, timeouts, and retry policy are compile-time constants tuned for Google's frontends (src/core/http.rs), and the consent set is derived from the embedded index rather than a knob.GRR_CONFIG_PATHoverrides the file location,RUST_LOGthe log level (GRR_OAUTH__*env vars exist for headless overrides) — nothing else is configurable, on purpose.Generated, namespaced services. The command tree is compiled from the Discovery index — the same machine-readable description Google publishes — so method additions land as a daily PR instead of a hand-written backlog. Mail is
grr gmail …; Calendar, Drive, People, Chat, Forms, Tasks, Docs, Sheets, and Slides live alongside it, and account-level concerns stay top-level (grr auth,grr api,grr ask,grr mcp,grr transport,grr schema,grr completions,grr skills). One login covers the default services;grr auth login --service <name>widens it to any other.Self-migrating installs. A newer binary brings the agent skills it installed up to date on its own: files you never touched are replaced, files you edited get a 3-way merge against the bytes grr last wrote, and a conflict leaves your file untouched with the incoming version beside it (
.grr-incoming). Files grr did not install are never touched. The check is lazy — a version compare; nothing is hashed until something actually needs merging.stdout purity. Logs go to stderr, results go to stdout, so
| jqalways works.-f jsonlstreams arrays one object per line.Keyring-first token storage. Tokens live in the OS keyring (Windows Credential Manager, macOS Keychain, Linux Secret Service via D-Bus), with automatic fallback to
<cache dir>/grr/token.jsonon headless systems. A token found in the fallback file auto-imports into the keyring on first sight.GRR_TOKEN_STORE=fileskips the keyring entirely — the switch for scripts, agents, and CI, where an OS approval prompt is a hang rather than a question.Agent-first.
grr schemadumps the complete command tree as JSON with zero configuration — the machine-readable contract for AI agents, discoverable without touching a config file or scraping--help. One fast CLI replaces per-service MCP servers: no MCP setup, justgrr schema. There is also a packaged agent skill at skills/grr/SKILL.md — see Agent skills.
Agent skills
grr ships a packaged agent skill: skills/grr/SKILL.md — the discovery-first discipline (schema → api list → api describe → --dry-run), the method-id naming rule, and the output contract in one file, written for any AI agent. The core skill plus the 14 generated per-service skills are compiled into the binary, so grr skills install writes them into ~/.agents/skills/ with no network (Codex, opencode, Cursor, Gemini CLI, Copilot CLI and omp all read that location; --claude mirrors into ~/.claude/skills/ for Claude Code, which reads nothing else):
grr skills install # all 16 into ~/.agents/skills/ (idempotent; identical files are a no-op)
grr skills install --claude # also mirror into ~/.claude/skills/
grr skills install --force # replace files that differ from the packaged copy
grr skills list # the packaged set, and what each target directory holdsor install straight from the repository with the skills CLI:
npx skills add https://github.com/debanjanbasu/grr-cliThe site's agents guide carries the same contract for humans and harness authors.
Performance
HTTP/3 (QUIC) by default — prior-knowledge h3 with one authenticated probe at startup and silent HTTP/2 fallback;
grr transportshows what was actually negotiated.Tokio multi-threaded runtime, auto-sized to cores — no thread pool to tune.
In-flight request valve — a semaphore (not a thread pool) caps concurrent HTTP requests at 64, staying under Gmail's per-user rate limits so bursts don't self-DOS into 429s. 429s are retried honoring
Retry-After(waits capped at 30s) — a header-less 429 retries on the transient backoff (100–800 ms) instead of surfacing; aRetry-Afterpast the cap is reported (Rate limited: retry after Ns) rather than slept through, and HTTP-dateRetry-Aftervalues are honored. Whole-request timeout is 30s. API requests ride the same probed engine asgrr transport: one engine per service origin, probed once per process, HTTP/2-prior-knowledge fallback rebuilt automatically if the probe fails; a 401 on the data plane fails fast with thegrr auth loginhint.Compression always on — gzip, deflate, zstd, and brotli response decompression.
io_uring file I/O is a Linux-only target-specific dependency, auto-detected at runtime; it is not a Cargo feature.
Measured startup, binary size, and request-latency numbers against the other Google Workspace CLIs live at grr-cli.pages.dev/compare/, checked nightly by an automated workflow and re-measured whenever a new version ships.
Architecture
grr-cli is one published crate at the repository root. src/lib.rs builds the library target grr_cli; src/main.rs is a thin wrapper over src/cli.rs, and the binary is named grr.
.
├── src/
│ ├── core/ # auth/device/oauth/server/store, http.rs,
│ │ # config.rs, config_loader.rs, error.rs,
│ │ # runtime.rs (the io_uring probe)
│ ├── commands/ # auth.rs, api.rs, setup.rs, transport.rs,
│ │ # skills/, mcp.rs, ask.rs, completions.rs,
│ │ # safety.rs (the static
│ │ # + generated.rs (GENERATED — the
│ │ # whole service tree, ~470 KiB) and gen_dispatch.rs
│ │ # (resolves leaf ids, funnels into the shared path)
│ ├── discovery.rs # loader over the embedded index
│ ├── discovery/ # generated *.json index (~430 KiB, committed,
│ │ # refreshed daily by workflow PR)
│ ├── schema.rs
│ ├── output.rs
│ ├── cli.rs
│ ├── lib.rs
│ └── main.rs
└── tests/ # 5 integration test filesOne shared core, no per-service client modules: the CLI speaks Discovery through a single call path (src/commands/api.rs), and the typed request/response models of the 0.3.x library era are gone. The repository also contains the assets/, site/ (the Astro site at grr-cli.pages.dev, deployed from main by Cloudflare Pages), packaging/, and scripts/ material used for the project site and distribution.
Development
grr requires Rust nightly — the build script fails with a clear message on any other toolchain. rust-toolchain.toml floats on the latest nightly and supplies the components needed by the build, while .cargo/config.toml sets the reqwest_unstable cfg for HTTP/3.
cargo build
cargo test
cargo clippy --all-targets -- -D warnings
cargo fmt --all --check
cargo run -- api list
node scripts/fetch-discovery.ts # refresh the Discovery index
node scripts/generate-commands.ts # regenerate the service command tree
node scripts/generate-skills.ts # regenerate skills/<service>/SKILL.md
node scripts/generate-coverage.ts # regenerate the site coverage table
node scripts/generate-changelog.ts # regenerate CHANGELOG.md + site dataEach generator takes --check and exits 1 when its output is stale — that is the CI gate. Change the index or the generator, never src/commands/generated.rs by hand.
Tests never touch real credentials — token paths are injected, and wiremock serves the API endpoints.
RUST_LOG=debugtraces requests; the default level mutes quinn_udp's harmless IPv6 warnings (info,quinn_udp=error).A local build needs an OAuth client before a live call can work: copy
.env.exampleto.envand fill it in (compiled in bybuild.rs), or rungrr auth setupto write~/.grr/config.toml. See CONTRIBUTING.md.cargo run -- api listandcargo run -- schemaneed no client at all — the index is embedded.
Packaging & status
Channel | Install | Status |
GitHub Releases | 5-platform binaries (macOS arm64, Linux x86_64, Linux aarch64, Windows x86_64, Windows on ARM) built on | live — every push to main releases; releases always carries the newest |
crates.io |
| live — one crate, published on every release. Trusted publishing uses OIDC (no stored API tokens) |
winget |
| not yet published — |
Homebrew |
| live (arm64 macOS + x86_64/arm64 Linux) |
The project publishes one package, grr-cli, whose binary is grr. v* tags trigger the release workflow, and crates.io publishing is handled through trusted publishing.
License
MIT — see LICENSE.
Available Tools
402 toolsanalyticsadmin.accounts.deleteA
Marks target Account as soft-deleted (ie: "trashed") and returns it. This API does not have a method to restore soft-deleted accounts. However, they can be restored using the Trash Can UI. If the accounts are not restored before the expiration time, the account and all child resources (eg: Properties, GoogleAdsLinks, Streams, AccessBindings) will be permanently purged. https://support.google.com/analytics/answer/6154772 Returns an error if the target is not found [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get, getDataSharingSettings, list, patch, provisionAccountTicket, runAccessReport, searchChangeHistoryEvents.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the Account to soft-delete. Format: accounts/{account} Example: "accounts/100" | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden and largely meets it: soft-delete vs permanent purge, child resources affected, the absence of a programmatic undo, the not-found error, and the returned post-delete state are all disclosed. Gaps remain on required permissions/authorization and the actual expiration window (deferred to a support URL), and the appended boilerplate calling DELETE "irreversible" sits in mild tension with the trash/undo flow described in the first sentence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core information is front-loaded well, but the entry bloats with a bare support URL, a generic "HTTP DELETE — removes the resource" gloss that repeats the first sentence, and a paragraph about request-body construction that is boilerplate across this tool family. Several sentences are reusable filler rather than tool-specific signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape need not be spelled out, and the destructive consequence chain (trash → purge → children removed) is covered thoroughly. What is missing for a destructive, admin-level operation with no annotations is authorization prerequisites and a concrete expiration timeframe, both of which the agent would need before deciding to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all five parameters including the required `name` pattern are already documented in the schema, which sets the baseline at 3. The description's note about typed parameters winning over `params` and `body_file` supplying a whole body largely restates the schema field descriptions rather than adding new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Marks target Account as soft-deleted") and clarifies the exact semantics with the "trashed" synonym. The closing line enumerates the sibling operations over the same resource (get, list, patch, provisionAccountTicket, runAccessReport, searchChangeHistoryEvents), so an agent can distinguish it from them without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete decision context: there is no API-level restore, restoration must go through the Trash Can UI, and unrecovered accounts are purged with all children after expiration. It also names the sibling set for the same resource, but it never states positively when to choose delete versus, say, patch or a read-only sibling — the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.accounts.getB
Lookup for a single Account [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, getDataSharingSettings, list, patch, provisionAccountTicket, runAccessReport, searchChangeHistoryEvents.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the account to lookup. Format: accounts/{account} Example: "accounts/100" | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| deleted | No | |
| createTime | No | |
| regionCode | No | |
| updateTime | No | |
| displayName | No | |
| gmpOrganization | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does establish this is a read (HTTP GET) returning JSON. However, it spends most of its behavioral content on request-body construction and `body_file`, which is irrelevant to a GET lookup, and says nothing about auth/scope requirements or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose clause is front-loaded correctly, but the middle sentence about building request bodies from typed parameters or `body_file` is boilerplate that does not apply to a read lookup and actively risks confusing the agent. Roughly half the text is inapplicable machinery rather than information about this call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All five parameters are documented at full coverage and an output schema exists, so return shape need not be explained. The read-only nature is conveyed via the HTTP GET tag; the only real gap is that the inapplicable body/`body_file` prose leaves ambiguity about what is actually required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3 and the `name` format/example are already in the schema. The only added semantics is the precedence rule that typed flags beat the `params` map, which is genuinely useful given `params` is a free-form map, but nothing is said about `query` beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Lookup for a single Account") and tags it as [HTTP GET], so the agent knows exactly what it fetches. It also names the sibling set over the same resource, which helps disambiguate from list/delete/patch, though it does not spell out the distinctions itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Alternatives are enumerated (delete, list, patch, runAccessReport, etc.), which implies when this one applies, but the description never states the condition that selects get over list or getDataSharingSettings. Usage is inferable from the name, not from guidance in the text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.accounts.getDataSharingSettingsB
Get data sharing settings on an account. Data sharing settings are singletons [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, list, patch, provisionAccountTicket, runAccessReport, searchChangeHistoryEvents.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the settings to lookup. Format: accounts/{account}/dataSharingSettings Example: `accounts/1000/dataSharingSettings` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| sharingWithOthersEnabled | No | |
| sharingWithGoogleSupportEnabled | No | |
| sharingWithGoogleAnySalesEnabled | No | |
| sharingWithGoogleProductsEnabled | No | |
| sharingWithGoogleAssignedSalesEnabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does carry some burden, and 'HTTP GET' plus 'singletons' usefully signals a safe read of a single per-account object. It says nothing about permissions required, whether the settings are created on first access, or error behavior when no settings exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but roughly half the text is boilerplate about request bodies, `params` maps and `body_file` — machinery irrelevant to a bodyless GET — plus a bare list of seven sibling names with no routing value. That padding dilutes an otherwise two-sentence definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and the singleton + HTTP GET notes cover the essential shape of the call. What remains missing (auth scope, behavior when settings are absent) is minor for a simple read.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the `name` pattern and format example are already fully documented in the schema. The description's only parameter-adjacent content is generic request-construction boilerplate (typed params vs `params` map, `body_file`) that adds no meaning for a GET.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get data sharing settings on an account') and adds a useful qualifier: these settings are singletons, which distinguishes the call from the list-shaped siblings. It does not explicitly contrast itself against the sibling get/list on the same resource beyond listing their names, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list (delete, get, list, patch, provisionAccountTicket, runAccessReport, searchChangeHistoryEvents) gives context but never says when to choose this tool over them or what preconditions apply. Usage is only inferable from the verb 'Get'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.accounts.listA
Returns all accounts accessible by the caller. Note that these accounts might not currently have GA properties. Soft-deleted (ie: "trashed") accounts are excluded by default. Returns an empty list if no relevant accounts are found. Note: The easiest way to retrieve a list of all properties you have access to is by using ListAccountSummaries [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, getDataSharingSettings, patch, provisionAccountTicket, runAccessReport, searchChangeHistoryEvents.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 5 | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous `ListAccounts` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provid | |
| showDeleted | No | [query parameter] Whether to include soft-deleted (ie: "trashed") Accounts in the results. Accounts can be inspected to determine whether they are deleted or not. |
Output Schema
| Name | Required | Description |
|---|---|---|
| accounts | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does add real value: soft-deleted accounts are excluded by default, an empty list is returned when nothing matches, and accounts may lack GA properties. It does not cover auth requirements, pagination behavior, or result ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The account-specific content is front-loaded and useful, but the trailing boilerplate about JSON request bodies, typed flags winning over params, body_file, and a sibling enumeration is largely irrelevant for a GET/list call and dilutes the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and schema docs cover all seven parameters. Combined with the explicit default-exclusion and empty-result notes, an agent has enough to call it correctly; only pagination guidance is implied rather than stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the schema already documents pageSize, pageToken and showDeleted. The description only reinforces the showDeleted default behavior and says nothing extra about pagination or the generic query/params escape hatches.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb and resource (returns all accounts accessible by the caller) and the note explicitly routes property-listing to the sibling ListAccountSummaries, so the tool is distinguishable from accountSummaries.list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the retrieval use case and points to the alternative (ListAccountSummaries) for property access. It lacks an explicit 'don't use this when' statement, but the alternative naming gives strong context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.accounts.patchA
Updates an account [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaAccount object accepting createTime, deleted, displayName, gmpOrganization, name, regionCode, updateTime; pass it via params or whole via body_file Siblings over the same resource: delete, get, getDataSharingSettings, list, provisionAccountTicket, runAccessReport, searchChangeHistoryEvents.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name of this account. Format: accounts/{account} Example: "accounts/100" | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaAccount object. | |
| updateMask | No | [query parameter] Required. The list of fields to be updated. Field names must be in snake case (for example, "field_to_update"). Omitted fields will not be updated. To replace t | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaAccount: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| deleted | No | |
| createTime | No | |
| regionCode | No | |
| updateTime | No | |
| displayName | No | |
| gmpOrganization | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it reveals PATCH semantics, the runtime safety-profile constraint (refused under --readonly), and the return shape (response resource as JSON). It doesn't discuss permissions or partial-vs-full replacement behavior, but the safety constraint is valuable non-obvious context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the safety constraint are front-loaded in a compact form. The redundant 'updates the resource' restatement and the long sibling enumeration are slightly wasteful but don't obscure the message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complete enough: mutation semantics, safety constraint, body construction, and return form are all conveyed, and an output schema exists. Minor gap is the absence of guidance on updateMask behavior (partial update) versus the body, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter including the request_body fields and updateMask. The description restates the body's accepted fields and the params/body_file routing, adding only modest guidance beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Updates an account [HTTP PATCH]' and even clarifies the patch semantics. It lists the sibling operations over the same resource, though it doesn't spell out the semantic distinction (e.g., patch vs update). An agent can still clearly identify what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It discloses a key usage constraint — 'refused under --readonly safety profiles' — which tells the agent when the call will fail. However, it only names the sibling list without explaining when to choose patch over delete/get/list, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.accounts.provisionAccountTicketA
Requests a ticket for creating an account [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaProvisionAccountTicketRequest object accepting account, redirectUri; pass it via params or whole via body_file Siblings over the same resource: delete, get, getDataSharingSettings, list, patch, runAccessReport, searchChangeHistoryEvents.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaProvisionAccountTicketRequest object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaProvisionAccountTicketRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| accountTicketId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does reasonably well: it discloses HTTP POST, that it 'creates or triggers a change', that it is gated behind readonly safety profiles, and that it returns the API response resource as JSON. It omits permissions/authorization needs and what the ticket ultimately enables, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the content is dense but mostly on-point. However the final clause runs on without punctuation ('...whole via `body_file` Siblings over the same resource:') and the sibling enumeration plus body-mechanics repeat information already in the schema, diluting the signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description still notes the response is JSON. For a 5-parameter, zero-annotation mutation tool it covers the safety profile and body construction well; the remaining gap is the absence of authorization/permission expectations and the lifecycle meaning of a 'ticket'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3; the schema already documents query, params, dry_run, body_file and the request_body fields account/redirectUri. The description restates that the body accepts account and redirectUri and mentions the params-vs-body_file routes, adding little beyond the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names a specific verb and resource ('Requests a ticket for creating an account') and is clearly not one of the read/list siblings. It enumerates sibling tools but does not say how this operation differs from them in practice (e.g., that the ticket is a prerequisite to account creation), so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage signal is the incidental note that it is 'refused under --readonly safety profiles', which implies it belongs in a read-write context. The trailing sibling list is a navigation aid but provides no when-to-use/when-not routing or prerequisites (who may request a ticket, what to do with it afterwards).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.accounts.runAccessReportA
Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested for a property. Reports may be requested for any property, but dimensions that aren't related to quota can only be requested on Google Analytics 360 properties. This method is only available to Administrators. These data access records include GA UI Reporting, GA UI Explorations, GA Data API, and other products like Firebase & Admob that can retrieve data from Google Analyti [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaRunAccessReportRequest object accepting dateRanges, dimensionFilter, dimensions, expandGroups, includeAllUsers, limit, metricFilter, metrics and 4 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, getDataSharingSettings, list, patch, provisionAccountTicket, searchChangeHistoryEvents.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| entity | Yes | [URL path segment] The Data Access Report supports requesting at the property level or account level. If requested at the account level, Data Access Reports include all access for | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaRunAccessReportRequest object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaRunAccessReportRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | No | |
| quota | No | |
| rowCount | No | |
| metricHeaders | No | |
| dimensionHeaders | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds genuinely useful context beyond structure: retention limits, admin-only access, and 360 gating. However, the injected '[HTTP POST] — creates or triggers a change; refused under --readonly safety profiles' framing is misleading for what is a read/retrieval report and may cause an agent to avoid a safe read call, and the body is truncated mid-sentence ('Google Analyti').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and eligibility are front-loaded, which is good, but the text is a concatenation of API docs, a misapplied POST/readonly warning, and a mechanical sibling list. The truncated final sentence is dead weight that costs clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and auth/retention constraints are covered, so an agent has most of what it needs. But the mismatch between the advertised property-level reporting and the accounts/ entity path, plus the ambiguous readonly-refusal note, leaves real doubt about correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the request body properties are fully typed, so the schema does the heavy lifting. The description enumerates body fields (dateRanges, dimensions, metrics, filters) which is marginally helpful but largely duplicative, and it never clarifies the account-vs-property semantics of the required `entity` path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb + resource: 'Returns a customized report of data access records', clarifying this is a data-access audit report, not a metrics report. It does not cleanly distinguish itself from the sibling analyticsadmin.properties.runAccessReport, and it confusingly says reports 'can be requested for a property' while the entity parameter is an accounts/ path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real eligibility rules: Administrators-only, 2-year retention window, and the 360-only restriction on non-quota dimensions. These preconditions meaningfully gate calling it, though there is no explicit statement of when to prefer this over analyticsdata runReport or the property-level sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.accounts.searchChangeHistoryEventsB
Searches through all changes to an account or its children given the specified set of filters. Only returns the subset of changes supported by the API. The UI may return additional changes [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaSearchChangeHistoryEventsRequest object accepting action, actorEmail, earliestChangeTime, latestChangeTime, pageSize, pageToken, property, resourceType; pass it via params or whole via body_file Siblings over the same resource: delete, get, getDataSharingSettings, list, patch, provisionAccountTicket, runAccessReport.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| account | Yes | [URL path segment] Required. The account resource for which to return change history resources. Format: accounts/{account} Example: `accounts/100` | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaSearchChangeHistoryEventsRequest object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaSearchChangeHistoryEventsRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextPageToken | No | |
| changeHistoryEvents | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully notes that the tool returns only the subset of changes supported by the API and that the UI may return additional changes, and it flags the --readonly safety-profile refusal. However, the parenthetical '[HTTP POST] — creates or triggers a change' is misleading for a search operation and could confuse an agent about mutability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and useful, but the paragraph is long, run-on, and mixes behavioral notes, request-body structure, and sibling listing. Several clauses could be tightened or moved, and the misleading HTTP POST note distracts from the core read-only search purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be explained. The description still omits practical details such as pagination behavior and rate-limit considerations, and the usage-versus-alternatives story is incomplete. It covers the basic shape of the call but leaves gaps for an agent deciding how to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters and nested request-body fields. The description repeats the field names (action, actorEmail, earliestChangeTime, etc.) and explains that they can be passed via `params` or `body_file`, but adds little meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Searches through all changes to an account or its children given the specified set of filters.' It distinguishes from siblings by listing the other account-level tools, though it does not explain how each sibling differs. An agent can tell it is a change-history search rather than a general list or get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The sibling list names delete, get, list, patch, etc., but does not say which conditions favor searchChangeHistoryEvents over those. The agent must infer usage from the purpose sentence alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.accountSummaries.listB
Returns summaries of all accounts accessible by the caller [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of AccountSummary resources to return. The service may return fewer than this value, even if there are additional pages. If unspeci | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous `ListAccountSummaries` call. Provide this to retrieve the subsequent page. When paginating, all other parameter |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextPageToken | No | |
| accountSummaries | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose '[HTTP GET]' (signaling a safe read) and explains request-body construction mechanics, but it omits auth requirements, pagination behavior, and what 'accessible by the caller' entails. The body_file guidance is generic boilerplate that is arguably irrelevant for a GET list endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in a single clear sentence. The second sentence is long and generic boilerplate about JSON and request bodies that does not earn its place for this specific GET list endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and schema coverage is full. However, with no annotations and no usage guidance, the description leaves gaps around pagination expectations, authentication, and how this differs from accounts.list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters thoroughly. The description merely repeats the typed-parameters-win-over-params-map rule and the body_file override, adding no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns'), resource ('summaries of all accounts'), and scope ('accessible by the caller'). It does not explicitly differentiate from the closely named sibling analyticsadmin.accounts.list, but an agent can tell what resource is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only describes what the tool returns; it gives no indication of when to use this versus alternatives like accounts.list or properties.list, nor any conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.acknowledgeUserDataCollectionA
Acknowledges the terms of user data collection for the specified property. This acknowledgement must be completed (either in the Google Analytics UI or through this API) before MeasurementProtocolSecret resources may be created [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaAcknowledgeUserDataCollectionRequest object accepting acknowledgement; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, getDataRetentionSettings, list, patch, runAccessReport, updateDataRetentionSettings.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| property | Yes | [URL path segment] Required. The property for which to acknowledge user data collection. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaAcknowledgeUserDataCollectionRequest object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaAcknowledgeUserDataCollectionRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present the description carries the full burden, and it does well: it discloses HTTP POST, that it creates/triggers a change, that it is refused under --readonly safety profiles, and that it returns the response resource as JSON. It stops short of noting auth requirements or irreversibility, keeping it at 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and prerequisite are front-loaded, and most sentences carry weight. The trailing sibling enumeration is long and of marginal value, slightly diluting efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and full schema coverage, the description needn't explain return values and correctly omits detail there. It supplies the key prerequisite and mutation behavior, leaving only minor gaps like auth context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents property, params, body_file, and the request_body shape. The description largely restates the params/body_file passing mechanism already captured in the schema and adds little beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Acknowledges) and resource (the terms of user data collection) scoped to the property, and explicitly names the sibling operations over the same resource so it is distinguishable without opening a schema. The prerequisite relationship to MeasurementProtocolSecret is also surfaced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides strong context for when this is needed (before MeasurementProtocolSecret resources may be created) and names the alternative path (the GA UI or this API). It does not explicitly state when-not to call, so it falls just short of the top tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.conversionEvents.createA
Deprecated: Use CreateKeyEvent instead. Creates a conversion event with the specified attributes [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaConversionEvent object accepting countingMethod, createTime, custom, defaultConversionValue, deletable, eventName, name; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The resource name of the parent property where this conversion event will be created. Format: properties/123 | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaConversionEvent object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaConversionEvent: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| custom | No | |
| deletable | No | |
| eventName | No | |
| createTime | No | |
| countingMethod | No | |
| defaultConversionValue | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it declares the HTTP method (POST), that it creates or triggers a change, that it is refused under --readonly profiles, and that it returns the API response resource as JSON. It omits permissions/scopes required and duplicate-handling or error behavior, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the deprecation warning and the core verb, which is the right order. It is dense but nearly every clause carries information, though the field list recital at the end is partly redundant with the schema and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description needn't explain return values, and it still notes they come back as JSON. Parameters are fully covered by the schema, and the deprecation, mutation semantics, and readonly refusal are all disclosed; only auth requirements are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all six parameters including the nested request body are already documented structurally. The description restates the body fields and the params/body_file merge rule, which is marginal added value; the baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates a conversion event') and immediately flags the tool as deprecated in favor of CreateKeyEvent, which lets an agent distinguish it from the keyEvents.create sibling without opening either schema. It further enumerates the sibling operations (delete, get, list, patch) over the same resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The very first token is a directive: 'Deprecated: Use `CreateKeyEvent` instead.' That is an explicit when-not-to-use statement paired with a named alternative, plus a note that readonly safety profiles refuse the call. Nothing about selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.conversionEvents.deleteA
Deprecated: Use DeleteKeyEvent instead. Deletes a conversion event in a property [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the conversion event to delete. Format: properties/{property}/conversionEvents/{conversion_event} Example: "properties/123/conver | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose irreversibility ('irreversible unless a trash/undo flow exists'), refusal under --readonly profiles, and the post-delete return shape. That is meaningful behavioral context most delete tools omit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the deprecation notice and the core action, with sibling routing at the end. Dense but nearly every clause earns its place, aside from the somewhat generic request-body mechanics sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, deprecation, safety profile behavior, and return format, and an output schema exists so return values needn't be detailed further. Adequate for an agent to call correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameter meaning is already documented. The description adds only marginal value by noting that typed parameters win over the params map and that body_file can supply the body; it does not explain the required `name` format beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Deletes a conversion event in a property') and immediately flags deprecation. It also distinguishes this from its same-resource siblings (create, get, list, patch), so an agent can place it precisely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent away with 'Deprecated: Use DeleteKeyEvent instead' and names the sibling CRUD operations on the same resource. Clear selection context, though it doesn't spell out the remaining legitimate conditions for using delete at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.conversionEvents.getA
Deprecated: Use GetKeyEvent instead. Retrieve a single conversion event [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the conversion event to retrieve. Format: properties/{property}/conversionEvents/{conversion_event} Example: "properties/123/conv | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| custom | No | |
| deletable | No | |
| eventName | No | |
| createTime | No | |
| countingMethod | No | |
| defaultConversionValue | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose that this is an HTTP GET returning the resource as JSON, which signals a read-only operation, plus the deprecation status. It says nothing about authorization/scopes, error behavior for a missing or malformed resource name, or idempotency, and the body-building/body_file prose is irrelevant for a GET and adds noise rather than insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Deprecation and purpose are correctly front-loaded, but the second sentence lards in request-body construction and body_file precedence that are meaningless for a GET retrieval, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not required, and all five parameters are fully documented in the schema, leaving deprecation and read-only nature as the main things the description must convey — which it does. Missing auth/permission context keeps it short of a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the resource-name pattern and format example, so the schema already does the heavy lifting and baseline 3 applies. The description's mention that typed parameters win over the params map and that body_file can supply the body largely restates what the schema fields already say.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Retrieve a single conversion event") and explicitly enumerates the sibling operations over the same resource (create, delete, list, patch), so an agent can distinguish it from those siblings without inspecting schemas. The deprecation pointer to GetKeyEvent is front-loaded.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear routing instruction — deprecated, use GetKeyEvent instead — and lists the sibling operations to contrast against, implying use list to enumerate and patch/delete to mutate. It does not spell out explicit when-not conditions beyond the deprecation notice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.conversionEvents.listA
Deprecated: Use ListKeyEvents instead. Returns a list of conversion events in the specified parent property. Returns an empty list if no conversion events are found [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The resource name of the parent property. Example: 'properties/123' | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coe | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous `ListConversionEvents` call. Provide this to retrieve the subsequent page. When paginating, all other parameter |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextPageToken | No | |
| conversionEvents | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden: it discloses deprecation, that this is an HTTP GET (read-only), and that an empty list is returned when nothing matches. However, the generic 'request bodies are built from the typed parameters... or read whole from `body_file`' boilerplate describes body construction that a GET never performs, which is noise bordering on misleading for this operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Deprecation and purpose are correctly front-loaded in the first two sentences, but the trailing HTTP/body_file/params boilerplate is irrelevant to a read-only list call and dilutes the useful content. Trimming that sentence would improve the definition materially.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not required, and the required `parent` plus pagination parameters are fully covered by the schema. Combined with the deprecation notice and empty-list behavior, an agent has nearly everything needed; the only real gap is the unresolvable `ListKeyEvents` alternative name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters (parent, pageSize, pageToken, query, params, dry_run, body_file) are already documented in the schema; baseline 3 applies. The description adds no parameter-specific semantics — its only parameter-adjacent content (typed flags win over `params`) simply restates the schema's own `params` description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource+scope: lists conversion events within a specified parent property, and explicitly names the four sibling operations on the same resource (create, delete, get, patch) so the agent can pick list without opening schemas. The deprecation notice front-loads the most decision-relevant fact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Says to use `ListKeyEvents` instead, which is a genuine when-to-use/alternative signal, but `ListKeyEvents` is not a resolvable tool name — the actual sibling is analyticsadmin.properties.keyEvents.list, so the agent must infer the mapping. No conditions or exclusions beyond the deprecation notice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.conversionEvents.patchA
Deprecated: Use UpdateKeyEvent instead. Updates a conversion event with the specified attributes [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaConversionEvent object accepting countingMethod, createTime, custom, defaultConversionValue, deletable, eventName, name; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name of this conversion event. Format: properties/{property}/conversionEvents/{conversion_event} | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaConversionEvent object. | |
| updateMask | No | [query parameter] Required. The list of fields to be updated. Field names must be in snake case (e.g., "field_to_update"). Omitted fields will not be updated. To replace the enti | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaConversionEvent: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| custom | No | |
| deletable | No | |
| eventName | No | |
| createTime | No | |
| countingMethod | No | |
| defaultConversionValue | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses that the operation is a mutation blocked by --readonly profiles, that the response is the API resource as JSON, and how the body can be supplied (params vs body_file). This is exactly the safety and side-effect context the annotations would otherwise provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: the deprecation warning and replacement come first, then mechanics. It packs a lot into few sentences, though the trailing sibling enumeration is the least essential clause and could be trimmed without losing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating, deprecated tool with an output schema present, the description covers everything an agent needs: deprecation, replacement, read-only refusal, body construction options, and required updateMask semantics are handled by the schema. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so baseline would be 3, but the description adds real value: it enumerates the accepted body fields (countingMethod, createTime, custom, defaultConversionValue, deletable, eventName, name) and explains the two body-passing channels, params and body_file. That clarifies the interplay between the body_file, params, and request_body parameters beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (updates a conversion event), leads with a deprecation notice naming the replacement UpdateKeyEvent, and distinguishes itself from the create/delete/get/list siblings over the same resource. An agent can identify what it does and which tool supersedes it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent away from this tool ("Deprecated: Use UpdateKeyEvent instead") while naming the sibling set for the same resource. It adds the concrete condition that the call is refused under --readonly safety profiles, so an agent knows both the preferred alternative and a hard usage constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.createA
Creates a Google Analytics property with the specified location and attributes [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaProperty object accepting account, createTime, currencyCode, deleteTime, displayName, expireTime, industryCategory, name and 5 more fields; pass it via params or whole via body_file Siblings over the same resource: acknowledgeUserDataCollection, delete, get, getDataRetentionSettings, list, patch, runAccessReport, updateDataRetentionSettings.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaProperty object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaProperty: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| parent | No | |
| account | No | |
| timeZone | No | |
| createTime | No | |
| deleteTime | No | |
| expireTime | No | |
| updateTime | No | |
| displayName | No | |
| currencyCode | No | |
| propertyType | No | |
| serviceLevel | No | |
| industryCategory | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and discloses meaningful behavior: it is an HTTP POST that creates or triggers a change, is refused under readonly profiles, returns the API response as JSON, and accepts the request body via `params` or `body_file`. It does not describe required auth scopes or idempotency, but it provides substantially more behavioral context than a bare mutation description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the description avoids filler. It is dense and packs multiple clauses plus a sibling list into one paragraph, which is informative but slightly harder to scan than a shorter multi-sentence structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex, but the description covers the mutation nature, return behavior, request body type, and input pathways. Since an output schema exists, it need not explain return values in detail; remaining gaps are mainly around permissions and precise when-to-use routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is already 100%, so the baseline is 3. The description adds value by identifying the request body as a GoogleAnalyticsAdminV1betaProperty object, naming several accepted fields like account, createTime, currencyCode, displayName, and industryCategory, and clarifying that it can be passed via `params` or `body_file`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Creates a Google Analytics property with the specified location and attributes' and adds HTTP POST. It also names sibling operations over the same resource, so an agent can distinguish this creation tool from get, list, patch, delete, and related operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is clearly implied for creating a new property and the description explicitly notes it is 'refused under --readonly safety profiles,' which is useful invocation context. It lists sibling tools but does not explicitly say when to prefer create versus patch or update, so it lacks full alternative-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.customDimensions.archiveA
Archives a CustomDimension on a property [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaArchiveCustomDimensionRequest object; pass it via params or whole via body_file Siblings over the same resource: create, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the CustomDimension to archive. Example format: properties/1234/customDimensions/5678 | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaArchiveCustomDimensionRequest object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaArchiveCustomDimensionRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does it well: HTTP POST, 'creates or triggers a change', explicit refusal under readonly profiles, and return of the API response resource. It stops short of saying whether archiving is reversible or what permissions/scopes are required, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and the readonly caveat come first, followed by return format and body-passing mechanics; every clause is load-bearing and there is no filler despite the dense em-dash construction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating call with no annotations, the description covers action, mutation semantics, safety-profile behavior, return type, and body-passing mechanics, and an output schema exists so return values need no elaboration. Missing only prerequisites such as required permissions or reversibility of the archive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates that the body is a GoogleAnalyticsAdminV1betaArchiveCustomDimensionRequest passed via `params` or `body_file`, but that duplicates what the schema already documents for those properties rather than adding new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Archives a CustomDimension on a property') and names the sibling operations over the same resource (create, get, list, patch), so an agent can distinguish it without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a real usage constraint — refused under --readonly safety profiles — which tells the agent when the call will not work, and it lists sibling operations. But it does not say when to archive versus patch or delete a custom dimension, so the choice guidance is only implied by the sibling enumeration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.customDimensions.createA
Creates a CustomDimension. Warning: It's not permissible to use this method to collect data on individual users. In particular, sending user IDs in custom dimensions violates the Google Analytics Terms of Service [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaCustomDimension object accepting description, disallowAdsPersonalization, displayName, name, parameterName, scope; pass it via params or whole via body_file Siblings over the same resource: archive, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. Example format: properties/1234 | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaCustomDimension object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaCustomDimension: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| scope | No | |
| description | No | |
| displayName | No | |
| parameterName | No | |
| disallowAdsPersonalization | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it flags HTTP POST mutation semantics, warns the call is refused under --readonly safety profiles, and cites a ToS restriction on individual-user data. It omits permission/OAuth scope requirements and idempotency behavior, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and warning, and every clause is relevant (ToS, mutation safety, body mechanism, siblings). It is somewhat dense with bracketed asides and em-dashes, which slightly hurts readability but wastes little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still clarifies that the response resource is returned as JSON, and it covers the required parent, body fields, safety profile, and sibling alternatives. Only auth-scope and idempotency details are missing for a mutation tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter including parent, params, and body_file. The description restates the body fields (description, disallowAdsPersonalization, displayName, name, parameterName, scope) but adds no syntax or format meaning beyond the schema — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ("Creates a CustomDimension") and explicitly enumerates the sibling set over the same resource (archive, get, list, patch), so an agent can immediately distinguish create from patch/archive without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The named siblings imply when this tool is preferred over patch/archive, and it tells the agent to supply the body via `params` or `body_file`. It stops short of an explicit 'use this when you need a new dimension vs. modifying an existing one' statement, leaving some inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.customDimensions.getA
Lookup for a single CustomDimension [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: archive, create, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the CustomDimension to get. Example format: properties/1234/customDimensions/5678 | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| scope | No | |
| description | No | |
| displayName | No | |
| parameterName | No | |
| disallowAdsPersonalization | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that this is an HTTP GET returning JSON, which establishes the read-only safety profile, but the request-body/body_file discussion is largely irrelevant to a GET and there is no mention of auth scopes, permissions, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the sibling list is efficient. However, the clause about building request bodies from typed parameters or body_file is boilerplate noise for a GET lookup that accepts no meaningful body, spending words that don't earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the input schema is fully described, so return values and parameters needn't be re-explained. The definition is sufficient to call it correctly; the only gap is absent auth/permission context, which is minor for a simple get.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all five parameters, anchoring the baseline at 3. The description adds precedence semantics ('typed flags win over the params map', body_file override) that isn't in the schema, but it is generic template text rather than tool-specific guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lookup for a single CustomDimension') and explicitly names the sibling operations over the same resource (archive, create, list, patch), so an agent can distinguish get from list without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming the sibling set (archive/create/list/patch) routes the agent away from those when fetching one item, giving clear context. It does not explicitly state the when-to-use condition (e.g. 'use list to enumerate, get when you have a name'), so it falls short of full 5-level guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.customDimensions.listA
Lists CustomDimensions on a property [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: archive, create, get, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. Example format: properties/1234 | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coer | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous `ListCustomDimensions` call. Provide this to retrieve the subsequent page. When paginating, all other parameter |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextPageToken | No | |
| customDimensions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully signals '[HTTP GET]' and that a JSON resource is returned, but says nothing about required permissions, pagination behavior, or result ordering — significant gaps for a 7-parameter listing endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and precise, but the second sentence is generic boilerplate about request bodies being built from typed parameters or `body_file` — largely irrelevant for a GET listing — which dilutes the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, and all 7 parameters are documented in the schema. Sibling routing is present; only permission and pagination nuance is missing, which is minor given the structured coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parent, pageSize and pageToken are already documented. The description adds a little context about typed flags winning over the `params` map and `body_file`, which is a marginal value-add over the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with its scope: 'Lists CustomDimensions on a property'. It also names the sibling operations over the same resource (archive, create, get, patch), so an agent can distinguish list from get without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list implies routing (use list to enumerate, get for a single record, patch to modify), but the description never states a when-to-use condition or any prerequisite. Usage is only implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.customDimensions.patchA
Updates a CustomDimension on a property [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaCustomDimension object accepting description, disallowAdsPersonalization, displayName, name, parameterName, scope; pass it via params or whole via body_file Siblings over the same resource: archive, create, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name for this CustomDimension resource. Format: properties/{property}/customDimensions/{customDimension} | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaCustomDimension object. | |
| updateMask | No | [query parameter] Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string "*" to match all fiel | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaCustomDimension: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| scope | No | |
| description | No | |
| displayName | No | |
| parameterName | No | |
| disallowAdsPersonalization | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries real behavioral weight: it discloses the HTTP PATCH mutation semantics, the readonly-profile refusal, and that the response resource is returned as JSON. It doesn't cover permission requirements or reversibility, but it is well above the annotation-free baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and the readonly constraint, then covers return value, body, and siblings. Some redundancy with the schema (body field list, params vs body_file), but every clause still serves a purpose and nothing is bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a 7-param nested schema and an existing output schema, the description supplies the key missing pieces: mutation nature, safety refusal, and body-passing mechanism. Complete enough to invoke correctly, with the noted updateMask omission being minor given the schema covers it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates the body fields (description, disallowAdsPersonalization, displayName, name, parameterName, scope) and the params/body_file mechanism, but this largely duplicates what the schema already documents, and it omits the required updateMask nuance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates a CustomDimension on a property') and explicitly names the sibling operations over the same resource (archive, create, get, list), so an agent can distinguish patch from create/archive without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when the tool applies and a useful when-not signal ('refused under --readonly safety profiles'), plus names the sibling alternatives. It stops short of routing the agent with explicit conditions for choosing patch vs create vs archive, so it is a strong 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.customMetrics.archiveA
Archives a CustomMetric on a property [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaArchiveCustomMetricRequest object; pass it via params or whole via body_file Siblings over the same resource: create, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the CustomMetric to archive. Example format: properties/1234/customMetrics/5678 | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaArchiveCustomMetricRequest object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaArchiveCustomMetricRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it declares the HTTP POST verb, that this mutates state, the read-only-profile refusal, and that the API response resource is returned as JSON. It omits whether archiving is reversible or what happens to the metric's historical data, which is the main behavioral gap for a mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The mutation and its safety-profile constraint are front-loaded ahead of the mechanical body details, which is the right ordering. It runs long as a single sentence chain and repeats the archive request body type in both `params`/`body_file` and `request_body` framing, costing a little density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description covers verb, refusal condition, body transport, and sibling set. For a 6-parameter mutation tool with nested body objects, the missing piece is the effect of archiving (reversibility, impact on reporting), which an agent would want before firing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including the `name` pattern and body type is already documented in structured form. The description restates the body-passing convention (`params` vs `body_file`) but adds no new semantics beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Archives a CustomMetric on a property") and immediately enumerates the sibling operations over the same resource (create, get, list, patch), so an agent can place it in the CRUD family without opening a schema. The required `name` pattern pins the exact resource addressed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Refused under --readonly safety profiles" is a genuine precondition that tells an agent when the call will fail, and listing the sibling operations hints at the family. However, it never says when to choose archive over patch (e.g., retiring a metric) or whether archiving is reversible, so the selection criteria remain implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.customMetrics.createA
Creates a CustomMetric [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaCustomMetric object accepting description, displayName, measurementUnit, name, parameterName, restrictedMetricType, scope; pass it via params or whole via body_file Siblings over the same resource: archive, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. Example format: properties/1234 | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaCustomMetric object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaCustomMetric: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| scope | No | |
| description | No | |
| displayName | No | |
| parameterName | No | |
| measurementUnit | No | |
| restrictedMetricType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does real work: it discloses that this is a mutating POST, that it is blocked under --readonly profiles, that it returns the API response resource as JSON, and that the body may be supplied either merged via `params` or wholesale via `body_file`. It stops short of stating required auth scope or duplicate-name behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause and there is no filler prose, but the long em-dash chain is dense and the seven-field enumeration duplicates what the schema already lists, which is the one stretch that does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return-value gloss is optional and adequately covered. For a 6-parameter mutation tool with no annotations, however, the description omits the practical prerequisites an agent needs before calling it — permissions/scope, whether a duplicate displayName is rejected, and whether the created metric is immediately usable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description re-enumerates the body fields (description, displayName, measurementUnit, name, parameterName, restrictedMetricType, scope) and the params/body_file routing, both of which are already documented in the schema, so it adds little meaning beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (creates a CustomMetric under a GA4 property) and explicitly names the sibling operations over the same resource (archive, get, list, patch), so an agent can place it in the CRUD set without opening another schema. The '[HTTP POST]' marker reinforces the write nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It lists the sibling operations over the same resource but never says when to choose create over patch, or what preconditions apply (e.g. metric must not already exist). The only operative guidance is the negative one: it 'is refused under --readonly safety profiles.' Usage is implied rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.customMetrics.getA
Lookup for a single CustomMetric [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: archive, create, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the CustomMetric to get. Example format: properties/1234/customMetrics/5678 | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| scope | No | |
| description | No | |
| displayName | No | |
| parameterName | No | |
| measurementUnit | No | |
| restrictedMetricType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden; it does declare the operation is an HTTP GET returning JSON, which tells the agent this is a non-mutating read. However, it says nothing about auth/permission requirements, error behavior for a missing or malformed name, or rate limits, and spends a sentence on body-construction mechanics that are irrelevant to a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the purpose and resource scope front-loaded, followed by the sibling enumeration. The body/params precedence clause is low-value for a GET call and could be dropped, but the text is compact overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the required path parameter is fully specified in the schema. Combined with the HTTP GET disclosure, an agent has enough to invoke it correctly; only permission/error context is missing, which is a minor gap for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including `name` with its pattern and example is already documented in the schema. The description's only extra claim — typed parameters win over the `params` map and `body_file` can supply a body — restates the schema's own wording and is boilerplate for this endpoint, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Lookup for a single CustomMetric") and explicitly separates itself from the sibling operations over the same resource (archive, create, list, patch). The only weakness is the slightly loose verb "Lookup" and the prefixed HTTP GET note, but an agent can still tell it retrieves exactly one CustomMetric.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming the sibling set implies when to use this tool (single-resource retrieval versus list/create/patch), but the description never states a condition such as "use list to enumerate" or any prerequisite like required permissions or a fully-qualified resource name. Usage has to be inferred rather than read.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.customMetrics.listB
Lists CustomMetrics on a property [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: archive, create, get, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. Example format: properties/1234 | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] A page token, received from a previous `ListCustomMetrics` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to |
Output Schema
| Name | Required | Description |
|---|---|---|
| customMetrics | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the safe read profile via '[HTTP GET]' and that the result is JSON, which is genuinely useful. However, the majority of the second sentence describes request-body construction and body_file mechanics that are irrelevant to a GET list call, and it says nothing about pagination behavior, permissions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the sibling sentence earns its place, but the intervening sentence about typed parameters overriding the params map and reading whole bodies from body_file is boilerplate noise for a list endpoint and dilutes an otherwise short definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and all seven parameters are fully documented in the schema, so the description need not explain return values or pagination mechanics. Combined with the explicit sibling list and GET indication, this is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the schema already documents parent, pageSize, pageToken, dry_run, params, query and body_file. The description adds no parameter-level meaning and in fact muddies things by discussing body_file/body-building for a query-only operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Lists CustomMetrics on a property') and names the sibling verbs over the same resource (archive, create, get, patch), so an agent can place it as the enumeration variant. It falls short of a 5 because the siblings are merely enumerated without routing guidance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Listing the sibling operations implies this is the tool for enumerating existing custom metrics rather than mutating or fetching a single one, but it never states when to prefer list over get, nor any exclusions or prerequisites. Usage is inferable rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.customMetrics.patchA
Updates a CustomMetric on a property [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaCustomMetric object accepting description, displayName, measurementUnit, name, parameterName, restrictedMetricType, scope; pass it via params or whole via body_file Siblings over the same resource: archive, create, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric} | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaCustomMetric object. | |
| updateMask | No | [query parameter] Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string "*" to match all fiel | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaCustomMetric: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| scope | No | |
| description | No | |
| displayName | No | |
| parameterName | No | |
| measurementUnit | No | |
| restrictedMetricType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add real value: it discloses that the call is refused under --readonly safety profiles, describes the return (response resource as JSON), and explains the params vs body_file body-construction paths. It omits permission/OAuth scope requirements, idempotency, and partial-update semantics (which fields change / are left untouched), which are significant for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action and method, which is good, but then crams body field enumeration, the params/body_file mechanism, and the sibling list into one dense run-on. The field list duplicates schema content and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists and the input schema is fully described, so the core is covered; the safety-profile refusal is a useful addition. However, for a mutation tool with no annotations and a required updateMask, the description should also flag permission requirements and the partial-update implication of updateMask.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents name, updateMask, query, params, dry_run, and body_file. The description still adds value by stating the body object type and the two ways to supply it (params merge vs whole body_file), though it redundantly re-enumerates body fields already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (updates) and resource (CustomMetric on a property), and the HTTP method [HTTP PATCH]. It explicitly names the sibling operations over the same resource (archive, create, get, list), so an agent can place it precisely in the CRUD family without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the sibling tools but never states when to choose patch over update/create/archive, nor what prerequisites (e.g., updateMask, permissions) select it. Usage is implied by the PATCH verb and sibling list rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.dataStreams.createA
Creates a DataStream [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaDataStream object accepting androidAppStreamData, createTime, displayName, iosAppStreamData, name, type, updateTime, webStreamData; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. Example format: properties/1234 | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaDataStream object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaDataStream: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| type | No | |
| createTime | No | |
| updateTime | No | |
| displayName | No | |
| webStreamData | No | |
| iosAppStreamData | No | |
| androidAppStreamData | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does well: it identifies the operation as HTTP POST, states that it creates or triggers a change, discloses refusal under --readonly safety profiles, and says it returns the API response resource as JSON. It still omits required permissions or rate-limit behavior, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key purpose and safety-profile constraint are front-loaded, and every part of the description is relevant. The single long sentence is dense and somewhat run-on, but it avoids filler and keeps useful details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation with a nested request body, full schema description coverage, and an output schema, the description is largely complete: it covers body shape, params/body_file usage, sibling operations, and readonly refusal. It does not mention authorization or required roles, which leaves a small completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats the GoogleAnalyticsAdminV1betaDataStream body type and the params/body_file split, both of which are already documented in the schema, so it adds little parameter meaning beyond structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'Creates a DataStream' — and immediately names the sibling operations delete, get, list, and patch over the same resource. An agent can distinguish this create tool from the other data stream tools without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-not condition: the operation is refused under --readonly safety profiles. It also lists sibling operations over the same resource as alternatives, though it does not explicitly route the agent between create and patch for existing resources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.dataStreams.deleteA
Deletes a DataStream on a property [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the DataStream to delete. Example format: properties/1234/dataStreams/5678 | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description carries the full burden well: it discloses irreversibility (with the honest caveat about a possible trash/undo flow), the refusal behavior under read-only safety profiles, and the post-delete return payload. That is substantially more than the name implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the destructive action and its consequences, which is the right ordering for an irreversible tool. The trailing sentence about typed flags vs params map vs body_file is generic boilerplate repeated across the tool family and dilutes the core message slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so the return shape needs no elaboration, yet the description still notes the post-delete JSON state. Combined with the irreversibility warning and safety-profile refusal, an agent has everything needed to decide and call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and every parameter already has its own description, including the typed-parameters-win precedence rule and body_file semantics. The description largely restates that resolution order rather than adding format or constraint detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Deletes a DataStream on a property') plus the HTTP method, and explicitly names the sibling set over the same resource (create, get, list, patch). An agent can distinguish it from analyticsadmin.properties.dataStreams.patch or delete without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear operating context: irreversible removal, refused under --readonly safety profiles, and the sibling operations listed for contrast. It does not spell out an explicit 'use this when X, use patch when Y' decision rule, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.dataStreams.getA
Lookup for a single DataStream [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the DataStream to get. Example format: properties/1234/dataStreams/5678 | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| type | No | |
| createTime | No | |
| updateTime | No | |
| displayName | No | |
| webStreamData | No | |
| iosAppStreamData | No | |
| androidAppStreamData | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden; it partially meets this by disclosing '[HTTP GET]' (read-only, no side effects) and that the response is the resource as JSON. It omits auth/permission requirements and rate-limit behavior, and the body_file/typed-parameter machinery is irrelevant noise for a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and a short sibling roster; it is reasonably tight. The request-body/body_file sentence is wasted on a GET endpoint, and the wording is slightly run-on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and all five parameters are schema-documented. The description says what the tool does and returns, leaving only minor gaps (permissions, pagination not relevant here); the body_file mention is surplus but not harmful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented, giving a baseline of 3. The description restates the typed-flags-vs-params precedence and body_file behavior that the schema already explains, adding no new parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Lookup for a single DataStream [HTTP GET]', and enumerates the sibling operations over the same resource (create, delete, list, patch), which helps an agent route away from mutations and the list. It stops short of a full five because 'lookup' is soft and the sibling list is generic boilerplate rather than a scoping distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling enumeration implies 'this is the read-one of the family', but there is no explicit when-to-use versus the list method or when-not guidance. Nothing tells the agent to use list first to discover names, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.dataStreams.listA
Lists DataStreams on a property [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. Example format: properties/1234 | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] A page token, received from a previous `ListDataStreams` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ` |
Output Schema
| Name | Required | Description |
|---|---|---|
| dataStreams | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does carry the read-only nature via 'Lists' and '[HTTP GET]', and mentions the JSON return. But the second sentence is generic transport boilerplate about request bodies and body_file that is largely irrelevant—and mildly misleading—for a GET list operation, and it omits any mention of pagination semantics, permissions, or rate limits beyond what the schema already states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose clause is correctly front-loaded and short, but the second sentence is shared transport boilerplate (body building, body_file) that does not earn its place on a read-only list endpoint and dilutes the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the schema fully covers all seven parameters including the required parent format. What remains thin is the behavioral envelope (pagination flow across pageToken, permission requirements), which keeps it short of a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parent, pageSize, pageToken, query, params, dry_run and body_file in detail. The description adds no parameter-level meaning beyond restating the generic typed-parameter/params precedence rule, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists DataStreams on a property') and explicitly names the sibling operations (create, delete, get, patch) over the same resource, so an agent can separate this list operation from the single-resource get without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming the sibling operations gives clear context for what this tool is not, and '[HTTP GET]' plus 'Lists' signals a read path. However, it never states explicitly when to choose list over get (e.g., enumerating all streams vs. fetching one by ID), so the exclusion is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.createA
Creates a measurement protocol secret [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaMeasurementProtocolSecret object accepting displayName, name, secretValue; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The parent resource where this secret will be created. Format: properties/{property}/dataStreams/{dataStream} | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaMeasurementProtocolSecret object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaMeasurementProtocolSecret: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| displayName | No | |
| secretValue | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the burden and does well: it marks this as an HTTP POST mutation, notes --readonly refusal, and describes the return as a JSON response resource. It omits auth/permission requirements and whether secretValue is only returned once, which for a secret-creating tool would be valuable caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Efficient and front-loaded with the action and safety note; the body/passing details and sibling list follow logically. Dense but each clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no annotations and an output schema; the description covers action, safety refusal, body construction, and return type, which is adequate. Auth scopes and secret-value sensitivity are the notable omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real value: it enumerates the body fields (displayName, name, secretValue) and clarifies the pass mechanism (via `params` or whole via `body_file`).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (creates a measurement protocol secret) and distinguishes it from siblings by naming the resource family (delete, get, list, patch). An agent can identify it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It discloses when the tool will be refused (--readonly safety profiles) and lists sibling operations over the same resource, which implies create-vs-read/edit routing. It doesn't explicitly say 'use get/list to read before creating', but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.deleteA
Deletes target MeasurementProtocolSecret [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the MeasurementProtocolSecret to delete. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementPro | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses irreversibility, read-only refusal behavior, that it returns the post-delete resource state (or empty) as JSON, and how the request body is constructed (typed params vs params map vs body_file). The hedge 'unless the API documents a trash/undo flow' introduces minor ambiguity about recoverability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb+resource and HTTP method, then behavioral traits, then siblings. It is dense but every clause (irreversibility, readonly refusal, return shape, body construction) carries information; slightly crowded into a single flowing paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with an output schema and 100% param coverage, the description adds the key non-structured context an agent needs: irreversibility, safety-profile refusal, and return shape. Complete enough to invoke correctly, with only the recoverability hedge as a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents name, query, params, dry_run, and body_file. The description only adds the typed-params-win precedence and body_file behavior, which is largely already in the schema descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Deletes) and resource (MeasurementProtocolSecret) and names the HTTP method, then lists the siblings over the same resource (create, get, list, patch) so the agent can distinguish this from them without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context — refused under --readonly safety profiles and irreversible — and names the sibling operations. It stops short of explicit when-to-use/when-not versus a specific alternative (e.g., patch), so it falls just below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.getB
Lookup for a single MeasurementProtocolSecret [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the measurement protocol secret to lookup. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementP | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| displayName | No | |
| secretValue | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose the operation is an HTTP GET returning the requested resource as JSON, which tells the agent it is a read. However, the trailing explanation about building request bodies from typed parameters or `body_file` is irrelevant for a GET (no body is sent) and risks confusing the agent, and there is no mention that the returned secret value is sensitive or what happens when the name does not resolve.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the whole definition is short, but the middle clause about request-body construction is dead weight for a pure GET and dilutes the message. Trimming that clause would leave a tighter, more accurate two-sentence definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the input schema is fully annotated, so the description does not need to explain return values or parameter formats. Given the tool's low complexity, the definition plus structured fields are nearly sufficient; only permission requirements and the sensitivity of the retrieved secret are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents `name` (with a regex and full resource-name format), `query`, `params`, `dry_run`, and `body_file`. The description's note that typed parameters win over the `params` map adds a small precedence clarification, but most of its parameter text restates what the schema already says; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Lookup for a single MeasurementProtocolSecret'), states the HTTP method, and explicitly lists the sibling operations (create, delete, list, patch) over the same resource, which lets an agent distinguish this from the list variant. It is not fully specific about what a 'secret' contains, but the resource identity is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentioning the sibling set implies this is the single-resource fetch versus the list operation, but the description never says explicitly when to prefer this over list or what prerequisites (e.g. needing the full resource name under a data stream) apply. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.listB
Returns child MeasurementProtocolSecrets under the specified parent Property [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The resource name of the parent stream. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of resources to return. If unspecified, at most 10 resources will be returned. The maximum value is 10. Higher values will be coerc | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous `ListMeasurementProtocolSecrets` call. Provide this to retrieve the subsequent page. When paginating, all other |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextPageToken | No | |
| measurementProtocolSecrets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the safety burden; 'HTTP GET' signals a read-only retrieval and it states the result is JSON. It does not discuss authorization, rate limits, or pagination behavior beyond what the schema already documents, and the mention of body_file is not relevant to a GET list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is appropriately front-loaded, but the second sentence's explanation of request-body construction from typed parameters or body_file is boilerplate that does not apply to a GET list operation. The sibling list is useful, but the body_file clause costs conciseness without adding value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema and an existing output schema, the description supplies the key missing orientation: resource, parent scope, verb, and sibling operations. It is sufficient to call correctly, although it omits explicit pagination guidance and auth/rate-limit notes that would matter more without annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parent, pageSize, pageToken, dry_run, body_file, params, and query. The description only restates that typed flags override params and that body_file can supply a body, which adds no material meaning for this list call's parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific list operation for MeasurementProtocolSecrets under a parent Property and identifies the HTTP verb (GET). It also names the sibling create/delete/get/patch operations, which helps orientation, though the generic body-building sentence is irrelevant to a GET and slightly blurs the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming the sibling operations implies this tool is the list variant, but the description never states when to choose it over get or the other siblings, nor any prerequisites. The agent is left to infer the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.patchA
Updates a measurement protocol secret [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaMeasurementProtocolSecret object accepting displayName, name, secretValue; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name of this secret. This secret may be a child of any type of stream. Format: properties/{property}/dataStreams/{dataStream}/measurementPr | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaMeasurementProtocolSecret object. | |
| updateMask | No | [query parameter] Required. The list of fields to be updated. Omitted fields will not be updated. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaMeasurementProtocolSecret: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| displayName | No | |
| secretValue | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It usefully states that this is an HTTP PATCH mutation, that it is refused under readonly safety profiles, and that it returns the API response resource as JSON; however, it does not explain permission requirements, reversibility, or other side effects beyond the basic safety-profile constraint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and resource, and it avoids unnecessary filler. It is somewhat dense as a single run-on sentence with several em-dash clauses, but the information is relevant and efficiently packed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the key facts needed to invoke this tool: it is an update/PATCH operation, it is blocked under readonly safety profiles, it returns the API response resource, and the body can be supplied via `params` or `body_file`. With a full output schema and 100% parameter schema coverage, the remaining gaps around permissions are not fatal, though they prevent a top score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters in detail. The description mentions the request-body fields displayName, name, and secretValue and explains that the body may be passed via `params` or `body_file`, but this largely repeats what the schema already states rather than adding new semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: "Updates a measurement protocol secret", and identifies the HTTP method as PATCH. It also names the sibling operations over the same resource (create, delete, get, list), so an agent can distinguish this mutation tool from the read and creation alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames this as the update operation and explicitly notes that it is "refused under --readonly safety profiles", which is a useful when-not condition. It names the sibling operations as alternatives, though it does not give detailed selection criteria for choosing patch over those operations beyond the implied update/read/create/delete split.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.dataStreams.patchA
Updates a DataStream on a property [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaDataStream object accepting androidAppStreamData, createTime, displayName, iosAppStreamData, name, type, updateTime, webStreamData; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name of this Data Stream. Format: properties/{property_id}/dataStreams/{stream_id} Example: "properties/1000/dataStreams/2000" | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaDataStream object. | |
| updateMask | No | [query parameter] Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string "*" to match all fiel | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaDataStream: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| type | No | |
| createTime | No | |
| updateTime | No | |
| displayName | No | |
| webStreamData | No | |
| iosAppStreamData | No | |
| androidAppStreamData | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the operation is refused under --readonly safety profiles, describes the return value (the API's response resource as JSON), and explains the request body structure and two submission methods (params or body_file). It does not mention permissions or rate limits, but these are minor gaps given the disclosure of the safety restriction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and resource, then packs in safety, return format, body structure, and sibling context in a single dense but waste-free sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation, nested request body, no annotations), the description covers the key procedural and behavioral points: safety profile refusal, return value, body handling, and sibling operations. It omits some details like updateMask semantics, but the schema covers those.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats the request body field names and explains that the body can be passed via `params` or `body_file`, but this largely duplicates existing schema descriptions rather than adding significant new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Updates') and resource ('DataStream on a property') with HTTP method, and explicitly lists the sibling operations (create, delete, get, list) so an agent can distinguish it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
By naming the sibling operations create/delete/get/list, it implies this tool is for partial updates rather than creation or retrieval. It does not explicitly state when to prefer patch over update or when not to use it, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.deleteA
Marks target Property as soft-deleted (ie: "trashed") and returns it. This API does not have a method to restore soft-deleted properties. However, they can be restored using the Trash Can UI. If the properties are not restored before the expiration time, the Property and all child resources (eg: GoogleAdsLinks, Streams, AccessBindings) will be permanently purged. https://support.google.com/analytics/answer/6154772 Returns an error if the target is not found [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: acknowledgeUserDataCollection, create, get, getDataRetentionSettings, list, patch, runAccessReport, updateDataRetentionSettings.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the Property to soft-delete. Format: properties/{property_id} Example: "properties/1000" | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| parent | No | |
| account | No | |
| timeZone | No | |
| createTime | No | |
| deleteTime | No | |
| expireTime | No | |
| updateTime | No | |
| displayName | No | |
| currencyCode | No | |
| propertyType | No | |
| serviceLevel | No | |
| industryCategory | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely meets it: it discloses that the delete is a soft-delete, that restoration is only possible through the UI, that child resources (GoogleAdsLinks, Streams, AccessBindings) are permanently purged after expiration, and that it errors when the target is missing. It lacks permission/authorization requirements, and the appended boilerplate about request bodies and --readonly profiles is generic filler that does not describe this tool's actual behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core documentation paragraphs are front-loaded and substantive, but the tail contains fabricated CLI-style boilerplate ("[HTTP DELETE] — removes the resource", "request bodies are built from the typed parameters") that is irrelevant to a DELETE with no body and dilutes the useful content. The useful text could be half as long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and annotations are absent, the description supplies the essential safety context: soft-delete semantics, irreversibility, child-resource purge, and the not-found error. It omits required permissions or scope, which an agent would need before attempting a destructive call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, including a regex pattern and a format example for `name`, so the schema already documents the sole meaningful parameter. The description adds no conflicting or redundant parameter detail; the passing mention of `params` and `body_file` is generic boilerplate, not a claim about this call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific verb and resource ("Marks target Property as soft-deleted (ie: 'trashed')") and states it returns the mutated resource. This distinguishes it from the siblings that also operate on a Property, such as patch, get, and acknowledgeUserDataCollection, because it is explicitly a trash operation rather than an update or read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when this operation is called (trashing a Property) and warns that there is no API restore path, only the Trash Can UI. It does not contrast this with alternatives on the same resource (e.g., patch vs. delete), so the guidance covers the situation but not the decision between similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.firebaseLinks.createA
Creates a FirebaseLink. Properties can have at most one FirebaseLink [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaFirebaseLink object accepting createTime, name, project; pass it via params or whole via body_file Siblings over the same resource: delete, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. Format: properties/{property_id} Example: `properties/1234` | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaFirebaseLink object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaFirebaseLink: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| project | No | |
| createTime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description does substantial work: it declares the HTTP method (POST), flags that this creates or triggers a change, and uniquely discloses that the call is refused under --readonly safety profiles. It also states the return shape. It stops short of permission/scope requirements or error semantics, which is the remaining gap for an unannotated mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The verb+resource is front-loaded and the whole definition is a single compact passage with no filler. It is dense and dash-chained, and the body_file/params restatement slightly duplicates the schema, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return-value explanation is optional and correctly kept brief. For a create tool with a nested body object and six parameters, the description covers the precondition, the safety gate, the body shape, and the alternatives — only permission requirements are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline would be 3, but the description adds the meaningful detail that the body is a GoogleAnalyticsAdminV1betaFirebaseLink accepting createTime, name, and project, and that it can be supplied either via `params` (merged) or wholesale via `body_file`. That clarifies the two-path body construction beyond what the schema fields state in isolation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ("Creates a FirebaseLink") and immediately scopes it against the sibling operations on the same resource (delete, list). An agent can distinguish this from firebaseLinks.delete and firebaseLinks.list without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies a real precondition — "Properties can have at most one FirebaseLink" — which tells the agent to check existing state before calling, and it names the sibling alternatives delete and list. It does not explicitly say "use list first to verify no link exists," so the routing is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.firebaseLinks.deleteA
Deletes a FirebaseLink on a property [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Format: properties/{property_id}/firebaseLinks/{firebase_link_id} Example: `properties/1234/firebaseLinks/5678` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the safety load, and it does: it flags irreversibility, notes the readonly-profile refusal, and discloses that the return is the post-delete resource state (or empty). Missing any permission/auth detail keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The delete action and irreversibility are front-loaded, which is good, but the body-building and params-map sentences are dense and somewhat tangential to a delete call, adding length without much selection value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values needn't be explained, and the description still summarizes them; irreversibility and sibling routing are covered. Auth requirements remain unstated, leaving a minor gap for a destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all five parameters including the name pattern and body_file behavior. The description adds only the precedence rule (typed flags win over params map), which is minor value beyond the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (deletes) and resource (FirebaseLink on a property) up front, and explicitly names the sibling operations (create, list) so an agent can tell them apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear gating condition — 'refused under --readonly safety profiles' — and lists the sibling create/list operations. It doesn't articulate a positive when-to-use rationale beyond the delete semantics, so it falls short of full explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.firebaseLinks.listA
Lists FirebaseLinks on a property. Properties can have at most one FirebaseLink [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. Format: properties/{property_id} Example: `properties/1234` | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 5 | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous `ListFirebaseLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters p |
Output Schema
| Name | Required | Description |
|---|---|---|
| firebaseLinks | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden; it does disclose the HTTP GET verb and how the request body is assembled (typed params win over `params`, or `body_file`). It omits permission requirements, pagination behavior beyond the pageToken schema, and does not explicitly say the operation is non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose in the first clause, then adds sibling routing and request-building mechanics. The request-construction sentence is somewhat boilerplate for a GET but is compact and not repetitive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. Combined with a fully documented 7-parameter schema, the description covers enough for correct invocation; only auth/admin-scope prerequisites are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description echoes the typed-parameter precedence rule already stated in the `params` schema field and adds no new detail about `parent`, `pageSize`, `pageToken`, or `query`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Lists FirebaseLinks on a property', and adds the constraint that a property can have at most one FirebaseLink. It names its siblings (create, delete) so the agent can distinguish the read variant, though it does not compare against the other list tools on properties (googleAdsLinks.list, dataStreams.list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Siblings over the same resource: create, delete' line implies the read/write split, and the 'at most one FirebaseLink' note hints this may be close to a get. But there is no explicit when-to-use versus the other property list tools, nor any stated prerequisites such as required scopes or parent format.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.getB
Lookup for a single GA Property [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: acknowledgeUserDataCollection, create, delete, getDataRetentionSettings, list, patch, runAccessReport, updateDataRetentionSettings.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the property to lookup. Format: properties/{property_id} Example: "properties/1000" | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| parent | No | |
| account | No | |
| timeZone | No | |
| createTime | No | |
| deleteTime | No | |
| expireTime | No | |
| updateTime | No | |
| displayName | No | |
| currencyCode | No | |
| propertyType | No | |
| serviceLevel | No | |
| industryCategory | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It discloses the HTTP verb (GET), that it returns the resource as JSON, and how the request is constructed (typed params win over the `params` map, or body read from `body_file`). It omits any auth/permission requirements, though 'Lookup' plus '[HTTP GET]' reasonably convey a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the trailing request-body construction note is boilerplate that is largely irrelevant to a GET, and the sibling-routing is a raw dump of eight names rather than useful differentiation. Some content earns its place; some does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and the description covers purpose and request construction adequately for a single-resource GET. Only auth/permission context is missing, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters, setting a baseline of 3. The description reinforces the precedence rule (typed params win over `params`, body from `body_file`) but adds little beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Lookup for a single GA Property [HTTP GET]. Returns the requested resource as JSON.' This clearly distinguishes it as the single-resource read among the properties.* family. The sibling list is provided but not used for differentiation, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description enumerates siblings over the same resource (list, patch, delete, etc.), which implies this is the point-get, but it never states when to use this versus analyticsadmin.properties.list or patch. Routing is left to inference from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.getDataRetentionSettingsB
Returns the singleton data retention settings for this property [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: acknowledgeUserDataCollection, create, delete, get, list, patch, runAccessReport, updateDataRetentionSettings.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the settings to lookup. Format: properties/{property}/dataRetentionSettings Example: "properties/1000/dataRetentionSettings" | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| userDataRetention | No | |
| eventDataRetention | No | |
| resetUserDataOnNewActivity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, yet it only says the resource is returned as JSON. It does not state required OAuth scopes/permissions, behavior when retention settings are unset, or error conditions. The request-body-building sentence is boilerplate that is meaningless for a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the second sentence is generic transport boilerplate irrelevant to a read-only GET and consumes as much space as the actual tool-specific content. The long sibling roster is moderately useful but undifferentiated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the required `name` parameter is fully specified in the schema. What remains missing are permission requirements and edge-case behavior, which are minor given the schema richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a pattern and format example for `name`, so the schema does the heavy lifting. The description's only added meaning is the precedence rule for typed parameters over `params`, which is routine plumbing rather than resource-specific guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
First sentence gives a specific verb and resource ('Returns the singleton data retention settings for this property') and explicitly flags HTTP GET, so the agent knows this is a single-object read rather than a list. The trailing sibling enumeration confirms the adjacent operations (get, patch, updateDataRetentionSettings) exist, though it does not contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the resource name; there is no statement of when to call this versus analyticsadmin.properties.get or updateDataRetentionSettings. The sibling list at the end gives adjacency signals but no selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.googleAdsLinks.createA
Creates a GoogleAdsLink [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaGoogleAdsLink object accepting adsPersonalizationEnabled, canManageClients, createTime, creatorEmailAddress, customerId, name, updateTime; pass it via params or whole via body_file Siblings over the same resource: delete, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. Example format: properties/1234 | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaGoogleAdsLink object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaGoogleAdsLink: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| createTime | No | |
| customerId | No | |
| updateTime | No | |
| canManageClients | No | |
| creatorEmailAddress | No | |
| adsPersonalizationEnabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does useful work: it discloses HTTP POST, that it 'creates or triggers a change', that it is refused under --readonly safety profiles, and that it returns the API response resource as JSON. The only omission is any permission/auth requirement beyond the readonly note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the verb+resource, then packs behavior and body guidance into dense dash-separated clauses. Slightly run-on, but each clause (POST, readonly refusal, return type, body routing, siblings) carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with an output schema present and full param coverage, the definition covers mutation semantics, the readonly-profile guard, and return shape. It lacks an explicit precondition/permission statement, which is the one remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parent, params, body_file, request_body and its fields. The description restates the body fields and the params/body_file routing but adds no format or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Creates) and resource (GoogleAdsLink) immediately, and explicitly enumerates the sibling operations over the same resource (delete, list, patch), letting an agent place it precisely among the googleAdsLinks family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming the siblings (delete, list, patch) implies the create-vs-manage distinction, but the description never says when to choose this over those or what precondition (an existing property) is needed. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.googleAdsLinks.deleteA
Deletes a GoogleAdsLink on a property [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Example format: properties/1234/googleAdsLinks/5678 | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses irreversibility, readonly-profile refusal, that a body may be built from typed params or a file, and what is returned (post-delete resource state or empty). It omits any permission/scope requirements for the delete, a notable gap for a destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and destructiveness, then tacks on return format and sibling list in a tight, information-dense block with no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Return values are covered by the output schema and the description additionally notes the post-delete state; safety behavior and body-building are explained. Only the permission/auth requirements for a destructive delete are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented; the description only restates the typed-vs-params precedence and body_file behavior. It adds no new semantics (e.g., path format for name) beyond the schema, matching the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Deletes) and resource (GoogleAdsLink on a property), plus tags it HTTP DELETE. It also names the sibling operations over the same resource (create, list, patch), so the agent can distinguish it without inspecting other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly frames the destructive action and the --readonly safety-profile context in which it is refused, giving an agent concrete conditions for when it will fail. It lists the sibling operations but does not explicitly contrast when to delete vs. patch (e.g., deactivate instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.googleAdsLinks.listA
Lists GoogleAdsLinks on a property [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. Example format: properties/1234 | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coer | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous `ListGoogleAdsLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextPageToken | No | |
| googleAdsLinks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden; it does disclose the HTTP GET nature (signalling read-only) and that the resource is returned as JSON. However, it spends its behavioral budget on body_file/params-map mechanics that cannot apply to a GET, and says nothing about pagination limits (only the schema does) or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is correctly front-loaded in the first clause, but the second clause is a generic template about request bodies that does not earn its place on a GET/list tool and may actively mislead an agent into thinking a body is expected.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage, an output schema, and an explicit HTTP GET signal, an agent has enough to call this correctly. Only auth/permission expectations and pagination caveats are absent, which are minor given the schema documents pageSize and pageToken.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds a genuinely useful precedence rule not stated in the schema: typed parameters win over the `params` map, and `body_file` can supersede both. That is real semantic value even though the body_file clause is moot for a list call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Lists), resource (GoogleAdsLinks) and scope (on a property), and names the sibling operations (create, delete, patch) over the same resource. The purpose is unmistakable, though the trailing sentence about request-body construction is irrelevant noise for a GET/list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions siblings over the same resource, which implicitly frames this as the enumeration variant, but never states when to use it versus them (e.g., 'use to enumerate links before patching or deleting one'). No prerequisites or exclusions beyond an implied read-only listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.googleAdsLinks.patchA
Updates a GoogleAdsLink on a property [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaGoogleAdsLink object accepting adsPersonalizationEnabled, canManageClients, createTime, creatorEmailAddress, customerId, name, updateTime; pass it via params or whole via body_file Siblings over the same resource: create, delete, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} Note: googleAdsLinkId is not the Google Ads customer ID. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaGoogleAdsLink object. | |
| updateMask | No | [query parameter] Required. The list of fields to be updated. Field names must be in snake case (e.g., "field_to_update"). Omitted fields will not be updated. To replace the enti | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaGoogleAdsLink: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| createTime | No | |
| customerId | No | |
| updateTime | No | |
| canManageClients | No | |
| creatorEmailAddress | No | |
| adsPersonalizationEnabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden: it discloses the mutation, the read-only refusal behavior, and that the API's response resource is returned as JSON. It does not cover permission prerequisites or which fields are immutable, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense, front-loaded sentence with em-dash separated clauses; every clause carries information (method, safety profile, return shape, body fields, siblings). Slightly over-packed but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers mutation, safety-profile refusal, body composition, and return shape, and an output schema exists so return details need not be repeated. Missing are permission requirements and a note that updateMask governs which fields actually change, which matters for a PATCH tool with 7 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real meaning: it enumerates the GoogleAnalyticsAdminV1betaGoogleAdsLink fields accepted in the request body and explains that the body may be supplied via `params` or wholesale via `body_file`. The crucial `updateMask` requirement is left to the schema rather than reinforced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates a GoogleAdsLink on a property') plus the HTTP PATCH semantics, and explicitly lists the sibling operations over the same resource (create, delete, list) so an agent can differentiate without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the sibling alternatives and the constraint that the call is refused under --readonly safety profiles, which is genuine routing guidance. It does not explicitly state when a caller should prefer patch over re-creating the link, but for a patch operation that is largely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.keyEvents.createA
Creates a Key Event [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaKeyEvent object accepting countingMethod, createTime, custom, defaultValue, deletable, eventName, name; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The resource name of the parent property where this Key Event will be created. Format: properties/123 | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaKeyEvent object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaKeyEvent: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| custom | No | |
| deletable | No | |
| eventName | No | |
| createTime | No | |
| defaultValue | No | |
| countingMethod | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it declares the mutating POST semantics, warns that the call is refused under --readonly safety profiles, and states that the API response resource is returned as JSON. It stops short of disclosing required OAuth scopes or whether creation is idempotent/irreversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The mutation and read-only caveat are front-loaded in the first clause, which is exactly the right ordering. The single dense paragraph is efficient, though the field enumeration in the middle is a long comma run that could be trimmed since the schema already lists those fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter nested-body mutation with no annotations, the description covers the mutation semantics, safety-profile refusal, request construction paths, body payload type, and sibling routing. Since an output schema exists, the brief return-value note is sufficient and nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds value by explaining the params-versus-body_file interaction ('pass it via `params` or whole via `body_file`') and enumerating the GoogleAnalyticsAdminV1betaKeyEvent body fields including countingMethod, which helps the agent decide how to construct the request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates a Key Event'), the HTTP method, and explicitly enumerates the sibling operations over the same resource (delete, get, list, patch). An agent can distinguish this from keyEvents.patch without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It lists the sibling operations over the same resource, which gives the agent a routing map, and notes the --readonly refusal condition. However it never states the positive selection criterion (when to create a new Key Event versus patching an existing one), so the alternative routing is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.keyEvents.deleteA
Deletes a Key Event [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the Key Event to delete. Format: properties/{property}/keyEvents/{key_event} Example: "properties/123/keyEvents/456" | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does substantial work: it warns the effect is irreversible unless a trash/undo flow exists, discloses the readonly-profile refusal, and describes the return payload and body sourcing (typed params win over `params`; `body_file` replaces body construction). It leaves out authorization/permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deletion semantics and irreversibility warning are front-loaded, which is good. But the trailing clause about request bodies being built from typed parameters or `body_file` is largely irrelevant boilerplate for a DELETE with no body, and the single em-dash-chained sentence is denser than needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is optional, yet the description still says what comes back. Combined with the irreversibility warning, safety-profile constraint, and parameter precedence rule, an agent has enough to invoke this correctly; only permission/auth context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so `name`, `query`, `params`, `dry_run`, and `body_file` are already documented in the schema. The description only adds the precedence rule (typed parameters beat the `params` map) and the `body_file` alternative, which is marginal added value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Deletes a Key Event'), plus the HTTP method and the semantic effect ('removes the resource'). It then explicitly names the siblings over the same resource (create, get, list, patch), so an agent can route without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Declares a clear operational constraint — 'refused under --readonly safety profiles' — which is exactly the condition an agent needs before attempting a destructive call. It also enumerates the sibling operations on the same resource, though it never states positively when delete is the right choice versus patch or archive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.keyEvents.getB
Retrieves a single Key Event [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the Key Event to retrieve. Format: properties/{property}/keyEvents/{key_event} Example: "properties/123/keyEvents/456" | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| custom | No | |
| deletable | No | |
| eventName | No | |
| createTime | No | |
| defaultValue | No | |
| countingMethod | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries full behavioral burden. It discloses the HTTP GET nature and JSON return, but omits auth/permission requirements and error behavior, and the request-body/body_file discussion is boilerplate that mostly doesn't apply to a read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the request-body construction sentence ('typed flags win...', 'body_file') is largely irrelevant to a GET and dilutes the core message. The sibling list is compact and useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and all params are documented. However, for a no-annotation read tool the description leaves auth requirements and the odd body_file/body-building semantics unexplained, making it only adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents name, query, params, dry_run, and body_file. The description adds only the precedence note ('typed flags win over the params map'), which is marginal value over the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieves a single Key Event') and acknowledges the sibling set over the same resource (create, delete, list, patch). Clear enough for an agent to distinguish it as the single-resource read, though it doesn't distinguish get from list beyond naming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the sibling operations but never states the condition that selects get over list or the create/patch alternatives. Usage is only implied by 'single' versus the sibling set; no explicit when-to-use or exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.keyEvents.listB
Returns a list of Key Events in the specified parent property. Returns an empty list if no Key Events are found [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The resource name of the parent property. Example: 'properties/123' | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coe | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous `ListKeyEvents` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provi |
Output Schema
| Name | Required | Description |
|---|---|---|
| keyEvents | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose two useful traits — the operation is an [HTTP GET] read and returns an empty list rather than an error when nothing exists. It says nothing about permissions, quota/rate limits, ordering of results, or whether pagination is needed to see all Key Events.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the empty-list behavior are front-loaded, which is good. But the middle sentence about building request bodies from typed parameters or `body_file` is stock boilerplate and actively distracting on a GET list endpoint that has no request body — it occupies roughly a third of the text without earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape need not be described, and the schema documents all seven parameters. What is missing is exactly the part structured fields cannot supply: since there are no annotations, the description should confirm read-only safety, auth requirements, and pagination expectations for a 200-item-cap list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the schema already explains parent format, pageSize caps, and pageToken chaining. The description adds only a generic statement about typed parameters overriding the `params` map, which is precedence metadata rather than Key-Events-specific meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource ('Returns a list of Key Events') and scopes it to the parent property, which is enough to separate it from keyEvents.get. The closing note 'Siblings over the same resource: create, delete, get, patch' confirms it is the collection-reader among five, though it names siblings without saying how their behavior differs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list implies the alternative (get for a single Key Event) but never states it explicitly, and there is no 'use this when…' guidance or mention of when to prefer keyEvents.get over this list. Pagination guidance lives only in the pageToken schema text, not in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.keyEvents.patchA
Updates a Key Event [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaKeyEvent object accepting countingMethod, createTime, custom, defaultValue, deletable, eventName, name; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Output only. Resource name of this key event. Format: properties/{property}/keyEvents/{key_event} | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaKeyEvent object. | |
| updateMask | No | [query parameter] Required. The list of fields to be updated. Field names must be in snake case (e.g., "field_to_update"). Omitted fields will not be updated. To replace the enti | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaKeyEvent: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| custom | No | |
| deletable | No | |
| eventName | No | |
| createTime | No | |
| defaultValue | No | |
| countingMethod | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden: it usefully discloses the readonly-profile refusal and that the API's response resource is returned as JSON. It omits permission requirements, irreversibility/omitted-field behavior, and the fact that updateMask governs the scope of the mutation — notable gaps for a write tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense, front-loaded sentence with no filler; the verb/HTTP method comes first and the sibling routing comes last. It is slightly run-on, packing body fields, transport options and siblings into one block, but every clause is informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return-value explanation is redundant but harmless, and the safety-profile refusal note is genuinely necessary given no annotations. The main residual gap is not clarifying the updateMask semantics that drive a PATCH on this resource.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter, including the required name pattern and updateMask. The description adds modest value by listing the body fields and explaining that the body can be passed via `params` or whole via `body_file`, which is the baseline-plus level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (updates), resource (Key Event), and transport ([HTTP PATCH]), and explicitly enumerates the sibling operations over the same resource (create, delete, get, list), so an agent can place it precisely among them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a real selection constraint — 'refused under --readonly safety profiles' — and distinguishes itself from create/delete/get/list. It does not say when to prefer patch over a hypothetical full update, nor flag that updateMask is mandatory in practice, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.listA
Returns child Properties under the specified parent Account. Properties will be excluded if the caller does not have access. Soft-deleted (ie: "trashed") properties are excluded by default. Returns an empty list if no relevant properties are found [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: acknowledgeUserDataCollection, create, delete, get, getDataRetentionSettings, patch, runAccessReport, updateDataRetentionSettings.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| filter | No | [query parameter] Required. An expression for filtering the results of the request. Fields eligible for filtering are: `parent:`(The resource name of the parent account/property) | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 5 | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous `ListProperties` call. Provide this to retrieve the subsequent page. When paginating, all other parameters prov | |
| showDeleted | No | [query parameter] Whether to include soft-deleted (ie: "trashed") Properties in the results. Properties can be inspected to determine whether they are deleted or not. |
Output Schema
| Name | Required | Description |
|---|---|---|
| properties | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and discloses important traits: access-based filtering, default exclusion of soft-deleted properties, empty-list behavior, and that the operation is an HTTP GET. It does not mention authentication requirements or rate limits, but it covers the operation's key read-only and filtering behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and filtering behavior are front-loaded and useful. However, the generic sentence about request bodies built from typed parameters or body_file is largely irrelevant for a GET list operation, and the long sibling enumeration adds bulk without routing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given eight parameters, 100% schema coverage, and an output schema, the description is reasonably complete. It covers the key behavioral constraints an agent needs before calling the tool, though it could be stronger by explicitly clarifying pagination behavior or relationship to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eight parameters in detail. The description adds some contextual meaning around the parent account and soft-deleted properties, but it does not materially extend parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns child Properties under a specified parent Account. This clearly implies a list operation, but it does not explicitly differentiate when to use it versus sibling operations such as get, create, or delete. The sibling list at the end is named but not contrasted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context: properties the caller cannot access are excluded, soft-deleted properties are excluded by default, and an empty list is returned when none are found. However, it does not explicitly say when to use this list operation versus the sibling get or search tools, nor does it state prerequisites or exclusions for alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.patchA
Updates a property [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaProperty object accepting account, createTime, currencyCode, deleteTime, displayName, expireTime, industryCategory, name and 5 more fields; pass it via params or whole via body_file Siblings over the same resource: acknowledgeUserDataCollection, create, delete, get, getDataRetentionSettings, list, runAccessReport, updateDataRetentionSettings.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name of this property. Format: properties/{property_id} Example: "properties/1000" | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaProperty object. | |
| updateMask | No | [query parameter] Required. The list of fields to be updated. Field names must be in snake case (e.g., "field_to_update"). Omitted fields will not be updated. To replace the enti | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaProperty: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| parent | No | |
| account | No | |
| timeZone | No | |
| createTime | No | |
| deleteTime | No | |
| expireTime | No | |
| updateTime | No | |
| displayName | No | |
| currencyCode | No | |
| propertyType | No | |
| serviceLevel | No | |
| industryCategory | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose genuinely useful context: it is a mutation that is refused under readonly profiles, and it returns the API response resource as JSON. It omits permission requirements and update semantics for omitted fields, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the body enumerates fields redundantly with a vague 'and 5 more fields' and appends a long undifferentiated sibling list. Those sentences add bulk without helping selection or invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation with a nested body and no annotations, the description covers the mutation nature, safety-profile behavior, body composition, and return shape. An output schema exists so return values needn't be detailed, and remaining gaps (updateMask semantics livable in schema) are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and nested body fields are fully typed, so the schema already documents every parameter. The description adds only the params-vs-body_file routing hint and a partial field list ('and 5 more fields'), which is marginal over the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Updates a property [HTTP PATCH]') and clarifies it mutates the resource. It lists sibling tools over the same resource but does not distinguish which one an agent should pick, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states one real usage condition — 'refused under --readonly safety profiles' — which tells the agent when it will fail. However, it only names siblings without any when-to-use guidance distinguishing patch from updateDataRetentionSettings or the other operations, leaving selection implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.runAccessReportB
Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested for a property. Reports may be requested for any property, but dimensions that aren't related to quota can only be requested on Google Analytics 360 properties. This method is only available to Administrators. These data access records include GA UI Reporting, GA UI Explorations, GA Data API, and other products like Firebase & Admob that can retrieve data from Google Analyti [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaRunAccessReportRequest object accepting dateRanges, dimensionFilter, dimensions, expandGroups, includeAllUsers, limit, metricFilter, metrics and 4 more fields; pass it via params or whole via body_file Siblings over the same resource: acknowledgeUserDataCollection, create, delete, get, getDataRetentionSettings, list, patch, updateDataRetentionSettings.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| entity | Yes | [URL path segment] The Data Access Report supports requesting at the property level or account level. If requested at the account level, Data Access Reports include all access for | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaRunAccessReportRequest object. | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaRunAccessReportRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | No | |
| quota | No | |
| rowCount | No | |
| metricHeaders | No | |
| dimensionHeaders | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It discloses admin-only access, the 2-year retention window, and the wrapper's note that the call is refused under --readonly safety profiles — useful operational context. However, the flat claim '[HTTP POST] — creates or triggers a change' mischaracterizes what is fundamentally a read/report operation and may wrongly deter an agent from using it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first paragraph is well front-loaded, but it degrades into an overlong wrapper run-on with a truncated fragment ('retrieve data from Google Analyti'), an interleaved HTTP-method note, and an undifferentiated sibling dump. Multiple sentences do not earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no prose. The description covers auth level, 360 restrictions, retention, and request-body plumbing, which is adequate. It still omits report-shaping behavior (pagination via limit/offset, row limits from Administrator reports) and leaves the account-vs-property report choice ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all six top-level parameters including the typed request_body. The description adds a summary field list (dateRanges, dimensionFilter, dimensions, metrics, etc.) and the params-vs-body_file passing convention, but this largely restates the request_body definition and does not explain semantics such as the string typing of limit/offset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource: 'Returns a customized report of data access records' and clarifies it covers 'each time a user reads Google Analytics reporting data.' The purpose is unambiguous, but the sibling list is presented without routing — notably it never distinguishes itself from analyticsadmin.accounts.runAccessReport, which is the real alternative an agent must choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete usage context: 'only available to Administrators,' 'retained for up to 2 years,' and non-quota dimensions 'can only be requested on Google Analytics 360 properties.' These are real gating conditions, though the description never says when to pick this over the account-level report or over analyticsdata.properties.runReport.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsadmin.properties.updateDataRetentionSettingsB
Updates the singleton data retention settings for this property [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleAnalyticsAdminV1betaDataRetentionSettings object accepting eventDataRetention, name, resetUserDataOnNewActivity, userDataRetention; pass it via params or whole via body_file Siblings over the same resource: acknowledgeUserDataCollection, create, delete, get, getDataRetentionSettings, list, patch, runAccessReport.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name for this DataRetentionSetting resource. Format: properties/{property}/dataRetentionSettings | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaDataRetentionSettings object. | |
| updateMask | No | [query parameter] Required. The list of fields to be updated. Field names must be in snake case (e.g., "field_to_update"). Omitted fields will not be updated. To replace the enti | |
| request_body | No | Request body of type GoogleAnalyticsAdminV1betaDataRetentionSettings: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| userDataRetention | No | |
| eventDataRetention | No | |
| resetUserDataOnNewActivity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden. It does disclose useful traits — 'refused under --readonly safety profiles' signals this is a write operation blocked in read-only contexts, and it states the response is JSON. It does not explain whether the update is partial vs full replacement (a key concern for a mutation), what permissions are needed, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, which is good, but the definition is a dense em-dash-laden run-on that crams body construction, return format, and a long sibling list into one paragraph. The sibling enumeration adds clutter without differential value; some trimming would sharpen it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists (so return values needn't be explained) and the mutation/no-annotation profile, the description covers purpose, body shape, and readonly refusal adequately. It stops short of the specifics an agent would want for a mutation — partial-update semantics and updateMask relevance — leaving a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (7 params, nested request_body with enums documented in schema), so the schema does the heavy lifting. The description reiterates the body fields (eventDataRetention, name, resetUserDataOnNewActivity, userDataRetention) and how to pass the body, but adds no syntax or constraint meaning beyond the schema, warranting the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Updates') and resource ('singleton data retention settings for this property') and notes the HTTP PATCH semantics. It's clear what the tool does, though the trailing sibling list (acknowledgeUserDataCollection, create, delete, get, getDataRetentionSettings, patch, etc.) names alternatives without explaining how they differ, leaving the get/settings distinction to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (updates existing retention settings), and it offers invocation guidance ('pass it via params or whole via body_file'). However, there's no explicit when-to-use vs the sibling getDataRetentionSettings or the general properties.patch, and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsdata.properties.audienceExports.createA
Creates an audience export for later retrieval. This method quickly returns the audience export's resource name and initiates a long running asynchronous request to form an audience export. To export the users in an audience export, first create the audience export through this method and then send the audience resource name to the QueryAudienceExport method. See Creating an Audience Export for an introduction to Audience Exports with examples. An audience export is a snapshot of the users currently i [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON AudienceExport object accepting audience, audienceDisplayName, beginCreatingTime, creationQuotaTokensCharged, dimensions, errorMessage, name, percentageCompleted and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: get, list, query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The parent resource where this audience export will be created. Format: `properties/{property}` | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON AudienceExport object. | |
| request_body | No | Request body of type AudienceExport: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| done | No | |
| name | No | |
| error | No | |
| metadata | No | |
| response | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full load and does well: it discloses the async long-running behavior, that the call returns immediately with a resource name, the HTTP POST/readonly-profile refusal, and the request body shape. It omits quota/cost implications and what a partial or failed export looks like beyond the errorMessage field name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The workflow guidance is front-loaded and useful, but the text is padded with a redundant enumeration of request-body fields ('...and 2 more fields') that the schema already covers, and it contains a truncated fragment ('a snapshot of the users currently i') that reads as broken text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an async mutation with a nested body and an output schema present, the description supplies the essential mental model: create returns a name, then query to read results. Return-value details are rightly left to the output schema, and the broken snapshot sentence is the main remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the required `parent` format is fully documented there. The description's field list (audience, dimensions, percentageCompleted, etc.) merely repeats what the schema already enumerates, and the 'via `params` or `body_file`' note duplicates the schema's own descriptions, so it adds no semantics beyond the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates an audience export') and immediately explains the two-phase nature: a quick resource-name return plus a long-running async job. The closing line names the siblings over the same resource (get, list, query), so it is distinguishable from them without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit workflow: call this first, then pass the audience resource name to `QueryAudienceExport` to retrieve the users. That is real routing guidance, though it does not say when to prefer this over the sibling list/get calls or what to do if an export already exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsdata.properties.audienceExports.getB
Gets configuration metadata about a specific audience export. This method can be used to understand an audience export after it has been created. See Creating an Audience Export for an introduction to Audience Exports with examples. Audience Export APIs have some methods at alpha and other methods at beta stability. The intention is to advance methods to beta stability after some feedback and adoption. To give your feedback on this API, complete the [Google Analytics Audience Export API Feedback](https: [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, list, query.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The audience export resource name. Format: `properties/{property}/audienceExports/{audience_export}` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| state | No | |
| audience | No | |
| rowCount | No | |
| dimensions | No | |
| errorMessage | No | |
| beginCreatingTime | No | |
| audienceDisplayName | No | |
| percentageCompleted | No | |
| creationQuotaTokensCharged | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that this is an HTTP GET returning the resource as JSON (implying read-only) and notes alpha/beta stability, which is useful context. It does not mention permission requirements or rate limits, and a broken link ('(https:') undercuts the reference material.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The front-loaded purpose sentence is good, but the body drags in API stability policy and feedback-request prose that do not help an agent select or invoke the tool, and one link is truncated. Signal-to-noise is poor for a simple get operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and schema coverage is complete, so return values and the single key parameter are covered elsewhere. The description is adequate for a read-only get, but the padding and missing auth/permission notes keep it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the `name` parameter and its format are already documented. The description adds the typed-params-vs-`params`-map-vs-`body_file` precedence rule, which adds some meaning, but this is generic request-construction boilerplate rather than specifics about the audience export resource.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Gets configuration metadata about a specific audience export,' and the closing sentence names the sibling operations (create, list, query) over the same resource. This lets an agent distinguish it from query/list without opening schemas, though it does not contrast get-vs-query behavior explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Can be used to understand an audience export after it has been created' implies a usage context, and a pointer to the Creating an Audience Export doc is given. However, there is no explicit when-to-use vs when-to-use-query guidance or any exclusions, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsdata.properties.audienceExports.listA
Lists all audience exports for a property. This method can be used for you to find and reuse existing audience exports rather than creating unnecessary new audience exports. The same audience can have multiple audience exports that represent the export of users that were in an audience on different days. See Creating an Audience Export for an introduction to Audience Exports with examples. Audience Export APIs have some methods at alpha and other methods at beta stability. The intention is to advance me [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. All audience exports for this property will be listed in the response. Format: `properties/{property}` | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of audience exports to return. The service may return fewer than this value. If unspecified, at most 200 audience exports will be r | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous `ListAudienceExports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextPageToken | No | |
| audienceExports | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry more behavioral weight. It discloses HTTP GET, JSON output, alpha/beta stability, and generic request-body handling, but does not clearly state permissions, pagination behavior, or explicit side-effect profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and usage are front-loaded, but the description includes truncated text ("The intention is to advance me") and generic transport boilerplate that does not earn its place for a list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and parameter schema coverage is complete, so the description need not explain return values. It adequately covers purpose, reuse rationale, and sibling operations, though it could mention access requirements or pagination context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameter semantics are already well documented. The description only reinforces generic typed-parameter/body_file behavior and adds no new meaning for parent, pageSize, or pageToken beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Lists all audience exports for a property." It also names the sibling operations (create, get, query), so the agent can distinguish this listing tool from related operations without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the main use case: finding and reusing existing audience exports rather than creating unnecessary new ones. It names siblings, but does not explicitly say when to choose get or query over list, nor does it state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsdata.properties.audienceExports.queryB
Retrieves an audience export of users. After creating an audience, the users are not immediately available for exporting. First, a request to CreateAudienceExport is necessary to create an audience export of users, and then second, this method is used to retrieve the users in the audience export. See Creating an Audience Export for an introduction to Audience Exports with examples. Audiences in Google Analytics 4 allow you to segment your users in the ways that are important to your business. To learn [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON QueryAudienceExportRequest object accepting limit, offset; pass it via params or whole via body_file Siblings over the same resource: create, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the audience export to retrieve users from. Format: `properties/{property}/audienceExports/{audience_export}` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON QueryAudienceExportRequest object. | |
| request_body | No | Request body of type QueryAudienceExportRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rowCount | No | |
| audienceRows | No | |
| audienceExport | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose useful details: it returns the API response as JSON, accepts a QueryAudienceExportRequest body, and supports params or body_file. However, the injected line 'HTTP POST — creates or triggers a change; refused under --readonly safety profiles' is confusing for a query/retrieval tool and may misleadingly imply mutation, while auth and rate-limit behavior are not covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and useful, but the description then includes generic audience-segmentation background and a truncated, broken fragment ('To learn [HTTP POST]') that reads like concatenated system notes. The structure is messy and several clauses do not earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description covers the key prerequisite and body-passing mechanics. Still, given no annotations and multiple sibling tools over the same resource, it should more clearly distinguish query from get/list and clarify the read-vs-POST semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the name, query, params, dry_run, body_file, and request_body fields. The description adds only that the request body accepts limit and offset and can be passed via params or body_file, which is helpful but mostly duplicative of the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence clearly states the specific action and resource: retrieving users from an audience export, and the prerequisite CreateAudienceExport step distinguishes it from the sibling create tool. However, the text is interrupted by a broken fragment ('To learn [HTTP POST]') and generic GA4 audience background, which slightly muddies an otherwise clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the required sequence: first call CreateAudienceExport, then use this method to retrieve users. It also names sibling operations create, get, and list, though it does not explain when to use get or list instead of query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsdata.properties.batchRunPivotReportsA
Returns multiple pivot reports in a batch. All reports must be for the same Google Analytics property [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchRunPivotReportsRequest object accepting requests; pass it via params or whole via body_file Siblings over the same resource: batchRunReports, checkCompatibility, getMetadata, runPivotReport, runRealtimeReport, runReport.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| property | Yes | [URL path segment] A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID] | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchRunPivotReportsRequest object. | |
| request_body | No | Request body of type BatchRunPivotReportsRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| pivotReports | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the safety burden well: it discloses the HTTP POST method, that it creates/triggers a change, and that it is refused under --readonly safety profiles. It omits auth requirements and any per-batch request-count limits, which would matter for a batched reporting call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core behavior and the property constraint before the HTTP/safety note and sibling list. It is a single dense block and partly restates the request_body schema description, but no sentence is pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with deeply nested request bodies and an output schema (so return values need not be explained), the description covers batch semantics, the same-property restriction, safety profile behavior, and body-passing options. The main gap is guidance on batch size limits or partial-failure behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents property, query, params, dry_run, body_file, and request_body. The description reinforces the dual body-passing path (`params` merge vs. whole `body_file`) and names the request type, but adds no syntax or value-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Returns multiple pivot reports in a batch") and adds the distinguishing constraint that all reports must target the same property. It also enumerates the sibling reports endpoints, making the batch-vs-single distinction (batchRunReports, runPivotReport) immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage constraint (same property for all requests) and lists the alternative analyticsdata siblings so the agent can route elsewhere for single-report needs. It stops short of an explicit "use this when you have multiple pivots; use runPivotReport for one" rule, leaving a small inference step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsdata.properties.batchRunReportsA
Returns multiple reports in a batch. All reports must be for the same Google Analytics property [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchRunReportsRequest object accepting requests; pass it via params or whole via body_file Siblings over the same resource: batchRunPivotReports, checkCompatibility, getMetadata, runPivotReport, runRealtimeReport, runReport.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| property | Yes | [URL path segment] A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID] | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchRunReportsRequest object. | |
| request_body | No | Request body of type BatchRunReportsRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| reports | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does the heavy lifting: it discloses HTTP POST, classifies the operation as change-triggering and refused under --readonly profiles, and states the response is the API's resource as JSON. It also explains the two body input routes (`params` merge vs `body_file`). It stops short of quota/rate-limit or error behavior for a batched analytics query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the middle sentence chains three clauses with em dashes ('Returns the API's response resource as JSON — request body is a JSON BatchRunReportsRequest object accepting requests; pass it via params or whole via body_file'), which reads as spliced rather than structured. Nothing is padded, but the density hurts scanability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deeply nested request-body tool, the definition covers method, side-effect profile, body-passing mechanism, and the shared-property constraint; an output schema exists so return values need no elaboration. The remaining gap is guidance on how the batched `requests` entries are composed and any quota implications of batching.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested BatchRunReportsRequest fields are self-documented, so the baseline is 3. The description adds only a little beyond that: it identifies the request body type and where to put it (`params` or `body_file`) and mentions the required property path, but adds no semantics for the nested `requests` array items.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Returns multiple reports in a batch') and adds a real constraint: all reports must target the same property. It also enumerates the analyticsdata siblings (runReport, batchRunPivotReports, etc.), so the agent can see the family, though it does not explain how this tool differs from a plain runReport beyond the word 'batch'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'multiple reports in a batch' plus the same-property constraint hints at batching, and the readonly-profile refusal is genuinely useful context. But there is no explicit routing guidance such as 'use runReport for one report, this for many' or 'prefer batchRunPivotReports when you need pivots', even though the sibling list is right there.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsdata.properties.checkCompatibilityA
This compatibility method lists dimensions and metrics that can be added to a report request and maintain compatibility. This method fails if the request's dimensions and metrics are incompatible. In Google Analytics, reports fail if they request incompatible dimensions and/or metrics; in that case, you will need to remove dimensions and/or metrics from the incompatible report until the report is compatible. The Realtime and Core reports have different compatibility rules. This method checks compatibility for Core reports [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CheckCompatibilityRequest object accepting compatibilityFilter, dimensionFilter, dimensions, metricFilter, metrics; pass it via params or whole via body_file Siblings over the same resource: batchRunPivotReports, batchRunReports, getMetadata, runPivotReport, runRealtimeReport, runReport.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| property | Yes | [URL path segment] A Google Analytics property identifier whose events are tracked. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/dev | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CheckCompatibilityRequest object. | |
| request_body | No | Request body of type CheckCompatibilityRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| metricCompatibilities | No | |
| dimensionCompatibilities | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and discloses important behavior: it is an HTTP POST, may be refused under readonly safety profiles, fails when dimensions/metrics are incompatible, and returns JSON. The phrase 'creates or triggers a change' is somewhat ambiguous for a compatibility-check method, but the safety-profile and failure behavior are clearly surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the extra details about Core vs Realtime rules and POST safety are relevant. Some explanation is redundant, but the paragraph remains efficiently organized for a complex Analytics API method.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested request body and available output schema, the description provides enough context to call the tool correctly: it identifies the endpoint's purpose, compatibility failure behavior, Core-report scope, and request-body mechanism. Authentication and rate-limit details are omitted, but those are not essential to invoke this specific method.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the parameters in detail. The description names the CheckCompatibilityRequest fields and explains that the body can be passed via params or body_file, but this largely restates what the schema already provides rather than adding new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it lists compatible dimensions and metrics for a Core report request. It also distinguishes this method from Realtime compatibility checks and names sibling report methods, so an agent can identify its role without opening other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains that this checks Core-report compatibility and that Realtime reports use different rules, which effectively scopes when to use it. It does not explicitly say to call it before runReport instead of after a failure, but the intended usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsdata.properties.getMetadataA
Returns metadata for dimensions and metrics available in reporting methods. Used to explore the dimensions and metrics. In this method, a Google Analytics property identifier is specified in the request, and the metadata response includes Custom dimensions and metrics as well as Universal metadata. For example if a custom metric with parameter name levels_unlocked is registered to a property, the Metadata response will contain customEvent:levels_unlocked. Universal metadata are dimensions and metrics applicable to any property such as country and totalUsers [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchRunPivotReports, batchRunReports, checkCompatibility, runPivotReport, runRealtimeReport, runReport.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the metadata to retrieve. This name field is specified in the URL path and not URL parameters. Property is a numeric Google Analy | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| metrics | No | |
| dimensions | No | |
| comparisons | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does reasonably well: it discloses [HTTP GET] (read-only, non-mutating), explains that the response includes both custom and universal metadata, gives a concrete naming example, and clarifies request construction precedence (typed flags win over the params map; body_file overrides). It omits auth/quota requirements and pagination, so it is not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the description then wanders into a multi-sentence explanation of custom vs universal metadata plus generic boilerplate about body_file/params that is repeated across sibling tools, and trails off into an unexplained sibling list. Several sentences do not earn their place for a simple read-metadata endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the schema fully covers the five parameters. For a read-only discovery call the description supplies enough — what it returns, that it is a GET, and how the request is assembled — though it stops short of explicitly situating itself relative to the reporting siblings it lists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents name, query, params, dry_run, and body_file; baseline is 3. The description reiterates that the property identifier goes in the request/path and gives an example of what metadata looks like, but adds no syntax or meaning for the other four parameters beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: returns metadata for dimensions and metrics available in reporting methods, with concrete examples (customEvent:levels_unlocked, country, totalUsers). It names its sibling tools (runReport, checkCompatibility, etc.) but does not explicitly articulate how its output differs from theirs, keeping it just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Used to explore the dimensions and metrics' implies a discovery role, and the sibling list is provided, but the description never says explicitly when to call this instead of runReport — e.g., 'call this first to discover valid dimension/metric names before running a report.' The routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsdata.properties.runPivotReportA
Returns a customized pivot report of your Google Analytics event data. Pivot reports are more advanced and expressive formats than regular reports. In a pivot report, dimensions are only visible if they are included in a pivot. Multiple pivots can be specified to further dissect your data [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON RunPivotReportRequest object accepting cohortSpec, comparisons, currencyCode, dateRanges, dimensionFilter, dimensions, keepEmptyRows, metricFilter and 4 more fields; pass it via params or whole via body_file Siblings over the same resource: batchRunPivotReports, batchRunReports, checkCompatibility, getMetadata, runRealtimeReport, runReport.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| property | Yes | [URL path segment] A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID] | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON RunPivotReportRequest object. | |
| request_body | No | Request body of type RunPivotReportRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| rows | No | |
| metadata | No | |
| aggregates | No | |
| pivotHeaders | No | |
| metricHeaders | No | |
| propertyQuota | No | |
| dimensionHeaders | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses that this is an HTTP POST that 'creates or triggers a change' despite being a query, that it is refused under --readonly profiles, and that it returns the API response resource as JSON. What it omits is quota/cost behavior and result-size limits, which matter for the Analytics Data API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with purpose before mechanics, and every block (purpose, POST/readonly caveat, request/response shape, siblings) carries information. The single dense paragraph with em-dash clauses makes it harder to scan than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be detailed, and the description still says the response resource comes back as JSON. For a tool with a very large nested request body, it supplies the essential context an agent needs: the body type, two ways to supply it, the mutating POST semantics, and which sibling to consider instead.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description enumerates the RunPivotReportRequest body fields (cohortSpec, comparisons, currencyCode, dateRanges, dimensionFilter, dimensions, keepEmptyRows, metricFilter, plus 4 more) and the two delivery paths (`params` vs `body_file`), but that routing detail is already stated in the schema's own descriptions for params and body_file, so it adds little beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a customized pivot report of your Google Analytics event data') and immediately contrasts it with regular reports, explaining that dimensions are only visible when included in a pivot. It also names the concrete sibling alternatives (runReport, batchRunPivotReports, runRealtimeReport, etc.), so an agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a real selection criterion — pivot reports are 'more advanced and expressive formats than regular reports' — and lists the sibling endpoints over the same resource, plus a hard usage constraint (refused under --readonly safety profiles). It stops short of stating explicit when-not rules (e.g., batchRunPivotReports for multiple requests in one call), leaving that inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsdata.properties.runRealtimeReportA
Returns a customized report of realtime event data for your property. Events appear in realtime reports seconds after they have been sent to the Google Analytics. Realtime reports show events and usage data for the periods of time ranging from the present moment to 30 minutes ago (up to 60 minutes for Google Analytics 360 properties). For a guide to constructing realtime requests & understanding responses, see Creating a Realtime Report [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON RunRealtimeReportRequest object accepting dimensionFilter, dimensions, limit, metricAggregations, metricFilter, metrics, minuteRanges, orderBys and 1 more fields; pass it via params or whole via body_file Siblings over the same resource: batchRunPivotReports, batchRunReports, checkCompatibility, getMetadata, runPivotReport, runReport.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| property | Yes | [URL path segment] A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID] | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON RunRealtimeReportRequest object. | |
| request_body | No | Request body of type RunRealtimeReportRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| rows | No | |
| totals | No | |
| maximums | No | |
| minimums | No | |
| rowCount | No | |
| metricHeaders | No | |
| propertyQuota | No | |
| dimensionHeaders | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantially well: it discloses the realtime lag ('seconds after'), the 30/60-minute retention bounds, the HTTP POST/readonly-profile refusal, and that the response is a JSON API resource. It omits quota/rate-limit behavior and auth requirements (the schema's returnPropertyQuota hints quotas exist), so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and each following block (time window, guide link, transport/safety, body shape, siblings) is a discrete useful fact. It is dense but not padded, though 'and 1 more fields' and the sibling roll-call add mild noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deeply nested request-body tool with an output schema present, the description covers scope, time bounds, mutation-safety caveat, and both input channels, which is enough to call it correctly. Remaining gaps (quota behavior, auth scopes) are minor given the output schema handles returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description enumerates the RunRealtimeReportRequest fields and the params-vs-body_file input channel, but that largely restates what the schema's own descriptions already say; it adds no semantic detail on how fields interact (e.g. minuteRanges vs. minute granularity).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource ('Returns a customized report of realtime event data for your property') and the 30/60-minute window pins down the scope precisely. It lists sibling tools but does not say what they do differently (e.g. runReport for historical ranges), so the differentiation is only partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The time-window semantics imply when this tool is the right choice (near-real-time monitoring rather than historical analysis), but that is never stated explicitly and no 'use runReport instead when...' rule is given despite six siblings being named. The --readonly safety-profile note is a constraint, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyticsdata.properties.runReportB
Returns a customized report of your Google Analytics event data. Reports contain statistics derived from data collected by the Google Analytics tracking code. The data returned from the API is as a table with columns for the requested dimensions and metrics. Metrics are individual measurements of user activity on your property, such as active users or event count. Dimensions break down metrics across some common criteria, such as country or event name. For a guide to constructing requests & understanding responses, see [Creating a Report](https://developers.google.com/analytics/devguides/repor [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON RunReportRequest object accepting cohortSpec, comparisons, currencyCode, dateRanges, dimensionFilter, dimensions, keepEmptyRows, limit and 7 more fields; pass it via params or whole via body_file Siblings over the same resource: batchRunPivotReports, batchRunReports, checkCompatibility, getMetadata, runPivotReport, runRealtimeReport.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| property | Yes | [URL path segment] A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID] | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON RunReportRequest object. | |
| request_body | No | Request body of type RunReportRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| rows | No | |
| totals | No | |
| maximums | No | |
| metadata | No | |
| minimums | No | |
| rowCount | No | |
| metricHeaders | No | |
| propertyQuota | No | |
| dimensionHeaders | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description does carry the burden; it does add a genuinely useful trait – '[HTTP POST] ... refused under --readonly safety profiles' – despite this being a data read. It also states the response is the API's JSON resource. However it omits quota/rate-limit behavior (relevant given the returnPropertyQuota field) and auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the text contains a truncated documentation link ('...repor') and swaps mid-sentence into bracket boilerplate, hurting structure. It is not bloated but is untidy and part of the sentence is cut off.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a full output schema and 100% parameter coverage, the description needn't explain return values, and it covers purpose, body-passing mechanics, and the POST/readonly caveat. Minor gap: no guidance on property ID sourcing or quota behavior, but it is largely sufficient to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds the mechanics of passing the RunReportRequest via `params` or whole via `body_file` and enumerates some body fields, but this largely restates what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Returns a customized report of your Google Analytics event data') and explains what a report contains (dimensions break down metrics). It lists sibling tools over the same resource but does not explain how this report differs functionally from runPivotReport or batchRunReports, keeping it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Renaming the siblings (batchRunPivotReports, batchRunReports, runRealtimeReport, etc.) implies an alternative exists but gives no condition for choosing this one over them. Usage is implied by the report semantics rather than stated as explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.acl.deleteA
Deletes an access control rule [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get, insert, list, patch, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| ruleId | Yes | [URL path segment] ACL rule identifier. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and does so: it discloses irreversibility, the possible trash/undo caveat, refusal under --readonly safety profiles, and the post-delete return payload (resource state or empty) as JSON.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded block that opens with the verb and resource, then layers safety and return-value notes. The CLI-flag detail (--readonly) is somewhat tangential but compact; no sentence is fully wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by naming the return value. With 100% schema coverage and strong safety disclosure, the remaining gap is authorization requirements for deleting an ACL rule on a calendar.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description goes slightly further by explaining how the body is assembled (typed parameters override the `params` map, or the body is read whole from `body_file`), which clarifies the interplay the schema only states piecemeal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Deletes an access control rule") plus the HTTP method, and explicitly enumerates the sibling operations over the same resource (get, insert, list, patch, update, watch), so an agent can place it precisely among the calendar.acl tools without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Listing the sibling operations aids selection, but no conditions are given for choosing delete over patch/update (e.g. remove a grant vs. modify permissions), and no prerequisites (ownership rights on the calendar) are stated. Usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.acl.getB
Returns an access control rule [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, insert, list, patch, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| ruleId | Yes | [URL path segment] ACL rule identifier. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| role | No | |
| scope | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It does mention 'HTTP GET' and 'Returns the requested resource as JSON', which conveys read-only behavior and output format. However, it includes irrelevant generic boilerplate about request bodies and body_file, which is misleading for a GET request and omits important behavioral details like required permissions or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the second sentence is long and includes boilerplate about request bodies that is irrelevant for a GET tool. Every sentence should earn its place, and the body_file content does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema and full parameter coverage, so the description needn't explain return values. Still, for a GET tool with no annotations, it should mention auth requirements or error cases. The presence of misleading body-building instructions reduces completeness for this specific operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents calendarId and ruleId. The description adds no specific meaning about these parameters; it only includes a generic note about typed parameters winning over the params map. Baseline 3 is appropriate when schema covers all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Returns an access control rule'. It also lists sibling tools over the same resource, which helps distinguish it from delete/insert/list/patch/update/watch. However, the boilerplate about request bodies dilutes the focus and could confuse an agent about what this tool actually does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names siblings, implying this is the single-rule getter, but it does not explicitly state when to use it versus those siblings (e.g., 'use this to retrieve one ACL rule; use list for all rules'). Usage is only implied, not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.acl.insertA
Creates an access control rule [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON AclRule object accepting etag, id, kind, role, scope; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, patch, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON AclRule object. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| request_body | No | Request body of type AclRule: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| sendNotifications | No | [query parameter] Whether to send notifications about the calendar sharing change. Optional. The default is True. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| role | No | |
| scope | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the safety burden itself: it marks this as a mutating POST, notes it is blocked under --readonly profiles, and says it returns the API response resource. It omits real-world side effects such as the sharing grant being sent and the sendNotifications implication, which keeps it out of the top band.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence, but front-loaded with the verb, resource and HTTP method before moving to body handling and siblings. Slightly crammed by em-dashes, yet every clause contributes something actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value description is unnecessary, and the description still covers mutation semantics, readonly rejection and body-passing mechanics. The only material gap for a zero-annotation mutation tool is the absence of permission/scope requirements and side effects like notification emails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the AclRule fields and the calendarId/sendNotifications semantics are already documented. The description's restatement of etag/id/kind/role/scope adds little, though the note that the body can go via `params` or whole via `body_file` clarifies the two intake paths.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Creates an access control rule') with the HTTP method, and explicitly positions the tool against the six siblings on the same resource (delete, get, list, patch, update, watch). An agent can immediately tell this is the create path for calendar ACLs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the sibling operations over the same resource, which implies the create-vs-modify boundary, and it flags that the call is refused under --readonly safety profiles. But it never states when to prefer insert over patch/update (e.g., new grantee vs. changing an existing rule), so the choice is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.acl.listB
Returns the rules in the access control list for the calendar [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, insert, patch, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Token specifying which result page to return. Optional. | |
| syncToken | No | [query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| maxResults | No | [query parameter] Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional. | |
| showDeleted | No | [query parameter] Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to "none". Deleted ACLs will always be included if syncToken is provid |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| kind | No | |
| items | No | |
| nextPageToken | No | |
| nextSyncToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden; it does say the call is an HTTP GET and returns JSON, which signals a read-only operation. However the request-body/body_file discussion is generic boilerplate irrelevant to a GET list, and it omits pagination and sync-token behavior and access requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in one clear clause, but the second sentence is generic request-construction boilerplate that does no work for a read-only list endpoint, and the bare sibling enumeration adds length without routing value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the input schema is fully documented, so the description needn't explain return values or parameters. It is still thin on the operational context that matters here: pagination expectations, sync semantics, and required calendar access rights.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and every parameter (calendarId, maxResults, pageToken, syncToken, showDeleted) is documented in the schema itself, so the baseline of 3 applies. The description adds no meaning about parameter interaction, such as syncToken forcing deleted ACLs to be included.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns the rules in the access control list for a given calendar, plus the HTTP GET mapping. It names the sibling operations over the same resource, but only lists them without distinguishing conditions, so differentiation is present but shallow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to call this instead of calendar.acl.get or calendar.calendarList.list, no prerequisites (e.g. needing ACL read permission on the calendar), and no exclusion guidance. The trailing sibling list mentions alternatives without saying anything about how to choose between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.acl.patchA
Updates an access control rule. This method supports patch semantics [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON AclRule object accepting etag, id, kind, role, scope; pass it via params or whole via body_file Siblings over the same resource: delete, get, insert, list, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| ruleId | Yes | [URL path segment] ACL rule identifier. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON AclRule object. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| request_body | No | Request body of type AclRule: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| sendNotifications | No | [query parameter] Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| role | No | |
| scope | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses mutation via HTTP PATCH, readonly-profile refusal, JSON return behavior, and the request-body shape. It does not cover permission requirements or concurrency/etag implications, but the safety and mutation traits are clearly surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the paragraph is dense but not excessive for an 8-parameter mutation tool. Some sentences repeat schema details, and the full sibling list is somewhat verbose, but the structure remains usable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the mutation nature, nested request body, high schema coverage, and an existing output schema, the definition is largely complete. It covers safety-profile refusal and body-passing mechanics; the main remaining gap is guidance on selecting patch over the closely related update sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats that the body is an AclRule accepting etag, id, kind, role, scope and can be passed via `params` or `body_file`, which is already documented in the schema rather than adding new parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Updates an access control rule", and adds that it uses PATCH semantics. It also names the sibling ACL operations, but does not explicitly contrast patch vs update, so sibling differentiation is only partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It lists sibling tools over the same resource, but gives no explicit guidance on when to choose patch versus update or insert. The only usage constraint supplied is that the method is refused under --readonly safety profiles.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.acl.updateA
Updates an access control rule [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON AclRule object accepting etag, id, kind, role, scope; pass it via params or whole via body_file Siblings over the same resource: delete, get, insert, list, patch, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| ruleId | Yes | [URL path segment] ACL rule identifier. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON AclRule object. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| request_body | No | Request body of type AclRule: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| sendNotifications | No | [query parameter] Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| role | No | |
| scope | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and does reasonable work: it discloses the HTTP PUT semantics, that it is refused under readonly profiles, that it returns the API's response resource as JSON, and it describes the request body shape (AclRule with etag, id, kind, role, scope). It stops short of describing side effects on existing rules or required permissions beyond the readonly note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and scope are front-loaded in the first sentence, and every clause carries information (method, safety, return, body). It is dense and em-dash-heavy, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description needn't explain return values, and it still notes they are the API's JSON resource. It covers body handling, params routing, safety, and alternatives. Some behavioral gaps (permission requirements, effect on existing rules) remain, keeping it below 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further by explaining how the body is supplied — 'pass it via `params` or whole via `body_file`' — and enumerates the AclRule fields. This adds usable meaning beyond the schema about the params/body_file routing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates an access control rule'), names the HTTP method (PUT), and explicitly lists the sibling operations over the same resource (delete, get, insert, list, patch, watch). An agent can distinguish it from calendar.acl.patch without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Adds a real usage constraint ('refused under --readonly safety profiles') but only lists the alternative siblings without saying when to prefer update over patch or delete. Usage is implied by the operation type rather than explicitly routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.acl.watchA
Watch for changes to ACL resources [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Channel object accepting address, expiration, id, kind, params, payload, resourceId, resourceUri and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, insert, list, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object. | |
| pageToken | No | [query parameter] Token specifying which result page to return. Optional. | |
| syncToken | No | [query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| maxResults | No | [query parameter] Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional. | |
| showDeleted | No | [query parameter] Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to "none". Deleted ACLs will always be included if syncToken is provid | |
| request_body | No | Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| type | No | |
| token | No | |
| params | No | |
| address | No | |
| payload | No | |
| expiration | No | |
| resourceId | No | |
| resourceUri | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses that this is a mutating POST, that it is blocked under read-only profiles, and that it returns the API's response resource as JSON. It omits auth requirements and watch-channel lifetime/expiration behavior, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The verb and safety caveat are front-loaded, which is good, but the rest is a single run-on sentence that repeats the 'pass via params or body_file' instruction already present in the schema and duplicates the trailing sibling list. It is dense rather than wasteful, but could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is optional, and the description still covers the mutating nature, the read-only refusal, and body construction. For a 10-parameter watch tool it is nearly complete, missing only auth/permission and channel-expiry details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description adds value by enumerating the Channel body fields (address, expiration, id, kind, params, payload, resourceId, resourceUri) and explaining the two delivery paths (params vs body_file). The field list largely mirrors the request_body schema, capping it at 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a concrete verb and resource ('Watch for changes to ACL resources') and clarifies the mechanism is an HTTP POST that creates/triggers a change. It names the sibling operations on the same resource, but only as a bare list rather than routing criteria, so differentiation is partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides one real usage condition — 'refused under --readonly safety profiles' — which tells an agent when it will fail. However, it never states when to prefer this over siblings like list or get, leaving alternative selection implied by the trailing enumeration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendarList.deleteA
Removes a calendar from the user's calendar list [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get, insert, list, patch, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavior burden and does well: it discloses irreversibility ("unless the API documents a trash/undo flow"), the --readonly safety-profile refusal, and the return shape (post-delete resource state or empty as JSON). The tail about how request bodies are constructed is generic template boilerplate rather than tool-specific insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is well front-loaded and does the real work. The remainder is a long run-on chain of generic transport boilerplate (typed flags, params map, body_file) that could apply to any tool in this family and dilutes the destructive-action warning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers safety, irreversibility, and return format adequately. The main remaining gap is that it never clarifies the effect on the underlying calendar versus the list entry, which materially affects the decision to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents calendarId, params, query, dry_run, and body_file. The description restates the typed-params-win-over-params-map and body_file behavior already present in the schema, adding no new semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Removes a calendar from the user's calendar list") and enumerates the sibling operations over the same resource. It does not, however, disambiguate from calendar.calendars.delete (i.e., that this only unsubscribes rather than destroying the calendar), which is the one distinction an agent most needs here.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (a destructive list operation) and notes it is refused under --readonly profiles, which is useful. But it gives no explicit routing guidance such as "use this to unsubscribe; use calendars.delete to destroy the calendar," so the agent must infer the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendarList.getB
Returns a calendar from the user's calendar list [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, insert, list, patch, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| hidden | No | |
| colorId | No | |
| deleted | No | |
| primary | No | |
| summary | No | |
| location | No | |
| selected | No | |
| timeZone | No | |
| dataOwner | No | |
| accessRole | No | |
| description | No | |
| backgroundColor | No | |
| foregroundColor | No | |
| summaryOverride | No | |
| defaultReminders | No | |
| conferenceProperties | No | |
| notificationSettings | No | |
| autoAcceptInvitations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the HTTP GET verb and that the resource is returned as JSON, which implies a read-only operation, but the long clause about request bodies built from typed parameters or body_file is boilerplate that is irrelevant (and mildly confusing) for a GET. Nothing is said about permissions or access scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is well front-loaded, but the second sentence is generic scaffolding about body construction that earns no place in a read-only GET definition. The sibling list is terse to the point of being a name dump.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not required, and the GET semantics plus sibling context cover the essentials for invoking it. The remaining gap is guidance on when this is preferable to calendar.calendars.get and clarity around calendarId lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no meaning beyond the schema for calendarId, and notably the schema's own calendarId description is truncated mid-sentence, which the description does not compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ('Returns a calendar from the user's calendar list') and names the sibling operations over the same resource, which helps distinguish it from list/delete/update. It does not, however, differentiate itself from the much closer sibling calendar.calendars.get, so the purpose boundary is only partly drawn.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives — only a bare enumeration of sibling names with no conditions attached. An agent still has to guess whether it wants calendarList.get or calendars.get, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendarList.insertA
Inserts an existing calendar into the user's calendar list [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CalendarListEntry object accepting accessRole, autoAcceptInvitations, backgroundColor, colorId, conferenceProperties, dataOwner, defaultReminders, deleted and 13 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, patch, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CalendarListEntry object. | |
| request_body | No | Request body of type CalendarListEntry: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| colorRgbFormat | No | [query parameter] Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| hidden | No | |
| colorId | No | |
| deleted | No | |
| primary | No | |
| summary | No | |
| location | No | |
| selected | No | |
| timeZone | No | |
| dataOwner | No | |
| accessRole | No | |
| description | No | |
| backgroundColor | No | |
| foregroundColor | No | |
| summaryOverride | No | |
| defaultReminders | No | |
| conferenceProperties | No | |
| notificationSettings | No | |
| autoAcceptInvitations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it flags the operation as a mutation ('creates or triggers a change'), discloses it is 'refused under --readonly safety profiles,' and states it returns the API response resource as JSON. It doesn't cover idempotency or duplicate-entry behavior, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and safety constraint before the field list and siblings. The enumeration of body fields ('...and 13 more fields') is somewhat wasteful given full schema coverage, but overall the structure is efficient and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with nested body objects, the description covers the mutation semantics, safety-profile behavior, and body-passing options; return values needn't be explained since an output schema exists. Missing only edge-case behavior (duplicates, idempotency) for a full 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description enumerates some body fields and explains the 'params' vs 'body_file' passing mechanism, but this largely restates schema content, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Inserts an existing calendar into the user's calendar list.' It explicitly names the sibling operations (delete, get, list, patch, update, watch) over the same resource, so an agent can place it precisely in the CRUD family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the siblings but provides no explicit when-to-use / when-not-to-use guidance distinguishing insert from patch or update (which mutate the same list entry). Usage is only implied by 'Inserts an existing calendar,' leaving the insert-vs-update decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendarList.listB
Returns the calendars on the user's calendar list [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, insert, patch, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Token specifying which result page to return. Optional. | |
| syncToken | No | [query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai | |
| maxResults | No | [query parameter] Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional. | |
| showHidden | No | [query parameter] Whether to show hidden entries. Optional. The default is False. | |
| showDeleted | No | [query parameter] Whether to include deleted calendar list entries in the result. Optional. The default is False. | |
| minAccessRole | No | [query parameter] The minimum access role for the user in the returned entries. Optional. The default is no restriction. Values: `freeBusyReader` = The user can read free/busy information.; `owner` = The user can read and modify events and access control lists.; `reader` = The user can read events that are not private.; `writer` = The user can read and modify events.; `writerWithoutPrivateAccess` = The user can read and modify events that aren't private. The user can read free/busy information about private events. The user can't modify private events.. | |
| showOwnOrganizationOnly | No | [query parameter] Whether to show only entries for calendars from the organization. This parameter is only applicable to Google Workspace users. Optional. The default is False. |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| kind | No | |
| items | No | |
| nextPageToken | No | |
| nextSyncToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does disclose that this is an HTTP GET returning JSON, which establishes the read-only safety profile. However, it omits pagination behavior, auth/scope requirements, the meaning of sync tokens, and instead spends its second sentence on body-building mechanics that are irrelevant to a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and sibling list are front-loaded and useful, but the middle sentence about request bodies and `body_file` is generic wrapper boilerplate that cannot apply to a GET/list and dilutes the signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema and full parameter documentation, so the description needn't explain return values or filters. What's still missing is the one thing structured fields can't cover: guidance on choosing this over calendar.calendars.list and other list siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 11 parameters (pageToken, syncToken, maxResults, showHidden, showDeleted, minAccessRole, showOwnOrganizationOnly, plus wrapper params) are already documented. The description only restates that typed flags win over the `params` map, which the schema also says, so it adds nothing beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first clause states a specific verb and resource ('Returns the calendars on the user's calendar list [HTTP GET]') and the sibling line names the operations over the same resource, so an agent can distinguish list from get/insert/delete. The remaining gap is that it doesn't contrast with the closely-named sibling calendar.calendars.list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Listing siblings over the same resource ('delete, get, insert, patch, update, watch') implies the alternative set, but there is no explicit when-to-use guidance and no distinction from calendar.calendars.list, which is the tool an agent is most likely to confuse with this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendarList.patchB
Updates an existing calendar on the user's calendar list. This method supports patch semantics [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CalendarListEntry object accepting accessRole, autoAcceptInvitations, backgroundColor, colorId, conferenceProperties, dataOwner, defaultReminders, deleted and 13 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, insert, list, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CalendarListEntry object. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| request_body | No | Request body of type CalendarListEntry: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| colorRgbFormat | No | [query parameter] Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| hidden | No | |
| colorId | No | |
| deleted | No | |
| primary | No | |
| summary | No | |
| location | No | |
| selected | No | |
| timeZone | No | |
| dataOwner | No | |
| accessRole | No | |
| description | No | |
| backgroundColor | No | |
| foregroundColor | No | |
| summaryOverride | No | |
| defaultReminders | No | |
| conferenceProperties | No | |
| notificationSettings | No | |
| autoAcceptInvitations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two useful traits: patch semantics (unspecified fields are not replaced) and that the call is refused under --readonly safety profiles. It does not state permission/auth requirements, whether the change is reversible, or side effects on the user's other calendar lists, which matter for an unannotated mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and the safety-profile caveat, which is good. But the middle clause listing nine body fields plus 'and 13 more' is padding that duplicates the request_body schema and crowds out more useful information such as permission requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the brief mention that the API response resource is returned as JSON is sufficient. For a seven-parameter mutation with nested body, no annotations and a fully described schema, the coverage is nearly adequate; only auth/permission prerequisites and the patch-vs-update rule are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents calendarId, colorRgbFormat, params, body_file and the full CalendarListEntry body. The description's field enumeration ('accessRole, autoAcceptInvitations, backgroundColor, ... and 13 more') and the 'pass it via params or whole via body_file' note restate what the schema already says, adding little new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates an existing calendar on the user's calendar list') and explicitly frames it as PATCH semantics rather than full replacement. It lists the sibling operations over the same resource (delete, get, insert, list, update, watch) but never actually distinguishes patch from calendar.calendarList.update, so the differentiation is enumerated rather than explained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'supports patch semantics' hints that partial updates are intended, but there is no explicit statement of when to prefer this over calendar.calendarList.update (full replace) or insert. The one concrete conditional, 'refused under --readonly safety profiles,' is about environment safety rather than task selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendarList.updateA
Updates an existing calendar on the user's calendar list [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CalendarListEntry object accepting accessRole, autoAcceptInvitations, backgroundColor, colorId, conferenceProperties, dataOwner, defaultReminders, deleted and 13 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, insert, list, patch, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CalendarListEntry object. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| request_body | No | Request body of type CalendarListEntry: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| colorRgbFormat | No | [query parameter] Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| hidden | No | |
| colorId | No | |
| deleted | No | |
| primary | No | |
| summary | No | |
| location | No | |
| selected | No | |
| timeZone | No | |
| dataOwner | No | |
| accessRole | No | |
| description | No | |
| backgroundColor | No | |
| foregroundColor | No | |
| summaryOverride | No | |
| defaultReminders | No | |
| conferenceProperties | No | |
| notificationSettings | No | |
| autoAcceptInvitations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does reasonably well: it discloses that this is an HTTP PUT mutation, that it is blocked under readonly safety profiles, and that it returns the API response resource as JSON. It omits permission/scope requirements and does not spell out that PUT replaces unspecified fields, but the core behavioral profile — mutation plus a hard safety gate — is stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The most decision-relevant facts (verb, resource, PUT, readonly refusal) are front-loaded in the first clause, and the whole thing is a single compact paragraph. The long enumeration of body fields ('accessRole, autoAcceptInvitations, backgroundColor ... and 13 more') is padding that duplicates the schema and slightly bloats the middle.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with nested request body, an output schema, and 100% schema coverage, the description covers the essentials: what it mutates, that it is a PUT, that a safety profile can block it, and how the body is supplied. Missing pieces (required auth scope, replace-vs-merge semantics) are modest given how much the schema already documents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description enumerates several CalendarListEntry body fields and explains that the body can be supplied via `params` or wholesale via `body_file`, but that repeats what the schema and the request_body property description already say, adding no syntax, format, or precedence detail beyond the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Updates an existing calendar on the user's calendar list') plus the HTTP method, which is far more informative than the dotted name alone. It lists the sibling operations over the same resource (delete, get, insert, list, patch, watch), signalling awareness of alternatives, but it does not explain how 'update' differs semantically from 'patch' (full replace vs partial), so an agent still has to infer that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is one genuine usage constraint: it is 'refused under --readonly safety profiles', which tells the agent when the call will not work. Beyond that, usage is only implied by naming the sibling set; there is no explicit guidance such as 'use patch for partial edits, update for full replacement', nor any prerequisite about required scopes or ownership.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendarList.watchA
Watch for changes to CalendarList resources [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Channel object accepting address, expiration, id, kind, params, payload, resourceId, resourceUri and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, insert, list, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object. | |
| pageToken | No | [query parameter] Token specifying which result page to return. Optional. | |
| syncToken | No | [query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai | |
| maxResults | No | [query parameter] Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional. | |
| showHidden | No | [query parameter] Whether to show hidden entries. Optional. The default is False. | |
| showDeleted | No | [query parameter] Whether to include deleted calendar list entries in the result. Optional. The default is False. | |
| request_body | No | Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| minAccessRole | No | [query parameter] The minimum access role for the user in the returned entries. Optional. The default is no restriction. Values: `freeBusyReader` = The user can read free/busy information.; `owner` = The user can read and modify events and access control lists.; `reader` = The user can read events that are not private.; `writer` = The user can read and modify events.; `writerWithoutPrivateAccess` = The user can read and modify events that aren't private. The user can read free/busy information about private events. The user can't modify private events.. | |
| showOwnOrganizationOnly | No | [query parameter] Whether to show only entries for calendars from the organization. This parameter is only applicable to Google Workspace users. Optional. The default is False. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| type | No | |
| token | No | |
| params | No | |
| address | No | |
| payload | No | |
| expiration | No | |
| resourceId | No | |
| resourceUri | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does most of it: it discloses the POST semantics, that the call creates/triggers a change (side effect), that it is blocked under readonly profiles, and the shape and delivery of the response. Missing only channel lifecycle/renewal and permission requirements, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the verb/resource and the safety restriction, then body mechanics, then siblings — a sensible order with no filler sentences. It is a dense single paragraph with an appended sibling list, slightly reducing scannability but nothing is wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter mutation tool with no annotations, it covers operation type, side effects, safety gating, body delivery, and return behavior, and an output schema exists to cover response details. Only the webhook channel lifecycle (id/address/expiration expectations) is left implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description adds value by explaining how the body is supplied — merged field-wise via `params` or wholesale via `body_file` — and notes the Channel object's field set. The enumerated body fields largely restate the nested schema, capping it at 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Watch for changes to CalendarList resources'), plus the HTTP verb, and explicitly enumerates the sibling operations on the same resource (delete, get, insert, list, patch, update). An agent can differentiate this webhook-registration call from a plain list/get without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one implicit when-not ('refused under --readonly safety profiles'), which is genuinely useful for gating. However, it never says when to prefer watch over polling calendarList.list or how it relates to the sibling list it names, leaving the choice between the listed siblings to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendars.clearA
Clears a primary calendar. This operation deletes all events associated with the primary calendar of an account [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, insert, patch, transferOwnership, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the operation deletes all events (destructive), uses HTTP POST, triggers a change, is refused under --readonly safety profiles, returns the API's response resource as JSON, and explains request body construction. It does not mention required permissions or reversibility, but covers the essential behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and follows with behavioral and parameter details. It is reasonably concise, though the sibling list and multiple clauses make it slightly longer than necessary, but every sentence contributes some useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 5 parameters with full schema coverage, the description covers purpose, destructive nature, safety profile, return format, and body construction. It lacks explicit usage differentiation and error/permission details, but is largely complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description clarifies the interaction between 'params' and 'body_file' (typed parameters win over the map; body_file reads the whole body), which adds some value, but it does not elaborate on calendarId, query, or dry_run beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Clears') and resource ('a primary calendar'), then elaborates that it deletes all events associated with the primary calendar. The sibling list is provided but does not explicitly differentiate its purpose from the sibling 'delete' (which would remove the calendar itself), so the differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions a usage constraint ('refused under --readonly safety profiles') and lists sibling operations, but does not explain when to choose 'clear' over 'delete' (e.g., keep the calendar but remove all events) or other alternatives. The usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendars.deleteA
Deletes a secondary calendar. Use calendars.clear for clearing all events on primary calendars [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: clear, get, insert, patch, transferOwnership, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full load, and it does disclose the important traits: HTTP DELETE semantics, irreversibility absent a trash/undo flow, refusal under --readonly safety profiles, and the post-delete return value. It omits permission/ownership requirements for deleting a secondary calendar, which is the main residual gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and front-loaded, but the trailing explanation of request-body construction (typed flags vs params map, body_file) is generic boilerplate that is irrelevant for a DELETE with no body. Sibling enumeration at the end is useful but long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description correctly fills the gap by naming the return value (post-delete resource state or empty JSON) and the irreversibility risk. Missing auth/ownership prerequisites and the primary-vs-secondary constraint on calendarId keep it short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so calendarId, query, params, dry_run and body_file are all documented structurally; the description only restates the typed-params-beat-params-map and body_file precedence. That restatement is useful precedence context but adds nothing specific about calendarId semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Deletes a secondary calendar") and immediately scopes it against the closest sibling by explaining that clearing events is calendars.clear's job. An agent can pick between delete and clear without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative (calendars.clear) and the condition that selects it (primary calendars / clearing events rather than removing the calendar). It does not, however, disambiguate against calendar.calendarList.delete, which is a real sibling that also removes a calendar from a list — a likely point of confusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendars.getB
Returns metadata for a calendar [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: clear, delete, insert, patch, transferOwnership, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| summary | No | |
| location | No | |
| timeZone | No | |
| dataOwner | No | |
| description | No | |
| labelProperties | No | |
| conferenceProperties | No | |
| autoAcceptInvitations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden: it states HTTP GET and that a JSON resource is returned, which implies a safe read. But it says nothing about auth/scopes, error behavior, or the odd mechanics it does describe (body_file, params merging) which don't apply to a bodyless GET. Behavior is implied rather than fully disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the following clause about request bodies being built from typed parameters or read from body_file is boilerplate irrelevant to a GET and consumes most of the description. It wastes space and risks confusing the agent about whether this tool takes a body.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the read nature is clear. But the description spends its detail on misplaced body-handling mechanics instead of useful context for this specific read tool, leaving it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters including calendarId and the generic query/params/dry_run/body_file wrappers. The description adds no parameter-specific meaning beyond generic body-building mechanics, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence 'Returns metadata for a calendar [HTTP GET]' gives a specific verb and resource and names the sibling mutations (clear, delete, insert, patch, transferOwnership, update). However, the rest of the sentence discusses request-body construction, which is irrelevant to a GET and muddies rather than sharpens the purpose. The read intent is nonetheless unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Listing the siblings implicitly signals this is the read variant opposed to the mutating ones, but no explicit 'use this when you need metadata, use calendarList.get for the list' guidance is given. The agent must infer the use case from the name plus the sibling roster. Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendars.insertA
Creates a secondary calendar. The authenticated user for the request is made the data owner of the new calendar. Note: We recommend to authenticate as the intended data owner of the calendar. You can use domain-wide delegation of authority to allow applications to act on behalf of a specific user. Don't use a service account for authentication. If you use a service account for authentication, the service account is the data owner, which can lead to unexpected behavior. For example, if a service account is the data owner, data ownership cannot be transferred [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Calendar object accepting autoAcceptInvitations, conferenceProperties, dataOwner, description, etag, id, kind, labelProperties and 3 more fields; pass it via params or whole via body_file Siblings over the same resource: clear, delete, get, patch, transferOwnership, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Calendar object. | |
| request_body | No | Request body of type Calendar: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| summary | No | |
| location | No | |
| timeZone | No | |
| dataOwner | No | |
| description | No | |
| labelProperties | No | |
| conferenceProperties | No | |
| autoAcceptInvitations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so well: it discloses that this is a POST/create operation, that it is refused under readonly safety profiles, and that service-account authentication can make ownership untransferable. It also explains the data-owner implication, which is exactly the kind of mutation-side effect an agent needs before invoking the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the core purpose and then layers in important auth warnings and body details. It is somewhat long and includes low-value phrasing such as "and 3 more fields," but most content is relevant to correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and parameter descriptions are already complete, the description supplies the remaining critical context: ownership semantics, authentication warnings, readonly behavior, and request-body handling. An agent has enough information to invoke this mutation correctly and avoid the main authentication pitfall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter schema already documents the request fields and body_file/params behavior. The description lists many Calendar body fields and notes they can be passed via `params` or whole via `body_file`, but this largely restates what the schema already conveys rather than adding deep parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Creates a secondary calendar." It also names the sibling operations on the same resource (clear, delete, get, patch, transferOwnership, update), so an agent can distinguish this tool from adjacent calendar operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear authentication guidance: authenticate as the intended data owner and avoid service-account authentication because of ownership side effects. It does not explicitly compare tool-choice alternatives beyond listing sibling names, but the auth prerequisites and the service-account exclusion provide strong usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendars.patchA
Updates metadata for a calendar. This method supports patch semantics [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Calendar object accepting autoAcceptInvitations, conferenceProperties, dataOwner, description, etag, id, kind, labelProperties and 3 more fields; pass it via params or whole via body_file Siblings over the same resource: clear, delete, get, insert, transferOwnership, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Calendar object. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| request_body | No | Request body of type Calendar: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| summary | No | |
| location | No | |
| timeZone | No | |
| dataOwner | No | |
| description | No | |
| labelProperties | No | |
| conferenceProperties | No | |
| autoAcceptInvitations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses that this is a mutation using PATCH semantics, that it is blocked in readonly safety profiles, and that it returns the response resource as JSON. It does not cover permission requirements or behavior of unspecified fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, which is good. But the middle sentence is dense and enumerates body fields ('and 3 more fields') that the schema already lists, adding length without much value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so returns needn't be explained, yet the description still notes JSON output. Combined with mutation semantics, safety-profile blocking, and body-passing options, it is nearly complete for an agent to invoke correctly; only permission/field-overwrite behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema documents calendarId and the request body fully. The description adds the dual-passing mechanism ('pass it via params or whole via body_file') which is mildly useful, but field enumeration duplicates the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates metadata for a calendar') and clarifies PATCH semantics (partial update). It lists sibling operations but does not distinguish specifically why to use patch over update, which is the key ambiguity in the calendar family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one important exclusion ('refused under --readonly safety profiles') and names siblings including update. However, it never explains the patch-vs-update choice, which is exactly the decision an agent must make between the two closest siblings. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendars.transferOwnershipA
Transfers a secondary calendar between users within a Google Workspace organization. Requires user authentication with Manage Calendars administrator privilege, and one of the following authorization scopes: - https://www.googleapis.com/auth/calendar - https://www.googleapis.com/auth/calendar.calendars In the request, set useAdminAccess to true. The secondary calendar must be active to be transferred. Transferring disabled or deleted calendars isn't supported [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: clear, delete, get, insert, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs, call the calendarList.list method. | |
| newDataOwner | Yes | [query parameter] The email address of a user who will become the data owner of the calendar. | |
| useAdminAccess | Yes | [query parameter] When true, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the Manage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the HTTP POST mutation semantics, that the call is refused under --readonly safety profiles, the admin-auth requirement, and the response format. It omits whether the transfer is reversible or what happens to the previous owner's access, which matters for a destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and prerequisites are front-loaded well, but the tail contains templated boilerplate about 'request bodies are built from the typed parameters' and the response resource that repeats schema and is not specific to this tool. It is somewhat overlong for what it adds.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation mutation tool with no output schema, it covers auth, scopes, preconditions, HTTP verb, read-only refusal, and return format — enough for an agent to invoke it correctly. Missing reversibility and post-transfer effects keep it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds one directive beyond the schema (useAdminAccess must be set to true) and explains the body_file/params precedence, but does not clarify calendarId or newDataOwner beyond their schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (transfers) with the resource, direction, and constraint: 'Transfers a secondary calendar between users within a Google Workspace organization.' The action is unmistakably distinct from the same-resource siblings (clear, delete, get, insert, patch, update) named at the end.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly sets prerequisites — Manage Calendars admin privilege, one of two OAuth scopes, and useAdminAccess=true — plus the precondition that the calendar must be active. It does not explicitly state when to prefer it over alternatives or what to do if prerequisites fail, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.calendars.updateA
Updates metadata for a calendar [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Calendar object accepting autoAcceptInvitations, conferenceProperties, dataOwner, description, etag, id, kind, labelProperties and 3 more fields; pass it via params or whole via body_file Siblings over the same resource: clear, delete, get, insert, patch, transferOwnership.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Calendar object. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| request_body | No | Request body of type Calendar: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| summary | No | |
| location | No | |
| timeZone | No | |
| dataOwner | No | |
| description | No | |
| labelProperties | No | |
| conferenceProperties | No | |
| autoAcceptInvitations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does well: it declares PUT/full-resource update semantics, discloses the --readonly refusal behavior, and states it returns the API's response resource as JSON. Missing only finer traits like permission requirements or how unspecified fields are handled on a PUT.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and verb, then behavior, body details and siblings in a sensible order. It is dense and comma-heavy in the body-field sentence, but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and a nested request body, the description covers mutation semantics, readonly refusal, body routing and returns; the output schema absolves it of explaining return values. Only the update-vs-patch decision is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents query, params, body_file, dry_run and calendarId. The description adds only the mapping of the Calendar body fields and the params-vs-body_file choice, both of which the schema already spells out; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Updates metadata') and resource ('for a calendar') and pins the HTTP verb as PUT. It then names the six siblings over the same resource, so an agent can distinguish update from patch/insert/get/delete without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It lists siblings (clear, delete, get, insert, patch, transferOwnership) and notes refusal under --readonly profiles, which hints at mutation context. But it never states when to choose update (full PUT replace) over patch (partial update) — the most common decision an agent faces here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.channels.stopA
Stop watching resources through this channel [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Channel object accepting address, expiration, id, kind, params, payload, resourceId, resourceUri and 2 more fields; pass it via params or whole via body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object. | |
| request_body | No | Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the load and mostly does: it discloses the HTTP method, that the call is a mutation that will be refused in read-only safety profiles, and that a response resource is returned as JSON. What it omits is the effect on the underlying watch (does the channel expire immediately, is the call idempotent if the channel is already gone).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, which is correct, but the rest is a single run-on construction of em-dash clauses mixing HTTP verb trivia, safety-profile behavior, response format and body plumbing. '[HTTP POST]' and 'accepting ... and 2 more fields' are low-value filler that could be cut or restructured into short sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter mutation tool with no annotations and no output schema, the description covers the essentials: what it does, that it is a write that safety profiles can block, how the body is supplied, and what comes back. Only the post-condition of stopping a channel and error behavior for an unknown channel id are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, and the description does add the routing distinction between `params` (merged) and `body_file` (whole body) plus an enumeration of Channel fields. However, the field list merely echoes the request_body properties already present in the schema, so the added meaning is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource – 'Stop watching resources through this channel' – which is distinct from the watch-creating siblings like calendar.events.watch and calendar.acl.watch. It falls short of a 5 because it never names the counterpart operation that created the channel, and the appended 'creates or triggers a change' phrase muddies the purpose of what is fundamentally a teardown operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The one piece of guidance is operational rather than selective: 'refused under --readonly safety profiles' tells the agent when the call will be blocked. There is no statement of when to call this versus leaving a channel to expire, nor any mention of the sibling watch tools whose channels this terminates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.colors.getB
Returns the color definitions for calendars and events [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| event | No | |
| updated | No | |
| calendar | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the behavioral burden. It does disclose the HTTP method ([HTTP GET]) and that the response is JSON, which is useful, but it says nothing about auth, rate limits, or paging, and the body-construction boilerplate is largely irrelevant for a bodyless GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the second sentence is generic request-plumbing boilerplate that applies to every tool in the family and earns little place here, diluting a one-line read operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description covers method and return format. However, it omits any color-specific context and the boilerplate masks rather than clarifies behavior for this specific GET tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters. The description restates the typed-params-vs-params-map and body_file semantics rather than adding new meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource ('Returns the color definitions for calendars and events'), so an agent can immediately grasp what it produces. It does not differentiate against sibling tools, but there is no near-duplicate color tool among the siblings, so the lack of comparison is a minor gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to invoke this versus alternatives like calendar.calendarList.get or calendar.events.get to obtain colors, nor any mention of prerequisites or exclusions. Usage is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.events.deleteA
Deletes an event [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get, import, insert, instances, list, move, patch, quickAdd, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| eventId | Yes | [URL path segment] Event identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| sendUpdates | No | [query parameter] Guests who should receive notifications about the deletion of the event. Values: `all` = Notifications are sent to all guests.; `externalOnly` = Notifications are sent to non-Google Calendar guests only.; `none` = No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.. | |
| sendNotifications | No | [query parameter] Deprecated. Please use sendUpdates instead. Whether to send notifications about the deletion of the event. Note that some emails might still be sent even if you |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it states irreversibility, the --readonly refusal condition, and the shape of the response (post-delete resource state or empty). It stops short of warning that deletion triggers guest cancellation emails by default (sendUpdates) and says nothing about recurring-event/instance deletion scope, which are the highest-risk side effects of this call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The most consequential facts — deletion, irreversibility, readonly refusal — are front-loaded before the generic mechanics. Some tokens are spent on boilerplate shared by every tool in this family ("[HTTP DELETE]", request-body construction), which dilutes rather than informs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter destructive tool with no annotations and no output schema, the description covers the two things an agent most needs: what gets destroyed and what comes back. The gap is guest-notification side effects and recurring-event scope, though both are partly recoverable from the rich schema descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents eventId, calendarId, sendUpdates, sendNotifications, dry_run, query, params and body_file. The description restates the typed-flags-win-over-params precedence and body_file behavior, but that precedence is already stated verbatim in the schema — it adds no new semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ("Deletes an event") and explicitly enumerates the sibling operations on the same resource (get, import, insert, instances, list, move, patch, quickAdd, update, watch), so an agent can locate it within the calendar.events family without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage (removing a resource) and notes it is refused under --readonly profiles, which is a real usage constraint. But the sibling list is presented as an unordered inventory rather than routing guidance — nothing says "use events.update to modify instead" or when deletion is the wrong choice over, say, moving an event to another calendar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.events.getA
Returns an event based on its Google Calendar ID. To retrieve an event using its iCalendar ID, call the events.list method using the iCalUID parameter [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, import, insert, instances, list, move, patch, quickAdd, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| eventId | Yes | [URL path segment] Event identifier. | |
| timeZone | No | [query parameter] Time zone used in the response. Optional. The default is the time zone of the calendar. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| maxAttendees | No | [query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional | |
| alwaysIncludeEmail | No | [query parameter] Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| end | No | |
| etag | No | |
| kind | No | |
| start | No | |
| gadget | No | |
| locked | No | |
| source | No | |
| status | No | |
| colorId | No | |
| created | No | |
| creator | No | |
| iCalUID | No | |
| summary | No | |
| updated | No | |
| htmlLink | No | |
| location | No | |
| sequence | No | |
| attendees | No | |
| eventType | No | |
| organizer | No | |
| reminders | No | |
| recurrence | No | |
| visibility | No | |
| attachments | No | |
| description | No | |
| hangoutLink | No | |
| privateCopy | No | |
| eventLabelId | No | |
| transparency | No | |
| conferenceData | No | |
| guestsCanModify | No | |
| anyoneCanAddSelf | No | |
| attendeesOmitted | No | |
| recurringEventId | No | |
| originalStartTime | No | |
| birthdayProperties | No | |
| endTimeUnspecified | No | |
| extendedProperties | No | |
| focusTimeProperties | No | |
| guestsCanInviteOthers | No | |
| outOfOfficeProperties | No | |
| guestsCanSeeOtherGuests | No | |
| workingLocationProperties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description adds some behavioral context: HTTP GET, JSON response, and generic body-building behavior. However, it does not state authorization requirements, error behavior, or explicitly confirm that this is a read-only, non-mutating operation beyond the GET indication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is well front-loaded, and the iCalendar alternative is useful. However, the generic request-body sentence is largely irrelevant for a GET event retrieval tool, and the sibling list is a long enumeration rather than targeted guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return-value details are not required. The description covers the core retrieval behavior and the main ID-based alternative, though it omits permission/error context that could matter for calendar access.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds the Google Calendar ID versus iCalendar ID distinction, but does not add meaningful detail for the other parameters such as timeZone, maxAttendees, or body_file.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns a Google Calendar event by ID. It also distinguishes this from retrieving by iCalendar ID by pointing to events.list with iCalUID, so an agent can differentiate the primary sibling case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage condition and names the alternative: use events.list with iCalUID for iCalendar IDs. It does not fully map every sibling operation to its use case, but the key retrieval distinction is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.events.importA
Imports an event. This operation is used to add a private copy of an existing event to a calendar. Only events with an eventType of default may be imported. Deprecated behavior: If a non-default event is imported, its type will be changed to default and any event-type-specific properties it may have will be dropped [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Event object accepting anyoneCanAddSelf, attachments, attendees, attendeesOmitted, birthdayProperties, colorId, conferenceData, created and 36 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, insert, instances, list, move, patch, quickAdd, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Event object. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| request_body | No | Request body of type Event: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| eventLabelVersion | No | [query parameter] Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color manage | |
| supportsAttachments | No | [query parameter] Whether API client performing operation supports event attachments. Optional. The default is False. | |
| conferenceDataVersion | No | [query parameter] Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Ver |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| end | No | |
| etag | No | |
| kind | No | |
| start | No | |
| gadget | No | |
| locked | No | |
| source | No | |
| status | No | |
| colorId | No | |
| created | No | |
| creator | No | |
| iCalUID | No | |
| summary | No | |
| updated | No | |
| htmlLink | No | |
| location | No | |
| sequence | No | |
| attendees | No | |
| eventType | No | |
| organizer | No | |
| reminders | No | |
| recurrence | No | |
| visibility | No | |
| attachments | No | |
| description | No | |
| hangoutLink | No | |
| privateCopy | No | |
| eventLabelId | No | |
| transparency | No | |
| conferenceData | No | |
| guestsCanModify | No | |
| anyoneCanAddSelf | No | |
| attendeesOmitted | No | |
| recurringEventId | No | |
| originalStartTime | No | |
| birthdayProperties | No | |
| endTimeUnspecified | No | |
| extendedProperties | No | |
| focusTimeProperties | No | |
| guestsCanInviteOthers | No | |
| outOfOfficeProperties | No | |
| guestsCanSeeOtherGuests | No | |
| workingLocationProperties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it declares the write nature ('HTTP POST — creates or triggers a change'), the readonly-profile refusal, and the destructive side effect that a non-default event's type is rewritten and its type-specific properties dropped. It also states the response is the API resource as JSON. Missing only auth/permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The import semantics and the deprecation warning are correctly front-loaded, but the 'accepting anyoneCanAddSelf, attachments, … and 36 more fields' enumeration and the flat sibling name dump add bulk without decision value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the description covers the mutation semantics, the input-type constraint, the deprecation consequence, and how to supply the body. Only the permissions/scope needed for the target calendar is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds the body-routing choice (`params` merged vs whole `body_file`) and notes the Event object's breadth, but both facts are already present in the schema's own descriptions, so marginal added value is small.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Imports an event') plus the distinguishing scope: it adds a private copy of an existing event to a calendar. That meaningfully separates it from calendar.events.insert, though the sibling insert is only listed by name, not contrasted explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the private-copy semantics and the restriction to eventType 'default', and the safety-profile refusal note tells the agent it will not run read-only. However, the ten sibling tools are dumped as a bare list with no guidance on when to import versus insert, move, or quickAdd.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.events.insertA
Creates an event [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Event object accepting anyoneCanAddSelf, attachments, attendees, attendeesOmitted, birthdayProperties, colorId, conferenceData, created and 36 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, import, instances, list, move, patch, quickAdd, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Event object. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| sendUpdates | No | [query parameter] Whether to send notifications about the creation of the new event. Note that some emails might still be sent. The default is false. Values: `all` = Notifications are sent to all guests.; `externalOnly` = Notifications are sent to non-Google Calendar guests only.; `none` = No notifications are sent. Warning: Using the value none can have significant adverse effects, including events not syncing to external calendars or events being lost altogether for some users. For calendar migration tasks, consider using the events.import method instead.. | |
| maxAttendees | No | [query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional | |
| request_body | No | Request body of type Event: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| eventLabelVersion | No | [query parameter] Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color manage | |
| sendNotifications | No | [query parameter] Deprecated. Please use sendUpdates instead. Whether to send notifications about the creation of the new event. Note that some emails might still be sent even if | |
| supportsAttachments | No | [query parameter] Whether API client performing operation supports event attachments. Optional. The default is False. | |
| conferenceDataVersion | No | [query parameter] Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Ver |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| end | No | |
| etag | No | |
| kind | No | |
| start | No | |
| gadget | No | |
| locked | No | |
| source | No | |
| status | No | |
| colorId | No | |
| created | No | |
| creator | No | |
| iCalUID | No | |
| summary | No | |
| updated | No | |
| htmlLink | No | |
| location | No | |
| sequence | No | |
| attendees | No | |
| eventType | No | |
| organizer | No | |
| reminders | No | |
| recurrence | No | |
| visibility | No | |
| attachments | No | |
| description | No | |
| hangoutLink | No | |
| privateCopy | No | |
| eventLabelId | No | |
| transparency | No | |
| conferenceData | No | |
| guestsCanModify | No | |
| anyoneCanAddSelf | No | |
| attendeesOmitted | No | |
| recurringEventId | No | |
| originalStartTime | No | |
| birthdayProperties | No | |
| endTimeUnspecified | No | |
| extendedProperties | No | |
| focusTimeProperties | No | |
| guestsCanInviteOthers | No | |
| outOfOfficeProperties | No | |
| guestsCanSeeOtherGuests | No | |
| workingLocationProperties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does disclose the key traits: this is a mutation ('creates or triggers a change'), it is 'refused under --readonly safety profiles', and it returns the API response resource as JSON. It stops short of noting side effects such as guest notifications being sent (that lives only in the sendUpdates schema description) or required auth scopes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead ('Creates an event — creates or triggers a change; refused under --readonly safety profiles') is well front-loaded, but the middle sentence enumerates nine verbose field names ('anyoneCanAddSelf, attachments, attendeesOmitted, birthdayProperties...and 36 more') that add no selection or invocation value and bloat an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 12 params, a deep nested request body, an output schema, and no annotations, the description covers the essentials: mutation semantics, safety-profile refusal, body-passing mechanics, and sibling context. Minor gaps (guest notification side effects, auth requirements) remain, but the output schema and full param coverage carry the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter including calendarId, sendUpdates, and the request body. The description adds only the mechanics of passing the body via `params` or `body_file`, which is largely restated in the request_body schema description — baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates an event') and explicitly says it is the create operation among siblings over the same resource. An agent can distinguish it from events.patch/update/import without opening a schema, aided by the explicit sibling enumeration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists the sibling operations (delete, get, import, instances, list, move, patch, quickAdd, update, watch) but gives no routing rule — nothing says when to choose insert over import (e.g. migrations) or quickAdd (natural-language events). Usage is implied by the sibling list rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.events.instancesB
Returns instances of the specified recurring event [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, import, insert, list, move, patch, quickAdd, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| eventId | Yes | [URL path segment] Recurring event identifier. | |
| timeMax | No | [query parameter] Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandator | |
| timeMin | No | [query parameter] Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory ti | |
| timeZone | No | [query parameter] Time zone used in the response. Optional. The default is the time zone of the calendar. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Token specifying which result page to return. Optional. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| maxResults | No | [query parameter] Maximum number of events returned on one result page. By default the value is 250 events. The page size can never be larger than 2500 events. Optional. | |
| showDeleted | No | [query parameter] Whether to include deleted events (with status equals "cancelled") in the result. Cancelled instances of recurring events will still be included if singleEvents | |
| maxAttendees | No | [query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional | |
| originalStart | No | [query parameter] The original start time of the instance in the result. Optional. | |
| alwaysIncludeEmail | No | [query parameter] Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| kind | No | |
| items | No | |
| summary | No | |
| updated | No | |
| timeZone | No | |
| accessRole | No | |
| description | No | |
| nextPageToken | No | |
| nextSyncToken | No | |
| defaultReminders | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose that this is an HTTP GET returning JSON and explains request-body construction precedence, but it omits key behavior: what happens when eventId refers to a non-recurring event, how pagination (pageToken/maxResults) behaves across pages, and any auth/permission requirements for reading a calendar's events.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause and the transport mechanics follow compactly. The trailing sibling enumeration is a low-value name dump that lengthens the definition without helping selection, keeping it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and 15 parameters are fully covered by the schema. Given a read operation of moderate complexity, the description supplies purpose, method, and body-construction mechanics — enough for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline of 3 applies and the schema already documents path segments, query params, and body_file/dry_run. The description's one added rule — 'typed flags win over the `params` map' — restates what the params schema already says, adding no new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns instances of the specified recurring event', which is genuinely distinct from calendar.events.get (one event) and calendar.events.list (all events). The sibling line is a bare name dump with no differentiation guidance, so the tool's own identity is clear but the sibling contrast is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied — the agent must infer that this is the right tool when it has a recurring event ID and wants its individual occurrences. The sibling list nominally provides alternatives (get, list, instances) but never says which condition selects which, and no prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.events.listC
Returns events on the specified calendar [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, import, insert, instances, move, patch, quickAdd, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | [query parameter] Free text search terms to find events that match these terms in the following fields: - summary - description - location - attendee's displayName - attendee's e | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| iCalUID | No | [query parameter] Specifies an event ID in the iCalendar format to be provided in the response. Optional. Use this if you want to search for an event by its iCalendar ID. | |
| orderBy | No | [query parameter] The order of the events returned in the result. Optional. The default is an unspecified, stable order. Values: `startTime` = Order by the start date/time (ascending). This is only available when querying single events (i.e. the parameter singleEvents is True); `updated` = Order by last modification time (ascending).. | |
| timeMax | No | [query parameter] Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandator | |
| timeMin | No | [query parameter] Lower bound (exclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory ti | |
| timeZone | No | [query parameter] Time zone used in the response. Optional. The default is the time zone of the calendar. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Token specifying which result page to return. Optional. | |
| syncToken | No | [query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| eventTypes | No | ||
| maxResults | No | [query parameter] Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are | 250 |
| updatedMin | No | [query parameter] Lower bound for an event's last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included | |
| showDeleted | No | [query parameter] Whether to include deleted events (with status equals "cancelled") in the result. Cancelled instances of recurring events (but not the underlying recurring even | |
| maxAttendees | No | [query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional | |
| singleEvents | No | [query parameter] Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring even | |
| alwaysIncludeEmail | No | [query parameter] Deprecated and ignored. | |
| showHiddenInvitations | No | [query parameter] Whether to include hidden invitations in the result. Optional. The default is False. | |
| sharedExtendedProperty | No | ||
| privateExtendedProperty | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| kind | No | |
| items | No | |
| summary | No | |
| updated | No | |
| timeZone | No | |
| accessRole | No | |
| description | No | |
| nextPageToken | No | |
| nextSyncToken | No | |
| defaultReminders | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral burden, yet it only says it is an HTTP GET returning JSON. It says nothing about pagination (pageToken/nextPageToken), incremental sync semantics via syncToken, that recurring events are collapsed unless singleEvents is set, or any quoting/scope/auth behavior. The boilerplate about request bodies built from typed parameters or body_file is largely irrelevant for a GET and adds noise rather than behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded correctly, but the middle sentences about request bodies, body_file, and typed-vs-params precedence are template boilerplate that doesn't apply usefully to a GET list call. The trailing sibling enumeration is a long name dump rather than actionable routing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a 23-parameter list tool with complex filtering, pagination, and sync semantics, and an output schema so return-shape explanation is not needed — but the description gives no guidance on the non-obvious interactions (timeMin/timeMax exclusivity, singleEvents with orderBy=startTime, syncToken requiring the last page). For a tool of this complexity, an agent would need to reverse-engineer behavior from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 87%, so the schema already documents nearly all 23 parameters in detail. The description adds no parameter meaning of its own beyond the generic note that typed flags win over the params map, which matches the schema's own wording — baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb and resource ('Returns events on the specified calendar') and the [HTTP GET] tag confirms the operation type, so an agent can tell this is a read of calendar events. It stops short of distinguishing it from the very similar calendar.events.get and calendar.events.instances beyond listing their names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description ends with a bare list of sibling names (delete, get, import, insert, instances, move, patch, quickAdd, update, watch) but never states when to choose this tool over them — e.g. that get returns a single event while list enumerates a calendar. There are no usage conditions, prerequisites, or exclusions anywhere in the text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.events.moveA
Moves an event to another calendar, i.e. changes an event's organizer. Note that only default events can be moved; birthday, focusTime, fromGmail, outOfOffice and workingLocation events cannot be moved [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, import, insert, instances, list, patch, quickAdd, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| eventId | Yes | [URL path segment] Event identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| calendarId | Yes | [URL path segment] Calendar identifier of the source calendar where the event currently is on. | |
| destination | Yes | [query parameter] Calendar identifier of the target calendar where the event is to be moved to. | |
| sendUpdates | No | [query parameter] Guests who should receive notifications about the change of the event's organizer. Values: `all` = Notifications are sent to all guests.; `externalOnly` = Notifications are sent to non-Google Calendar guests only.; `none` = No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.. | |
| sendNotifications | No | [query parameter] Deprecated. Please use sendUpdates instead. Whether to send notifications about the change of the event's organizer. Note that some emails might still be sent e |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| end | No | |
| etag | No | |
| kind | No | |
| start | No | |
| gadget | No | |
| locked | No | |
| source | No | |
| status | No | |
| colorId | No | |
| created | No | |
| creator | No | |
| iCalUID | No | |
| summary | No | |
| updated | No | |
| htmlLink | No | |
| location | No | |
| sequence | No | |
| attendees | No | |
| eventType | No | |
| organizer | No | |
| reminders | No | |
| recurrence | No | |
| visibility | No | |
| attachments | No | |
| description | No | |
| hangoutLink | No | |
| privateCopy | No | |
| eventLabelId | No | |
| transparency | No | |
| conferenceData | No | |
| guestsCanModify | No | |
| anyoneCanAddSelf | No | |
| attendeesOmitted | No | |
| recurringEventId | No | |
| originalStartTime | No | |
| birthdayProperties | No | |
| endTimeUnspecified | No | |
| extendedProperties | No | |
| focusTimeProperties | No | |
| guestsCanInviteOthers | No | |
| outOfOfficeProperties | No | |
| guestsCanSeeOtherGuests | No | |
| workingLocationProperties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden and does well: it discloses that the call is an HTTP POST that creates or triggers a change, is refused under --readonly safety profiles, and returns the API's response resource as JSON. It still omits details like permission requirements, notification side effects, or whether the move is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads the core purpose and the key restriction, then covers mutation and return behavior efficiently. The trailing sibling list is long and not directly actionable, but the overall structure remains readable and not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no annotations, and an existing output schema, the description covers the main behavioral traits needed to invoke it correctly: mutation nature, safety-profile refusal, event-type restrictions, and return format. It could be more complete with auth requirements or notification side effects, but the core invocation context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters in detail. The description adds only a general note that typed parameters win over the `params` map and that `body_file` can supply the whole body, which is useful but largely duplicative of the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Moves an event to another calendar, i.e. changes an event's organizer'), making the core purpose unmistakable. It lists sibling tools but does not differentiate when move should be used instead of update, patch, or import.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly excludes non-default event types (birthday, focusTime, fromGmail, outOfOffice, workingLocation) from being moved, which is a clear when-not rule. It does not explicitly name alternatives like update or import for other scenarios, so it falls short of a full usage-guidance 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.events.patchB
Updates an event. This method supports patch semantics [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Event object accepting anyoneCanAddSelf, attachments, attendees, attendeesOmitted, birthdayProperties, colorId, conferenceData, created and 36 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, import, insert, instances, list, move, quickAdd, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| eventId | Yes | [URL path segment] Event identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Event object. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| sendUpdates | No | [query parameter] Guests who should receive notifications about the event update (for example, title changes, etc.). Values: `all` = Notifications are sent to all guests.; `externalOnly` = Notifications are sent to non-Google Calendar guests only.; `none` = No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.. | |
| maxAttendees | No | [query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional | |
| request_body | No | Request body of type Event: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| eventLabelVersion | No | [query parameter] Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color manage | |
| sendNotifications | No | [query parameter] Deprecated. Please use sendUpdates instead. Whether to send notifications about the event update (for example, description changes, etc.). Note that some emails | |
| alwaysIncludeEmail | No | [query parameter] Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available | |
| supportsAttachments | No | [query parameter] Whether API client performing operation supports event attachments. Optional. The default is False. | |
| conferenceDataVersion | No | [query parameter] Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Ver |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| end | No | |
| etag | No | |
| kind | No | |
| start | No | |
| gadget | No | |
| locked | No | |
| source | No | |
| status | No | |
| colorId | No | |
| created | No | |
| creator | No | |
| iCalUID | No | |
| summary | No | |
| updated | No | |
| htmlLink | No | |
| location | No | |
| sequence | No | |
| attendees | No | |
| eventType | No | |
| organizer | No | |
| reminders | No | |
| recurrence | No | |
| visibility | No | |
| attachments | No | |
| description | No | |
| hangoutLink | No | |
| privateCopy | No | |
| eventLabelId | No | |
| transparency | No | |
| conferenceData | No | |
| guestsCanModify | No | |
| anyoneCanAddSelf | No | |
| attendeesOmitted | No | |
| recurringEventId | No | |
| originalStartTime | No | |
| birthdayProperties | No | |
| endTimeUnspecified | No | |
| extendedProperties | No | |
| focusTimeProperties | No | |
| guestsCanInviteOthers | No | |
| outOfOfficeProperties | No | |
| guestsCanSeeOtherGuests | No | |
| workingLocationProperties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two useful traits: patch semantics (partial update) and refusal under readonly safety profiles. However, it omits permission requirements, guest-notification side effects (the schema exposes sendUpdates but the description never mentions that updates may email guests), and the irreversibility of the mutation. The behavioral profile is therefore only partially covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads 'Updates an event', which is good, but then packs several distinct ideas into one dense paragraph. The long partial field enumeration ('anyoneCanAddSelf, attachments, attendees, attendeesOmitted, birthdayProperties, colorId, conferenceData, created and 36 more fields') is wasted text when the full schema is already available, and the unqualified sibling list adds length without routing value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and the description correctly notes the response is the API's JSON resource. For a 14-parameter mutation tool with no annotations, however, it should say more about permissions, notification side effects, and what happens to fields omitted from a patch. It is adequate but leaves meaningful gaps for a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds little beyond the schema: it restates that the body is a JSON Event object with fields such as anyoneCanAddSelf, attachments, colorId and '36 more', and that it can be passed via `params` or `body_file` — both already documented in the request_body and body_file schema entries. It does not clarify the semantics of query parameters like sendUpdates or conferenceDataVersion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Updates an event' plus 'supports patch semantics [HTTP PATCH]'. This distinguishes it from a full update only implicitly (patch vs update semantics), and the sibling list is presented without saying why to pick patch over calendar.events.update. Clear enough to select, but not a sharp sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one usable constraint — 'refused under --readonly safety profiles' — but no explicit when-to-use guidance versus the 'update' sibling or when a patch is preferable to a full replace. The sibling enumeration ('delete, get, import, insert, instances, list, move, quickAdd, update, watch') names alternatives without saying which condition selects them, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.events.quickAddA
Creates an event based on a simple text string [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, import, insert, instances, list, move, patch, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | [query parameter] The text describing the event to be created. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| sendUpdates | No | [query parameter] Guests who should receive notifications about the creation of the new event. Values: `all` = Notifications are sent to all guests.; `externalOnly` = Notifications are sent to non-Google Calendar guests only.; `none` = No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.. | |
| sendNotifications | No | [query parameter] Deprecated. Please use sendUpdates instead. Whether to send notifications about the creation of the event. Note that some emails might still be sent even if you |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| end | No | |
| etag | No | |
| kind | No | |
| start | No | |
| gadget | No | |
| locked | No | |
| source | No | |
| status | No | |
| colorId | No | |
| created | No | |
| creator | No | |
| iCalUID | No | |
| summary | No | |
| updated | No | |
| htmlLink | No | |
| location | No | |
| sequence | No | |
| attendees | No | |
| eventType | No | |
| organizer | No | |
| reminders | No | |
| recurrence | No | |
| visibility | No | |
| attachments | No | |
| description | No | |
| hangoutLink | No | |
| privateCopy | No | |
| eventLabelId | No | |
| transparency | No | |
| conferenceData | No | |
| guestsCanModify | No | |
| anyoneCanAddSelf | No | |
| attendeesOmitted | No | |
| recurringEventId | No | |
| originalStartTime | No | |
| birthdayProperties | No | |
| endTimeUnspecified | No | |
| extendedProperties | No | |
| focusTimeProperties | No | |
| guestsCanInviteOthers | No | |
| outOfOfficeProperties | No | |
| guestsCanSeeOtherGuests | No | |
| workingLocationProperties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description still discloses that this is a mutating operation ('creates or triggers a change'), that it is refused under --readonly safety profiles, and that the response is the API resource as JSON. It also explains body-construction precedence (typed params beat the params map, or body_file replaces it), which is real behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, and the remaining sentences cover safety, return shape, body construction, and siblings without padding. The sibling list is long but each name is a single word, so it stays compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the mutation/readonly semantics are covered. What is missing is the thing an agent most needs for this endpoint: what natural-language text quickAdd can parse and the fallback to insert when parsing is unreliable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents calendarId, text, sendUpdates, and the escape hatches. The description adds only the generic precedence rule between typed params, params, and body_file, with no explanation of what the free-text `text` parameter should look like or how sendUpdates interacts with the deprecated sendNotifications.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Creates an event based on a simple text string'. However, it offers no differentiation from the most confusable sibling, calendar.events.insert, which also creates an event; it merely appends the name to a list rather than explaining that quickAdd parses natural-language text while insert takes a structured event body.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance: nothing says to prefer quickAdd for free-form text like 'Lunch tomorrow at noon' and insert for structured fields, nor any prerequisites. The trailing sibling list names alternatives but gives no selection criteria, so an agent must infer the choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.events.updateA
Updates an event [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Event object accepting anyoneCanAddSelf, attachments, attendees, attendeesOmitted, birthdayProperties, colorId, conferenceData, created and 36 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, import, insert, instances, list, move, patch, quickAdd, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| eventId | Yes | [URL path segment] Event identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Event object. | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| sendUpdates | No | [query parameter] Guests who should receive notifications about the event update (for example, title changes, etc.). Values: `all` = Notifications are sent to all guests.; `externalOnly` = Notifications are sent to non-Google Calendar guests only.; `none` = No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.. | |
| maxAttendees | No | [query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional | |
| request_body | No | Request body of type Event: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| eventLabelVersion | No | [query parameter] Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color manage | |
| sendNotifications | No | [query parameter] Deprecated. Please use sendUpdates instead. Whether to send notifications about the event update (for example, description changes, etc.). Note that some emails | |
| alwaysIncludeEmail | No | [query parameter] Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available | |
| supportsAttachments | No | [query parameter] Whether API client performing operation supports event attachments. Optional. The default is False. | |
| conferenceDataVersion | No | [query parameter] Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Ver |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| end | No | |
| etag | No | |
| kind | No | |
| start | No | |
| gadget | No | |
| locked | No | |
| source | No | |
| status | No | |
| colorId | No | |
| created | No | |
| creator | No | |
| iCalUID | No | |
| summary | No | |
| updated | No | |
| htmlLink | No | |
| location | No | |
| sequence | No | |
| attendees | No | |
| eventType | No | |
| organizer | No | |
| reminders | No | |
| recurrence | No | |
| visibility | No | |
| attachments | No | |
| description | No | |
| hangoutLink | No | |
| privateCopy | No | |
| eventLabelId | No | |
| transparency | No | |
| conferenceData | No | |
| guestsCanModify | No | |
| anyoneCanAddSelf | No | |
| attendeesOmitted | No | |
| recurringEventId | No | |
| originalStartTime | No | |
| birthdayProperties | No | |
| endTimeUnspecified | No | |
| extendedProperties | No | |
| focusTimeProperties | No | |
| guestsCanInviteOthers | No | |
| outOfOfficeProperties | No | |
| guestsCanSeeOtherGuests | No | |
| workingLocationProperties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose mutation behavior, the read-only-profile refusal, the returned resource as JSON, and the two body-delivery paths. It omits guest-notification side effects and permission requirements, which matter for an event update.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The semantic core (verb, scope, PUT, refusal, return) is front-loaded in the first sentences. The long field enumeration and ten-name sibling list are borderline filler, but structurally the description degrades gracefully from essential to optional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter mutation tool with a rich schema and an output schema, the description covers the body-construction decision, the safety profile, and the return value. Missing pieces are the full-vs-partial replacement rule and notification side effects, which are the main risks of miscalling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already spells out params vs body_file and every query parameter, so the description adds little beyond restating the body mechanism. The 'and 36 more fields' enumeration is a partial restatement of the nested Event schema rather than new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates an event [HTTP PUT]') and the PUT label conveys full-replacement semantics that separates it from calendar.events.patch. It stops short of naming the patch alternative as the choice for partial edits, so the agent must infer that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Refused under --readonly safety profiles' is a real precondition and the sibling list signals the available alternatives. However, it only enumerates siblings rather than telling the agent when to prefer patch, move, or instances over this full-replacement update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.events.watchA
Watch for changes to Events resources [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Channel object accepting address, expiration, id, kind, params, payload, resourceId, resourceUri and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, import, insert, instances, list, move, patch, quickAdd, update.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | [query parameter] Free text search terms to find events that match these terms in the following fields: - summary - description - location - attendee's displayName - attendee's e | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| iCalUID | No | [query parameter] Specifies an event ID in the iCalendar format to be provided in the response. Optional. Use this if you want to search for an event by its iCalendar ID. | |
| orderBy | No | [query parameter] The order of the events returned in the result. Optional. The default is an unspecified, stable order. Values: `startTime` = Order by the start date/time (ascending). This is only available when querying single events (i.e. the parameter singleEvents is True); `updated` = Order by last modification time (ascending).. | |
| timeMax | No | [query parameter] Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandator | |
| timeMin | No | [query parameter] Lower bound (exclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory ti | |
| timeZone | No | [query parameter] Time zone used in the response. Optional. The default is the time zone of the calendar. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object. | |
| pageToken | No | [query parameter] Token specifying which result page to return. Optional. | |
| syncToken | No | [query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai | |
| calendarId | Yes | [URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use | |
| eventTypes | No | ||
| maxResults | No | [query parameter] Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are | 250 |
| updatedMin | No | [query parameter] Lower bound for an event's last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included | |
| showDeleted | No | [query parameter] Whether to include deleted events (with status equals "cancelled") in the result. Cancelled instances of recurring events (but not the underlying recurring even | |
| maxAttendees | No | [query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional | |
| request_body | No | Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| singleEvents | No | [query parameter] Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring even | |
| alwaysIncludeEmail | No | [query parameter] Deprecated and ignored. | |
| showHiddenInvitations | No | [query parameter] Whether to include hidden invitations in the result. Optional. The default is False. | |
| sharedExtendedProperty | No | ||
| privateExtendedProperty | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| type | No | |
| token | No | |
| params | No | |
| address | No | |
| payload | No | |
| expiration | No | |
| resourceId | No | |
| resourceUri | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the behavioral load and does well: it discloses that this is a mutating POST, that it is refused under readonly profiles, that it returns the API response as JSON, and that the body is a Channel object passed via params or body_file. It omits details such as authentication requirements, channel expiration, or rate limits, but the core behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and safety behavior, then moves into body and sibling context. It is dense but appropriately sized for a 24-parameter tool with a nested request body, though the sibling list and parenthetical details could be structured more cleanly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a watch operation with 24 parameters, a nested Channel body, and no annotations, the description covers the essential action, safety refusal, return format, and body-passing mechanisms. The schema and output schema carry the remaining detail, so the description is largely complete for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 88%, so the parameters are already well documented in the schema. The description adds a little by explaining that the request body is a Channel object and can be supplied through `params` or `body_file`, but it does not add meaning beyond the schema for the many query parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Watch for changes to Events resources' and clarifies that it is an HTTP POST that creates or triggers a change. It names sibling event tools but does not explain the conditions that distinguish watch from list, get, or instances, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Watch for changes' and the safety-profile note that it is 'refused under --readonly safety profiles.' However, there is no explicit guidance on when to choose this tool over calendar.events.list or other sibling event tools, nor are prerequisites or exclusions described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.freebusy.queryA
Returns free/busy information for a set of calendars [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON FreeBusyRequest object accepting calendarExpansionMax, groupExpansionMax, items, timeMax, timeMin, timeZone; pass it via params or whole via body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON FreeBusyRequest object. | |
| request_body | No | Request body of type FreeBusyRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| groups | No | |
| timeMax | No | |
| timeMin | No | |
| calendars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and discloses important traits: the operation uses HTTP POST, is treated as creating or triggering a change, and is refused under --readonly profiles. It also says the response is returned as JSON, though it does not cover auth requirements, rate limits, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, followed by the important POST/read-only behavior and request-body details. The description is dense but not rambling; minor schema-duplicated body-field detail prevents a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not explain return values, and it adequately explains the request body and safety-profile behavior. It is complete enough to invoke correctly, though auth and failure modes are not discussed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the five parameters and nested request body fields. The description repeats the accepted FreeBusyRequest fields and the params/body_file passing mechanism, but adds little semantic meaning beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns free/busy information for a set of calendars. The tool name and the stated purpose make it distinguishable from event-listing siblings without needing to inspect the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case (checking availability for calendars) and notes that it is refused under --readonly safety profiles. However, it does not explicitly contrast this tool with alternatives such as calendar.events.list or explain when an agent should choose one over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.settings.getA
Returns a single user setting [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: list, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| setting | Yes | [URL path segment] The id of the user setting. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| value | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden; it does disclose the HTTP GET semantics, which tells the agent this is a non-mutating read. However, it says nothing about auth requirements, error behavior for an unknown setting id, or rate limits, and the 'request bodies are built from the typed parameters … or read whole from body_file' boilerplate is misplaced for a GET that has no body, which risks confusing the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause, and the sibling list is tacked on efficiently at the end. The middle sentence about request-body construction is generic filler that does not apply to a GET and dilutes an otherwise compact definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the 100%-covered input schema documents the parameters. The core gap is that nothing explains what a user setting is or what determines a valid setting id, but for a simple singular-read tool the definition is broadly sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (setting, query, params, dry_run, body_file) is already documented in the schema, giving a baseline of 3. The description adds no meaning beyond that — it never explains what a 'setting' identifier looks like or which keys are commonly read.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns a single user setting,' and tags it as an HTTP GET. It then names the sibling operations over the same resource (list, watch), so an agent can distinguish the singular-fetch case from the enumeration case without opening a schema. The second sentence drifts into generic request-plumbing boilerplate that adds nothing to purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming the siblings 'list, watch' implicitly signals the alternative enumeration tools, so an agent can infer 'use list when you want all settings.' But it never states the selection rule explicitly (when to choose get vs list) nor any prerequisites such as which setting ids exist or are valid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.settings.listA
Returns all user settings for the authenticated user [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Token specifying which result page to return. Optional. | |
| syncToken | No | [query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai | |
| maxResults | No | [query parameter] Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| kind | No | |
| items | No | |
| nextPageToken | No | |
| nextSyncToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses HTTP GET, JSON response, and that settings belong to the authenticated user, but it omits read-only safety, rate limits, and pagination/sync behavior. Some useful context is present, but key traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and clear, but the second is a run-on with generic request-body boilerplate that does not earn its place for a GET list. There is also a missing punctuation break before 'Siblings'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, for a paginated/sync list tool with no annotations, the description should clarify pagination and sync semantics as well as read-only safety; those gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds that typed parameters override the `params` map and that `body_file` can supply a body, but this is largely irrelevant for a GET list and does not clarify `pageToken`, `syncToken`, or `maxResults` beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns all') and resource ('user settings for the authenticated user'), and it names sibling operations get and watch. However, it does not explain how list differs from get beyond naming them, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly lists sibling operations over the same resource ('get, watch'), giving the agent alternatives to consider. But it provides no explicit when-to-use or when-not conditions, such as 'use get for a single setting' or 'use watch to receive notifications'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar.settings.watchA
Watch for changes to Settings resources [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Channel object accepting address, expiration, id, kind, params, payload, resourceId, resourceUri and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object. | |
| pageToken | No | [query parameter] Token specifying which result page to return. Optional. | |
| syncToken | No | [query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai | |
| maxResults | No | [query parameter] Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional. | |
| request_body | No | Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| type | No | |
| token | No | |
| params | No | |
| address | No | |
| payload | No | |
| expiration | No | |
| resourceId | No | |
| resourceUri | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does most of it: discloses that this is a mutating POST that creates/triggers a change, that it's blocked in read-only mode, and that it returns the API response resource as JSON. It stops short of explaining channel expiration/renewal lifecycle or how to stop the channel, which matters for a watch operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the verb, resource, method, and the read-only caveat in the first sentence, then the body-passing mechanics. Slightly cluttered by the truncated field list ('and 2 more fields'), but there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail isn't required, yet the description still notes JSON response materialization. Combined with the body-shape explanation and the safety-profile caveat, an agent has enough to invoke it correctly, though channel lifecycle behavior is not covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description enumerates the Channel body fields (address, expiration, id, kind, params, payload, resourceId, resourceUri) but leaves '2 more fields' unspecified, and the params-vs-body_file guidance largely restates what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Watch for changes to Settings resources') and adds the HTTP method (POST) plus a critical behavioral note about read-only profiles. It also names the sibling operations over the same resource ('get, list'), so the agent can distinguish watch from those without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear when-not condition ('refused under --readonly safety profiles') and points to the sibling get/list operations for non-watch access. It does not, however, compare with the other watch-style tools in the fleet (calendar.events.watch, calendar.acl.watch) for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.customEmojis.createA
Creates a custom emoji. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see Learn about custom emojis in Google Chat and Manage custom emoji permissions. Requires user authentication with the authorization scope: - https:// [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CustomEmoji object accepting emojiName, name, payload, temporaryImageUri, uid; pass it via paramsor whole viabody_file` Siblings over the same resource: delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CustomEmoji object. | |
| request_body | No | Request body of type CustomEmoji: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| uid | No | |
| name | No | |
| payload | No | |
| emojiName | No | |
| temporaryImageUri | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and mostly does: it discloses this is a write ('HTTP POST — creates or triggers a change'), that it is refused under --readonly profiles, that it returns the API response resource as JSON, and that dry_run returns the request without sending. It omits quota/rate-limit behavior and error semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the text is padded with documentation links and a framework-generated sibling list, and the auth-scope sentence is visibly broken — the scope URL is truncated mid-string ('`https:// [HTTP POST]'), leaving a garbled clause in the middle of the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter nested-body write tool with an output schema, the definition covers prerequisites, auth, body routing, and return shape well enough to call it correctly. The missing pieces are failure modes and the truncated scope identifier.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes slightly beyond by explaining the two body routes — fields merged via `params` or a whole CustomEmoji object via `body_file` — and names the body fields (emojiName, name, payload, temporaryImageUri, uid). The nesting of payload's fileContent still lives only in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence is a specific verb+resource: 'Creates a custom emoji.' The trailing 'Siblings over the same resource: delete, get, list' lets an agent place it against the other customEmojis tools, though it is a bare enumeration without differentiation of when each is used.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states real preconditions — Google Workspace account required, org admin must enable custom emojis, user auth with a specific scope — but never says when to choose create over delete/get/list, nor what to do on the (likely) permission failure. Usage is implied by the prerequisites rather than instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.customEmojis.deleteA
Deletes a custom emoji. By default, users can only delete custom emoji they created. Emoji managers assigned by the administrator can delete any custom emoji in the organization. See Learn about custom emojis in Google Chat. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see Learn about custom emojis in Google Chat and [Manage custom emoj [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Resource name of the custom emoji to delete. Format: `customEmojis/{customEmoji}` You can use the emoji name as an alias for `{customEmoji}`. For exam | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose important behavior: deletion permissions, the Workspace/admin enablement precondition, irreversibility, and refusal under readonly safety profiles. The generic HTTP DELETE boilerplate is somewhat noisy and the source text appears truncated, but the key behavioral traits are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description contains duplicated documentation links, a visibly truncated sentence, and a long generic HTTP DELETE/body-building suffix. Useful facts are present, but the structure is noisy and not front-loaded cleanly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deletion tool with no annotations and an output schema, the description provides enough context: permissions, organizational preconditions, irreversibility, and sibling operations. The truncation and repeated boilerplate keep it from being fully complete and polished.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the required name parameter and its format. The description adds no additional parameter-level meaning beyond what the schema provides, which matches the baseline for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Deletes a custom emoji.' It also lists the sibling operations over the same resource (create, get, list), making the operation easy to distinguish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context about who can use the tool: users can normally delete only their own emoji, while administrator-assigned emoji managers can delete any organization emoji. It does not explicitly say when to prefer get/list first or when not to use deletion, so it falls short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.customEmojis.getA
Returns details about a custom emoji. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see Learn about custom emojis in Google Chat and Manage custom emoji permissions. Requires user authentication with one of the following [authorization scopes](https://developers.google.com/workspace/chat/authenticate-authori [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Resource name of the custom emoji. Format: `customEmojis/{customEmoji}` You can use the emoji name as an alias for `{customEmoji}`. For example, `cust | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| uid | No | |
| name | No | |
| payload | No | |
| emojiName | No | |
| temporaryImageUri | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does disclose meaningful traits: HTTP GET, required OAuth scopes, admin-level enablement prerequisite, and JSON return. It stops short of error behavior or permission failure modes, but that is a minor gap for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the body pads with two support links, a truncated scope sentence, and generic request-body boilerplate that is irrelevant to a parameterless GET. Several sentences don't earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, and the prerequisites plus auth/scopes are covered. Complete enough for an agent to call it correctly, with only minor missing detail about failure conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully documents the name pattern and the params/body_file/dry_run flags. The description restates the 'typed flags win over params map' precedence that the schema also conveys, adding little beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns details about') and resource ('a custom emoji'), and matches it against siblings create/delete/list so the agent can tell this is the read operation. The intent is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear preconditions for use: Workspace account, org admin must enable custom emojis, and user auth is required. It does not explicitly say 'use list first to discover emoji names' or spell out when-not, but the read context against siblings is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.customEmojis.listA
Lists custom emojis visible to the authenticated user. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see Learn about custom emojis in Google Chat and Manage custom emoji permissions. Requires user authentication with one of the following [authorization scopes](https://developers.google.com/workspace/chat/aut [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| filter | No | [query parameter] Optional. A query filter. Supports filtering by creator. To filter by creator, you must specify a valid value. Currently only `creator("users/me")` and `NOT cre | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of custom emojis returned. The service can return fewer custom emojis than this value. If unspecified, the default value is 25. The | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. (If resuming from a previous query.) A page token received from a previous list custom emoji call. Provide this to retrieve the subsequent page. When |
Output Schema
| Name | Required | Description |
|---|---|---|
| customEmojis | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses the Workspace/admin gating, the required user-authentication scheme and authorization scopes, that it is an HTTP GET returning JSON, and it points at pagination semantics. It does not mention rate limits, quota, or failure modes for orgs where emojis are disabled, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and prerequisites are front-loaded, which is good, but the text is padded with two support links, a truncated scope list, and generic wrapper boilerplate about request bodies, `params` maps, and `body_file` that is irrelevant to a GET list endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and pagination is covered by the schema. Combined with the auth and eligibility prerequisites, the description is sufficient for correct invocation, though the truncated scope sentence leaves a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so filter, pageSize, and pageToken are already fully documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Lists custom emojis visible to the authenticated user") with an explicit visibility scope. It also names the sibling operations over the same resource (create, delete, get), so an agent can distinguish it from chat.customEmojis.get without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real applicability context: only Google Workspace accounts, and the admin must have enabled custom emojis for the organization. What's missing is an explicit alternative rule (e.g., use get when you already know the emoji name), so it stops short of the 5 bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.media.downloadB
Downloads media. Download is supported on the URI /v1/media/{+name}?alt=media [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: upload.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| resourceName | Yes | [URL path segment] Name of the media that is being downloaded. See ReadRequest.resource_name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| resourceName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that the call is an HTTP GET and claims it 'Returns the requested resource as JSON', but for a media download this is likely inaccurate (media downloads typically return binary content), and it omits crucial behavioral context such as authentication/permission requirements, error behavior, or how large media is handled. The request-body sentence is also behaviorally irrelevant for a GET download, adding confusion rather than transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with 'Downloads media', which is good, but the long middle sentence about JSON responses, request bodies from typed parameters, and body_file is largely irrelevant to a GET media download. That sentence does not earn its place and makes the description feel like boilerplate pasted from a generic request wrapper rather than tool-specific guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema covers all five parameters and an output schema exists, so return values need not be explained. Still, the description's claim that the tool returns JSON and its discussion of request bodies for a GET leave a misleading picture, and it omits context an agent would need — such as what kind of media (chat attachments?) and whether special permissions are required. The core identifier (resourceName) is surfaced, but the behavioral picture is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description largely repeats what the schema already documents — the precedence of typed parameters over the params map and the body_file alternative — rather than adding new meaning. The URI template in the description does map the {+name} segment to resourceName, which is a small addition, but it is not enough to raise the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states 'Downloads media' — a specific verb and resource — and the closing note names the sibling upload tool, so the agent can distinguish it from upload. However, the middle sentence about JSON responses and request bodies built from typed parameters or body_file is a generic wrapper description that muddies the specific download purpose and may mislead an agent into thinking this is a general HTTP request builder rather than a media download.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Downloads media' and the sibling note 'upload', but there is no explicit statement of when to use this tool versus alternatives like chat.spaces.messages.attachments.get or what preconditions apply (e.g., the media must be referenced by resourceName). The description provides no when-not guidance or selection criteria beyond the upload sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.media.uploadB
Uploads an attachment. For an example, see Upload media as a file attachment. Requires user authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.messages.create - https://www.googleapis.com/auth/chat.messages - https://www.googleapis.com/auth/chat.import (import mode spaces only) You can upload attachme [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON UploadAttachmentRequest object accepting filename; pass it via params or whole via body_file Siblings over the same resource: download.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. Resource name of the Chat space in which the attachment is uploaded. Format "spaces/{space}". | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON UploadAttachmentRequest object. | |
| request_body | No | Request body of type UploadAttachmentRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| attachmentDataRef | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose key traits: HTTP POST that creates/triggers a change, refusal under --readonly profiles, the required OAuth scopes, and that the response is the API resource as JSON. It omits important downstream behavior (that the returned attachment reference presumably must be attached to a message) and any size/type limits on uploads.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, but the body contains a visibly truncated fragment ("You can upload attachme") and inline documentation links that interrupt flow. The appended HTTP-method/safety note is useful but reads as bolted-on metadata rather than integrated prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the description covers auth scopes, a mode restriction, and mutation/readonly behavior for a 6-parameter tool. The main gap is not explaining what the agent should do with the resulting attachment object or any upload constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description restates that the body is an UploadAttachmentRequest accepting a filename and can be passed via params or body_file, which duplicates what the schema already documents rather than adding new meaning to the params, query, or dry_run fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Uploads an attachment" gives a specific verb and resource, and the trailing note "Siblings over the same resource: download" explicitly distinguishes it from chat.media.download. It stops short of naming the space/message context, but an agent can identify the operation without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists required auth scopes and notes that the import scope is valid only in import-mode spaces, which implicitly tells the agent about preconditions. However, it never states when to choose this over posting via chat.spaces.messages.create or how the uploaded attachment is subsequently consumed, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.completeImportA
Completes the import process for the specified space and makes it visible to users. Requires user authentication and domain-wide delegation with the authorization scope: - https://www.googleapis.com/auth/chat.import For more information, see Authorize Google Chat apps to import data [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CompleteImportSpaceRequest object; pass it via params or whole via body_file Siblings over the same resource: create, delete, findDirectMessage, findGroupChats, get, list, patch, search, setup.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Resource name of the import mode space. Format: `spaces/{space}` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CompleteImportSpaceRequest object. | |
| request_body | No | Request body of type CompleteImportSpaceRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| space | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load well: it discloses that this is a POST that triggers a change, that it is refused under --readonly safety profiles, and the exact auth/DWD/scope requirements. It does not mention that completion is effectively irreversible (import mode contents become live and cannot be un-imported), which is the most important behavioral caveat for this operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause, followed by requirements, HTTP/side-effect notes, and return behavior. It is dense but each block is functional; the trailing sibling enumeration and inline link markup add bulk without much decision value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need no explanation, and the description covers auth, side effects, body mechanics and sibling disambiguation for a complex 6-parameter, nested-body call. The main gap is the irreversibility of completing an import and any preconditions on space state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents name, params, body_file, request_body, query and dry_run. The description only restates that the body is a CompleteImportSpaceRequest passed via `params` or `body_file`, adding little beyond the schema's own wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Completes the import process for the specified space') and adds the observable outcome ('makes it visible to users'). The sibling list makes clear this is the terminal step of import, not a general space mutation like patch or delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: the space must be an import-mode space, and it requires user authentication plus domain-wide delegation with the chat.import scope. It does not state explicit exclusions (e.g. what happens if the space was never set up for import), so it falls short of a full when/when-not statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.createB
Creates a space. Can be used to create a named space, or a group chat in Import mode. For an example, see Create a space. Supports the following types of authentication: - App authentication with administrator approval and one of the following authorization scopes: - https://www.googleapis.com/auth/chat.app.spaces.create - https://w [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Space object accepting accessSettings, adminInstalled, createTime, customer, displayName, externalUserAllowed, importMode, importModeExpireTime and 13 more fields; pass it via paramsor whole viabody_file` Siblings over the same resource: completeImport, delete, findDirectMessage, findGroupChats, get, list, patch, search, setup.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Space object. | |
| requestId | No | [query parameter] Optional. A unique ID for this request. A random UUID is recommended. Specifying a request ID makes the request idempotent, which ensures that multiple identica | |
| request_body | No | Request body of type Space: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| type | No | |
| customer | No | |
| spaceUri | No | |
| threaded | No | |
| spaceType | No | |
| createTime | No | |
| importMode | No | |
| displayName | No | |
| spaceDetails | No | |
| accessSettings | No | |
| adminInstalled | No | |
| lastActiveTime | No | |
| membershipCount | No | |
| singleUserBotDm | No | |
| spaceHistoryState | No | |
| permissionSettings | No | |
| externalUserAllowed | No | |
| spaceThreadingState | No | |
| importModeExpireTime | No | |
| predefinedPermissionSettings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It usefully discloses HTTP POST, mutation behavior, refusal under --readonly safety profiles, authentication requirements with administrator approval and scopes, and that the response is returned as JSON. However, it omits idempotency (requestId is in the schema but not discussed), error behavior, and quota/rate-limit context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the description is a long doc dump with a truncated authorization URL and a terse bracketed suffix. It contains useful information, but could be tightened and better organized for agent consumption.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, lack of annotations, and rich schema/output schema, the description covers purpose, authentication, request body passing, return format, and sibling awareness. It is close to complete for an agent to call it correctly, though it omits idempotency and error-handling hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds only a brief note that the body is a JSON Space object and can be passed via `params` or `body_file`, while listing a few fields already present in the schema. This is adequate but adds little beyond the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Creates a space') and clarifies two creation modes (named space or group chat in Import mode). It does not explicitly differentiate from siblings in the main sentence, though a sibling list appears at the end.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions two modes but gives no explicit guidance on when to use this tool versus siblings like setup, findGroupChats, or findDirectMessage. It only lists sibling names without conditions for selecting among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.deleteA
Deletes a named space. Always performs a cascading delete, which means that the space's child resources—like messages posted in the space and memberships in the space—are also deleted. For an example, see Delete a space. Supports the following types of authentication: - App authentication with administrator approval and the authorization [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: completeImport, create, findDirectMessage, findGroupChats, get, list, patch, search, setup.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Resource name of the space to delete. Format: `spaces/{space}` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| useAdminAccess | No | [query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses that deletion is always cascading and destroys child messages and memberships, that it is irreversible, that administrator approval is required, that it is refused under read-only safety profiles, and that it returns the post-delete resource state (or empty). That is exactly the behavioral context an agent needs before a destructive call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The critical information (purpose + cascade + irreversibility) is correctly front-loaded, but the text is a concatenation of Google API docs, generated boilerplate ('Returns the post-delete resource state... typed flags win over the `params` map') and a bare sibling name dump, plus a dangling 'HTTP DELETE' fragment. Several sentences do not earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, 6-parameter tool the description covers impact, auth, reversibility and safety-profile behavior, and an output schema exists so return values needn't be explained in depth. Minor incompleteness: the auth text trails off mid-sentence about administrator privileges, and there is no note on what happens when the space is already deleted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so `name`, `query`, `params`, `dry_run`, `body_file` and `useAdminAccess` are already documented individually. The description only adds the precedence rule (typed parameters win over the `params` map) and body-from-`body_file`, both of which the schema already states, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Deletes a named space') and immediately scopes the blast radius via the cascading-delete explanation. The trailing sibling list ('completeImport, create, findDirectMessage, get, list, patch, search, setup') names related tools but does not say how this one differs from them, so it stops short of true sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: you use it to remove a space, and the auth section tells you app authentication with administrator approval is required and that the call is refused under read-only profiles. There is no explicit 'when not to use' guidance, e.g. removing yourself via chat.spaces.members.delete instead of destroying the space.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.findDirectMessageA
Returns the existing direct message with the specified user. If no direct message space is found, returns a 404 NOT_FOUND error. For an example, see Find a direct message. With app authentication, returns the direct message space between the specified user and the calling Chat app. With user authentication, returns the direct message space between the specified user and the authentica [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: completeImport, create, delete, findGroupChats, get, list, patch, search, setup.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | [query parameter] Required. Resource name of the user to find direct message with. Format: `users/{user}`, where `{user}` is either the `id` for the [person](https://developers.g | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| type | No | |
| customer | No | |
| spaceUri | No | |
| threaded | No | |
| spaceType | No | |
| createTime | No | |
| importMode | No | |
| displayName | No | |
| spaceDetails | No | |
| accessSettings | No | |
| adminInstalled | No | |
| lastActiveTime | No | |
| membershipCount | No | |
| singleUserBotDm | No | |
| spaceHistoryState | No | |
| permissionSettings | No | |
| externalUserAllowed | No | |
| spaceThreadingState | No | |
| importModeExpireTime | No | |
| predefinedPermissionSettings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses the 404 NOT_FOUND failure mode, the auth-dependent result difference, and the HTTP GET nature, which is meaningful behavioral context. The trailing generic wrapper text about request bodies and body_file is boilerplate that doesn't add real behavioral insight for a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and error behavior are front-loaded, which is good. But the description mixes in generic transport boilerplate ('request bodies are built from the typed parameters... or read whole from body_file') that is irrelevant to this GET endpoint and pads the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema removes the need to describe return values, and the description covers the key behavioral facts: auth modes, 404 handling, and the resource lookup semantics. It's nearly complete for a lookup tool, missing only explicit sibling routing guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the name parameter and its users/{user} format are already documented in the schema. The description adds no additional parameter detail beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns the existing direct message with the specified user.' It's clearly a read lookup on a DM space rather than a create/get. However, it does not explicitly distinguish itself from close siblings like findGroupChats or get, relying on the appended generic sibling list instead of targeted differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides usage context by explaining the two authentication modes (app auth returns the DM between the user and the calling app; user auth returns it between the user and the authenticated user), which affects when/how to call. But there is no explicit guidance about when to prefer this over chat.spaces.get, findGroupChats, or search, and no stated exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.findGroupChatsA
Returns all spaces with spaceType == GROUP_CHAT, whose human memberships contain exactly the calling user, and the users specified in FindGroupChatsRequest.users. Only members that have joined the conversation are supported. For an example, see Find group chats. If the calling user blocks, or is blocked by, some users, and no spaces with the entire specified set of users are found, this method returns spaces that don't include the blocked or blocking users. The specified set of users must contain only human (non-app) membersh [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: completeImport, create, delete, findDirectMessage, get, list, patch, search, setup.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| users | No | ||
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of spaces to return. The service might return fewer than this value. If unspecified, at most 10 spaces are returned. The maximum va | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous call to find group chats. Provide this parameter to retrieve the subsequent page. When paginating, all other pa | |
| spaceView | No | [query parameter] Requested space view type. If unset, defaults to `SPACE_VIEW_RESOURCE_NAME_ONLY`. Requests that specify `SPACE_VIEW_EXPANDED` must include scopes that allow rea Values: `SPACE_VIEW_UNSPECIFIED` = The default / unset value.; `SPACE_VIEW_RESOURCE_NAME_ONLY` = Populates only the Space resource name.; `SPACE_VIEW_EXPANDED` = Populates Space resource fields. Note: the `permissionSettings` field will not be populated. Requests that specify SPACE_VIEW_EXPANDED must include scopes that allow reading space data, for example, https://www.googleapis.com/auth/chat.spaces or https://www.googleapis.com/auth/chat.spaces.readonly.. |
Output Schema
| Name | Required | Description |
|---|---|---|
| spaces | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it declares HTTP GET (read semantics), discloses that only joined members are supported, that the result set degrades when users block each other, and that only human memberships count. It is undercut by a truncated sentence ('non-app) membersh') and no statement of auth/scope requirements beyond what the spaceView param schema already says.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, which is good. But the tail contains generic wrapper boilerplate about `params`, `body_file`, and 'request bodies are built from typed parameters' that is irrelevant for a GET with no body, and several sentences are visibly truncated, wasting space without informing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is unnecessary, and the description covers the non-obvious parts (set-exactness, blocking fallback, human-only constraint) that an agent could not infer from the schema. Remaining gaps are minor pagination/scope details that live in the parameter descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 88%, so baseline is 3, and the description goes further by explaining the meaning of `users` (exactly the calling user plus the listed humans, apps excluded) and the behavioral consequence when that set cannot be satisfied. It adds no guidance on pageSize/pageToken or spaceView, but those are documented in-schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource with a precise filter: spaces where spaceType == GROUP_CHAT whose human memberships contain exactly the calling user plus the users specified in the request. The GROUP_CHAT scoping functionally distinguishes it from chat.spaces.list, chat.spaces.search, and chat.spaces.findDirectMessage without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes the exact set-membership semantics and the blocked-user fallback, which implicitly tells the agent when results may be broader than requested. However, it never names the sibling alternatives (list, search, findDirectMessage) or says when to prefer one over another, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.getA
Returns details about a space. For an example, see Get details about a space. Supports the following types of authentication: - App authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.bot - https://www.googleapis.com/auth/chat.app.spaces with administrator approval - [User authentication [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: completeImport, create, delete, findDirectMessage, findGroupChats, list, patch, search, setup.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Resource name of the space, in the form `spaces/{space}`. Format: `spaces/{space}` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| useAdminAccess | No | [query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| type | No | |
| customer | No | |
| spaceUri | No | |
| threaded | No | |
| spaceType | No | |
| createTime | No | |
| importMode | No | |
| displayName | No | |
| spaceDetails | No | |
| accessSettings | No | |
| adminInstalled | No | |
| lastActiveTime | No | |
| membershipCount | No | |
| singleUserBotDm | No | |
| spaceHistoryState | No | |
| permissionSettings | No | |
| externalUserAllowed | No | |
| spaceThreadingState | No | |
| importModeExpireTime | No | |
| predefinedPermissionSettings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does disclose meaningful traits: it is an HTTP GET (read-only), and it enumerates the required auth modes and scopes, including administrator approval for chat.app.spaces. It does not cover error behavior or permission failure modes, but the auth profile is well beyond typical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the essentials follow. Some bulk is inherited boilerplate (request-body/`body_file` mechanics on a GET that needs no body) and two example/scope URLs, but nothing is seriously misleading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a single-resource getter with a fully described 6-parameter schema and an output schema, so return shape needs no explanation. The description adds auth requirements and parameter-override mechanics, leaving no material gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further by explaining the generic mechanics: request bodies are built from typed parameters, typed flags win over the `params` map, and `body_file` can supply the whole body. That precedence rule is not obvious from the schema alone and directly affects how an agent fills these 6 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Returns details about a space" gives a specific verb (get/details) and resource (space), which is distinguishable from create/patch/delete/list. The trailing sibling enumeration reinforces what this is not, though it is a bare name list rather than an explanation of the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: use it to fetch details of a known space (name required), versus list/search/findDirectMessage for discovery. It states authentication prerequisites, which is useful context, but never explicitly says when to prefer get over the listed siblings or what conditions rule it out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.listA
Lists spaces the caller is a member of. Group chats and DMs aren't listed until the first message is sent. For an example, see List spaces. Supports the following types of authentication: - App authentication with the authorization scope: - https://www.googleapis.com/auth/chat.bot - User authentication wi [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: completeImport, create, delete, findDirectMessage, findGroupChats, get, patch, search, setup.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| filter | No | [query parameter] Optional. A query filter. You can filter spaces by the space type ([`space_type`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces#spac | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of spaces to return. The service might return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum v | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous list spaces call. Provide this parameter to retrieve the subsequent page. When paginating, the filter value sho |
Output Schema
| Name | Required | Description |
|---|---|---|
| spaces | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does real work: it discloses it is an HTTP GET (read-only), the required auth scopes, and the important caveat that empty group chats/DMs are omitted. The generic boilerplate about request bodies/'body_file' is odd for a GET but does not undermine the behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key listing behavior is front-loaded and useful, but the body is cluttered with generic boilerplate ('request bodies are built from the typed parameters...', 'body_file') that is irrelevant to a list operation and dilutes the message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and auth plus listing caveats are covered. The main gap is the absence of sibling routing guidance, but for a read-only list tool with full schema coverage this is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so filter, pageSize, and pageToken are already documented in the schema. The description adds no syntax or semantics for these parameters beyond what is provided structurally, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with a scoping qualifier: 'Lists spaces the caller is a member of.' The exclusion of group chats/DMs until first message adds precision. It names siblings but does not use them to differentiate the purpose, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Discloses a real usage constraint (group chats and DMs won't appear until a message is sent), which implies when to expect certain results. However, it never says when to prefer findGroupChats, findDirectMessage, or search over this tool - the sibling list is presented without routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.members.createA
Creates a membership for the calling Chat app, a user, or a Google Group. Creating memberships for other Chat apps isn't supported. When creating a membership, if the specified member has their auto-accept policy turned off, then they're invited, and must accept the space invitation before joining. Otherwise, creating a membership adds the member directly to the specified space. Supports the following types of authentication: - [App authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Membership object accepting affiliation, createTime, deleteTime, groupMember, member, name, role, state; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The resource name of the space for which to create the membership. Format: spaces/{space} | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Membership object. | |
| request_body | No | Request body of type Membership: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| useAdminAccess | No | [query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| role | No | |
| state | No | |
| member | No | |
| createTime | No | |
| deleteTime | No | |
| affiliation | No | |
| groupMember | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does so well: it discloses HTTP POST semantics, that the call is refused under --readonly safety profiles, the invite-vs-direct-add side effect, the authentication requirement (link is truncated mid-URL), and that the response is the Membership resource. Missing are permission prerequisites beyond the admin query param and any rate-limit or idempotency notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The behavioral and wrapper information is front-loaded, but the text is a run-on stack of copy-pasted API documentation plus appended CLI notes, and the authentication markdown link is broken and truncated mid-URL ('authenticate-authorize-chat-app [HTTP POST]'), leaving a malformed sentence. The field list (affiliation, createTime, deleteTime, ...) duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating POST with a nested Membership body and an output schema, the description covers what an agent needs: who can be added, invite-vs-add behavior, auth mode, read-only refusal, body shape, and sibling operations. The remaining gaps are minor since the output schema documents the return value and the truncated auth link only costs detail, not correctness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real value by resolving the overlapping body parameters: the request body is a JSON Membership object, its accepted fields are enumerated, and it can be passed via `params` or whole via `body_file`. That disambiguates `params` vs `request_body` vs `body_file`, which the schema alone leaves ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates a membership') plus the scope of who can be a member (calling Chat app, a user, or a Google Group) and an explicit unsupported case (other Chat apps). It also names the sibling family over the same resource (delete, get, list, patch), so an agent can place it in the CRUD set without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the two outcome paths clearly: if the member's auto-accept policy is off they are invited and must accept before joining, otherwise they are added directly. It also gives an exclusion ('Creating memberships for other Chat apps isn't supported') and points at the sibling delete/get/list/patch set, but does not compare against alternatives such as chat.spaces.setup or members.patch for changing an existing membership.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.members.deleteA
Deletes a membership. For an example, see Remove a user or a Google Chat app from a space. Supports the following types of authentication: - App authentication with administrator approval and the authorization scope: - https://www.googleapis.com/auth/chat.app.memberships - [User authentication](https://developers.google.com/workspace/ [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Resource name of the membership to delete. Chat apps can delete human users' or their own memberships. Chat apps can't delete other apps' memberships. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| useAdminAccess | No | [query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| role | No | |
| state | No | |
| member | No | |
| createTime | No | |
| deleteTime | No | |
| affiliation | No | |
| groupMember | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses the HTTP DELETE method, irreversibility ("irreversible unless the API documents a trash/undo flow"), the readonly-profile refusal, and that the post-delete resource state is returned as JSON. The authentication paragraph is truncated mid-sentence, leaving the user-auth scope list incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The critical facts (delete, irreversible, returns post-delete state, siblings) are front-loaded, but the pasted Google documentation links and the mangled truncation of the user-authentication bullet add noise without earning their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with an output schema and full param coverage, the description supplies what the structured fields can't: irreversibility, auth/admin approval requirements, and the sibling map. Only the truncated auth text leaves a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the `name` pattern, the app-vs-human membership restriction, and the query/util params (dry_run, body_file, params) are already documented in the schema. The description adds no parameter-level detail beyond the auth scopes, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ("Deletes a membership") and explicitly enumerates the sibling operations over the same resource (create, get, list, patch), so the agent can distinguish create/get/list/patch without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real call prerequisites — app authentication with administrator approval and the chat.app.memberships scope, or user authentication — plus a clear when-not signal ("refused under --readonly safety profiles"). It doesn't discuss when to prefer patch over delete or what happens to the space itself, so not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.members.getB
Returns details about a membership. For an example, see Get details about a user's or Google Chat app's membership. Supports the following types of authentication: - App authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.bot - https://www.googleapis.com/auth/chat.app.memberships (requires [administrator approval](https://support.goo [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Resource name of the membership to retrieve. To get the app's own membership [by using user authentication](https://developers.google.com/workspace/ch | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| useAdminAccess | No | [query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| role | No | |
| state | No | |
| member | No | |
| createTime | No | |
| deleteTime | No | |
| affiliation | No | |
| groupMember | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full load. It does add genuinely useful behavioral context the schema lacks: the authentication types, the specific OAuth scopes, and the administrator-approval requirement for `chat.app.memberships`. However, the boilerplate about request bodies being built from parameters or read from `body_file` is misleading for a GET endpoint and no error semantics (403/404, membership visibility) are described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is correctly front-loaded in the first sentence. But the body is dominated by long authorization URLs and generic transport boilerplate, including `body_file`/request-body text that has no application to a GET call, which dilutes the useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the required `name` is well documented. What is missing is the operational context for a conditional-access read: how results differ under app vs. user auth and admin access, and what failure modes to expect. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies. The description adds only one semantic detail beyond the schema - that typed parameters win over the `params` map - while the meaning of `name` and `useAdminAccess` is already fully documented in the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: 'Returns details about a membership.' The trailing note enumerating siblings over the same resource (create, delete, list, patch) lets an agent separate this from the other membership operations. It only falls short of a 5 because 'a membership' is generic - it never says Chat space membership explicitly in the purpose sentence, leaning on the tool name for that.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list implies this is the single-resource read versus list/create/delete/patch, and the required `name` pattern signals a lookup-by-identifier flow. But there is no explicit 'use this when you already have the resource name; use list to discover names' guidance, and no exclusions or prerequisites stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.members.listA
Lists memberships in a space. For an example, see List users and Google Chat apps in a space. Listing memberships with app authentication lists memberships in spaces that the Chat app has access to, but excludes Chat app memberships, including its own. Listing memberships with User authentication lists memberships in spaces that the authenticated user has access to. Supports [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| filter | No | [query parameter] Optional. A query filter. You can filter memberships by a member's role ([`role`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.memb | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The resource name of the space for which to fetch a membership list. Format: spaces/{space} | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of memberships to return. The service might return fewer than this value. If unspecified, at most 100 memberships are returned. The | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous call to list memberships. Provide this parameter to retrieve the subsequent page. When paginating, all other pa | |
| showGroups | No | [query parameter] Optional. When `true`, also returns memberships associated with a Google Group, in addition to other types of memberships. If a filter is set, Google Group memb | |
| showInvited | No | [query parameter] Optional. When `true`, also returns memberships associated with invited members, in addition to other types of memberships. If a filter is set, invited membersh | |
| useAdminAccess | No | [query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit |
Output Schema
| Name | Required | Description |
|---|---|---|
| memberships | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does substantial work: it declares the operation is an HTTP GET (read-only), discloses that app-auth results silently omit Chat app memberships including the app's own, and explains how request bodies are sourced from typed parameters vs `params` vs `body_file`. Missing quota/rate-limit or pagination caveats, but the auth-mode exclusion behavior is the key non-obvious trait and it is stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core statement is front-loaded, but the boilerplate block ("Supports [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters...") is largely irrelevant to a GET list call and reads as template filler. The example link and auth-mode paragraphs earn their place; the plumbing paragraph does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and the description covers the operation, its auth-mode semantics, and the sibling set. For an 11-parameter list tool with 100% schema coverage, what remains is adequate; only quota/error behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including filter, pageSize, pageToken, showGroups, showInvited and useAdminAccess is already documented in the schema. The description adds no parameter-level meaning beyond restating the params-map precedence and body_file mechanism that the schema itself describes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb plus resource ("Lists memberships in a space") and explicitly names the sibling operations over the same resource (create, delete, get, patch), so an agent can separate this from chat.spaces.members.get without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The authentication-mode discussion tells the agent two concrete conditions under which behavior differs: app auth covers spaces the Chat app can access but excludes Chat app memberships, user auth covers what the authenticated user can access. It stops short of saying when to prefer this tool over chat.spaces.list or members.get, so no explicit exclusion set for those siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.members.patchA
Updates a membership. For an example, see Update a user's membership in a space. Supports the following types of authentication: - App authentication with administrator approval and the authorization scope: - https://www.googleapis.com/auth/chat.app.memberships (only in spaces the app created) - [User authentication](https://developer [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Membership object accepting affiliation, createTime, deleteTime, groupMember, member, name, role, state; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name of the membership, assigned by the server. Format: `spaces/{space}/members/{member}` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Membership object. | |
| updateMask | No | [query parameter] Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `role` | |
| request_body | No | Request body of type Membership: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| useAdminAccess | No | [query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| role | No | |
| state | No | |
| member | No | |
| createTime | No | |
| deleteTime | No | |
| affiliation | No | |
| groupMember | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose the mutating PATCH behavior, refusal under readonly safety profiles, returned JSON resource, authentication modes, and request-body handling. It loses a point because the user-authentication detail is truncated and the authorization requirements are only partially spelled out.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and begins with the purpose, but it becomes a run-on paragraph mixing documentation links, truncated auth text, HTTP method notes, return behavior, body fields, and siblings. It is not wasteful in content, but its structure and truncation reduce readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 8 parameters, nested request body, no annotations, and an output schema, the description supplies the important behavioral context: mutation semantics, safety-profile refusal, auth modes, body handling, and sibling resources. The main omissions are the truncated auth detail and the updateMask limitation, which is covered in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains the parameters, including the required updateMask and useAdminAccess. The description restates the body fields and params/body_file mechanism, but adds little semantic meaning beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence, "Updates a membership," states a specific verb and resource, and the later list of sibling operations on the same resource (create, delete, get, list) makes the tool's role distinguishable. The subsequent body-field list further clarifies what kinds of updates are in scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names sibling operations over the same resource and notes that HTTP PATCH updates the resource, but it never explicitly states when to choose patch versus create/delete/get/list. The readonly safety-profile refusal is useful context, but conditional alternative guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messagePins.createA
Creates a message pin. Requires user authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.spaces.pins - https://www.googleapis.com/auth/chat.spaces [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON MessagePin object accepting message, name; pass it via params or whole via body_file Siblings over the same resource: delete, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The parent space in which to create the message pin. Format: spaces/{space} | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON MessagePin object. | |
| request_body | No | Request body of type MessagePin: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses the mutation nature (HTTP POST, creates or triggers a change), the auth model and scopes, and the safety-profile refusal behavior. It stops short of covering idempotency, rate limits, or what happens on a duplicate pin, which are the main remaining gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the remaining content is a dense run-on mixing auth links, scope lists, safety-profile notes, body routing, and sibling names. The information is relevant but could be structured more cleanly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need only light mention, and the description covers auth, safety, and body structure for a mutation tool. It is nearly complete, missing only edge-case behavior such as duplicate pins or permission failures.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters including the MessagePin body fields. The description restates the body routing (via `params` or `body_file`) and the `message`/`name` fields, adding little beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Creates a message pin") and explicitly names the sibling operations over the same resource ("delete, list"), so an agent can distinguish create from delete/list without opening a schema. The scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: user-authentication requirement, acceptable authorization scopes, and the fact that it is refused under --readonly safety profiles. It does not spell out when to prefer this over other pin operations beyond naming the siblings, so it falls short of a full when/when-not routing guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messagePins.deleteA
Deletes a message pin. Requires user authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.spaces.pins - https://www.googleapis.com/auth/chat.spaces [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the message pin to remove. Format: spaces/{space}/messagePins/{message_pin} | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses required user authentication with the exact scopes, that the operation is irreversible with no trash/undo flow, that it is refused under readonly safety profiles, and what is returned after deletion. The only gap is that the request-body/`body_file` boilerplate is irrelevant noise for a bodyless DELETE.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deletion statement and irreversibility warning are correctly front-loaded, but the trailing sentence about typed parameters winning over `params` and reading from `body_file` is generic scaffolding that earns no place in a DELETE tool's description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Auth requirements, irreversibility, readonly refusal, and response shape are all covered, and an output schema exists so return values need no further explanation. A brief note on missing-pin behavior (error vs. no-op) would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the `name` format and regex are already documented. The description adds only a note on how typed parameters interact with the `params` map and `body_file`, which is negligible for a DELETE that takes no body, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Deletes a message pin" gives a specific verb and resource, and the closing "Siblings over the same resource: create, list" explicitly separates it from the two neighboring pin tools. An agent can pick this out of the large sibling list without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the sibling operations (create, list) but never states when to use delete versus, say, unpinning by other means, nor any precondition such as needing to know the pin's resource name or holding the pin permission. Usage is only implied from the verb and the irreversibility warning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messagePins.listA
Lists message pins in a space. Users can pin important messages in spaces for easy access. For more information, see Pin or unpin a conversation in Google Chat. Requires user authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.spaces.pins.readonly - https://www.googleapis.com/auth/chat.spaces.pins - https://www.googleapis.co [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the paramsmap), or read whole frombody_file` Siblings over the same resource: create, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The parent space which owns the collection of pinned items Format: `spaces/{space}` | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of message pins returned. The service might return fewer messages than this value. The maximum value is 100. If you use a value mor | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token received from a previous list message pins call. Provide this parameter to retrieve the subsequent page. When paginating, all other param |
Output Schema
| Name | Required | Description |
|---|---|---|
| messagePins | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and does disclose meaningful behavior: it requires user authentication with specific authorization scopes, is an HTTP GET, and returns the resource as JSON. The generic 'request bodies are built from typed parameters / body_file' sentence is boilerplate that fits awkwardly for a GET list, slightly undercutting clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, which is good. However, the trailing HTTP GET / body-building boilerplate is templated filler that doesn't earn its place for a list operation, detracting from an otherwise tight description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and all 7 parameters are fully described in the schema. Auth and scope requirements are surfaced in the description, making it largely complete for a list operation; only explicit pagination/usage guidance is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parent, pageSize, and pageToken. The description adds no parameter-specific meaning beyond generic boilerplate about typed params winning over the params map, so it provides no value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence 'Lists message pins in a space' gives a clear verb (Lists), a specific resource (message pins), and scope. It also names the resource siblings (create, delete), so an agent can orient it against the related operations without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the read/list operation and mentions siblings 'create, delete', but it never states conditions for choosing this over those alternatives. Usage is only inferable from the verb, not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messages.attachments.getA
Gets the metadata of a message attachment. The attachment data is fetched using the media API. For an example, see Get metadata about a message attachment. Requires app authentication with the authorization scope: - https://www.googleapis.com/auth/chat.bot [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Resource name of the attachment, in the form `spaces/{space}/messages/{message}/attachments/{attachment}`. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| source | No | |
| contentName | No | |
| contentType | No | |
| downloadUri | No | |
| driveDataRef | No | |
| thumbnailUri | No | |
| attachmentDataRef | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the required app authentication, the exact `chat.bot` authorization scope, the HTTP GET method, and that the response is a JSON resource. It does not describe error behavior or that the trailing request-body machinery is irrelevant for a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and auth details are front-loaded and useful, but the final sentence about building request bodies from typed parameters or `body_file` is irrelevant for a GET endpoint and reads as wrapper boilerplate rather than earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be spelled out, and the description covers purpose, alternative path for the actual media, auth scope, and method. It is essentially complete for an agent to call it correctly, with only minor noise from the request-body boilerplate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the `name` parameter already documents the required `spaces/{space}/messages/{message}/attachments/{attachment}` form and pattern, so the baseline is 3. The description adds nothing about `name`, `query`, `params`, or `dry_run` beyond generic boilerplate that typed parameters override the `params` map.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets the metadata of a message attachment') and immediately clarifies that the bytes themselves come from the media API, which is exactly the distinction an agent needs against the sibling chat.media.download. No ambiguity about what this call returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent when to use this (metadata) versus the linked media API (actual attachment data), and adds an example link. It stops short of naming the concrete sibling tool `chat.media.download` or stating exclusions/preconditions beyond auth.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messages.createA
Creates a message in a Google Chat space. For an example, see Send a message. Supports the following types of authentication: - App authentication with the authorization scope: - https://www.googleapis.com/auth/chat.bot - User authentication with one of the following authorization scopes: - https://w [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Message object accepting accessoryWidgets, actionResponse, annotations, argumentText, attachedGifs, attachment, cards, cardsV2 and 20 more fields; pass it via paramsor whole viabody_file` Siblings over the same resource: delete, get, list, patch, replaceCards, search, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The resource name of the space in which to create a message. Format: `spaces/{space}` | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Message object. | |
| messageId | No | [query parameter] Optional. A custom ID for a message. Lets Chat apps get, update, or delete a message without needing to store the system-assigned ID in the message's resource n | |
| requestId | No | [query parameter] Optional. A unique ID for this request. A random UUID is recommended. Specifying a request ID makes the request idempotent, which ensures that multiple identica | |
| threadKey | No | [query parameter] Optional. Deprecated: Use thread.thread_key instead. ID for the thread. Supports up to 4000 characters. To start or add to a thread, create a message and specif | |
| request_body | No | Request body of type Message: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| messageReplyOption | No | [query parameter] Optional. Specifies whether a message starts a thread or replies to one. Only supported in named spaces. When [responding to user interactions](https://develope Values: `MESSAGE_REPLY_OPTION_UNSPECIFIED` = Default. Starts a new thread. Using this option ignores any thread ID or `thread_key` that's included.; `REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD` = Creates the message as a reply to the thread specified by thread ID or `thread_key`. If it fails, the message starts a new thread instead.; `REPLY_MESSAGE_OR_FAIL` = Creates the message as a reply to the thread specified by thread ID or `thread_key`. If a new `thread_key` is used, a new thread is created. If the message creation fails, a `NOT_FOUND` error is returned instead.. | |
| createMessageNotificationOptions.notificationType | No | [query parameter] The notification type for the message. Values: `NOTIFICATION_TYPE_NONE` = Default behavior. Notification behavior is similar to when the human user sends the message using the Chat UI: no notification is sent to the human sender.; `NOTIFICATION_TYPE_FORCE_NOTIFY` = Force notify recipients. This bypasses users' space notification settings and [Chat Do Not Disturb settings](https://support.google.com/chat/answer/9093489). This option does not bypass device-level Do Not Disturb settings. Requires [app authentication] (https://developers.google.com/workspace/chat/authenticate-authorize-chat-app).; `NOTIFICATION_TYPE_SILENT` = Do not notify recipients, and do not mark the message as unread. This behaves similarly to the user muting the conversation or enabling [Chat Do Not Disturb](https://support.google.com/chat/answer/9093489). Requires [app authentication] (https://developers.google.com/workspace/chat/authenticate-authorize-chat-app).. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| text | No | |
| cards | No | |
| space | No | |
| sender | No | |
| silent | No | |
| thread | No | |
| cardsV2 | No | |
| attachment | No | |
| createTime | No | |
| deleteTime | No | |
| matchedUrl | No | |
| annotations | No | |
| threadReply | No | |
| argumentText | No | |
| attachedGifs | No | |
| fallbackText | No | |
| markupSyntax | No | |
| slashCommand | No | |
| formattedText | No | |
| actionResponse | No | |
| lastUpdateTime | No | |
| accessoryWidgets | No | |
| deletionMetadata | No | |
| privateMessageViewer | No | |
| quotedMessageMetadata | No | |
| emojiReactionSummaries | No | |
| clientAssignedMessageId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the behavioral burden and does well: it identifies the call as HTTP POST, says it creates or triggers a change, notes that it is refused under --readonly safety profiles, lists authentication modes and scopes, and states that the API response resource is returned as JSON. It stops short of covering rate limits, detailed permission failures, or side effects beyond creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then presents auth, behavioral, return, and sibling context in a reasonably structured way. It includes some noise, such as truncated auth-scope URLs and the vague '20 more fields' phrase, but overall it remains usable and not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema, output schema, and high schema coverage, the description supplies the missing context an agent needs: authentication requirements, mutation/readonly safety behavior, request-body passing mechanics, and sibling tool awareness. Nothing essential for correct invocation appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 11 parameters in detail. The description adds a useful note that the JSON Message body can be passed via `params` or `body_file` and summarizes the body fields, but it does not add substantial semantic meaning beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Creates a message in a Google Chat space.' It also names the siblings over the same resource (delete, get, list, patch, replaceCards, search, update), making the action distinguishable without inspecting other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the basic usage clear by saying it creates a message and by listing sibling operations, but it does not explain when to choose create versus update, patch, or reply behavior. The auth and readonly notes provide context, but there is no explicit when-to-use/when-not-to-use guidance against alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messages.deleteB
Deletes a message. For an example, see Delete a message. Supports the following types of authentication: - App authentication with the authorization scope: - https://www.googleapis.com/auth/chat.bot - User authentication with one of the following authorization scopes: - https://www.googleapis.com/aut [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the paramsmap), or read whole frombody_file` Siblings over the same resource: create, get, list, patch, replaceCards, search, update.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Resource name of the message. Format: `spaces/{space}/messages/{message}` If you've set a custom ID for your message, you can use the value from the ` | |
| force | No | [query parameter] Optional. When `true`, deleting a message also deletes its threaded replies. When `false`, if a message has threaded replies, deletion fails. Only applies when | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does much of it: it declares the operation irreversible absent a documented trash/undo flow, notes it is refused under --readonly profiles, and states the post-delete return shape. Missing only finer operational details like permission errors or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key fact ('Deletes a message') is front-loaded, but the middle is bloated with pasted auth-scope boilerplate that is even truncated mid-URL, plus a generic sibling list. Useful safety note is buried after the noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be spelled out, and auth requirements, irreversibility, and destructive semantics are covered. For a destructive delete with 100% schema coverage, only explicit when-to-use guidance is notably absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds only the request-construction note (typed params win over params map, body_file alternative) and does not elaborate on name, force, or dry_run beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening 'Deletes a message' gives a specific verb and resource, and the closing sibling list (create, get, list, patch, replaceCards, search, update) differentiates it from the other operations on the same resource. The differentiation is a bare enumeration rather than condition-based, keeping it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names siblings but never states when to choose delete over them (e.g., delete vs update, or delete vs a soft/trash flow). The only conditional context, force-driven threaded-reply behavior, lives in the schema rather than the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messages.getB
Returns details about a message. For an example, see Get details about a message. Supports the following types of authentication: - App authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.bot: When using this authorization scope, this method returns details about a message the Chat app has access to, like direct messages and [slash co [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, patch, replaceCards, search, update.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Resource name of the message. Format: `spaces/{space}/messages/{message}` If you've set a custom ID for your message, you can use the value from the ` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| markupSyntax | No | [query parameter] Optional. Specifies the desired output syntax for the Chat message `formatted_text` field. Values: `MARKUP_SYNTAX_UNSPECIFIED` = Represents the unspecified value.; `MARKUP_SYNTAX_CHAT` = Uses Google Chat's markup syntax. See https://developers.google.com/workspace/chat/format-messages#format-texts for more information.; `MARKUP_SYNTAX_MARKDOWN` = Uses Markdown syntax. This syntax is based on the [CommonMark](https://commonmark.org/help/) specification, with additional extensions. See https://developers.google.com/workspace/chat/format-messages#format-texts for more information.. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| text | No | |
| cards | No | |
| space | No | |
| sender | No | |
| silent | No | |
| thread | No | |
| cardsV2 | No | |
| attachment | No | |
| createTime | No | |
| deleteTime | No | |
| matchedUrl | No | |
| annotations | No | |
| threadReply | No | |
| argumentText | No | |
| attachedGifs | No | |
| fallbackText | No | |
| markupSyntax | No | |
| slashCommand | No | |
| formattedText | No | |
| actionResponse | No | |
| lastUpdateTime | No | |
| accessoryWidgets | No | |
| deletionMetadata | No | |
| privateMessageViewer | No | |
| quotedMessageMetadata | No | |
| emojiReactionSummaries | No | |
| clientAssignedMessageId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that this is an HTTP GET, returns the resource as JSON, and is governed by Chat app authentication scopes and access limitations. However, the authentication section is truncated and the description does not fully cover permissions, rate limits, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the description is cluttered with authentication boilerplate, a broken/truncated sentence, and generic request-body details that are not relevant to a GET operation. The sibling list is useful, but overall it is longer and noisier than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema and the presence of an output schema, the description does not need to explain return fields. It covers the core purpose and some authentication context, but the truncated authentication section and lack of explicit usage guidance leave gaps for an agent selecting among message operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents the parameters in detail. The description adds only generic wrapper behavior about typed parameters, the params map, and body_file, without explaining name or markupSyntax beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Returns details about a message.' It also names the sibling operations over the same resource, which helps an agent distinguish get from create, delete, list, patch, search, and update. It does not explicitly explain the get-vs-list/search distinction, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the purpose and the sibling list. The description does not explicitly say when to use this tool instead of list or search, nor does it state prerequisites beyond authentication. An agent can infer retrieval of a single message by resource name, but conditions and exclusions are not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messages.listB
Lists messages in a space that the caller is a member of, including messages from blocked members and spaces. System messages, like those announcing new space members, aren't included. If you list messages from a space with no messages, the response is an empty object. When using a REST/HTTP interface, the response contains an empty JSON object, {}. For an example, see List messages. Supports the following types of authentication: - [App authentic [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, patch, replaceCards, search, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| filter | No | [query parameter] Optional. A query filter. You can filter messages by date (`create_time`) and thread (`thread.name`). To filter messages by the date they were created, specify | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The resource name of the space to list messages from. Format: `spaces/{space}` | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| orderBy | No | [query parameter] Optional. How the list of messages is ordered. Specify a value to order by an ordering operation. Valid ordering operation values are as follows: - `ASC` for as | |
| pageSize | No | [query parameter] Optional. The maximum number of messages returned. The service might return fewer messages than this value. If unspecified, at most 25 are returned. The maximum | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token received from a previous list messages call. Provide this parameter to retrieve the subsequent page. When paginating, all other parameter | |
| showDeleted | No | [query parameter] Optional. Whether to include deleted messages. Deleted messages include deleted time and metadata about their deletion, but message content is unavailable. | |
| markupSyntax | No | [query parameter] Optional. Specifies the desired output syntax for the Chat message `formatted_text` field. Values: `MARKUP_SYNTAX_UNSPECIFIED` = Represents the unspecified value.; `MARKUP_SYNTAX_CHAT` = Uses Google Chat's markup syntax. See https://developers.google.com/workspace/chat/format-messages#format-texts for more information.; `MARKUP_SYNTAX_MARKDOWN` = Uses Markdown syntax. This syntax is based on the [CommonMark](https://commonmark.org/help/) specification, with additional extensions. See https://developers.google.com/workspace/chat/format-messages#format-texts for more information.. |
Output Schema
| Name | Required | Description |
|---|---|---|
| messages | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the caller must be a space member, that blocked members/spaces are included, that system messages are excluded, and that an empty space returns `{}`. However, the authentication section is truncated mid-sentence, leaving an important access requirement incompletely described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and edge-case behavior are front-loaded and useful, but the description also contains generic HTTP/body_file boilerplate and a truncated authentication bullet that reduce focus. The sibling list at the end is relevant context but is not integrated into actionable guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the full schema coverage, output schema, and 11 parameters, the description provides enough scope and edge-case context for an agent to call the tool correctly. The main omission is explicit comparison with the sibling `search` operation, but the core listing behavior is adequately covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents parameters such as `filter`, `pageSize`, `pageToken`, and `orderBy`. The description adds no parameter-level semantics beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Lists messages in a space that the caller is a member of," which is clear enough to distinguish this as a message-listing operation. It names sibling operations at the end, including "search," but does not explicitly explain how this differs from `chat.spaces.messages.search`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the membership prerequisite and notes that blocked members and system messages are handled in specific ways, but it never explicitly says when to use this tool versus `chat.spaces.messages.search` or other siblings. The trailing sibling list is context, not actionable routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messages.patchA
Updates a message. There's a difference between the patch and update methods. The patch method uses a patch request while the update method uses a put request. We recommend using the patch method. For an example, see Update a message. Supports the following types of authentication: - App authentication with the authorization scope: - https://www.googleapis.com/auth/ch [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Message object accepting accessoryWidgets, actionResponse, annotations, argumentText, attachedGifs, attachment, cards, cardsV2 and 20 more fields; pass it via paramsor whole viabody_file` Siblings over the same resource: create, delete, get, list, replaceCards, search, update.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{m | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Message object. | |
| updateMask | No | [query parameter] Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `text` - `att | |
| allowMissing | No | [query parameter] Optional. If `true` and the message isn't found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https: | |
| request_body | No | Request body of type Message: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| text | No | |
| cards | No | |
| space | No | |
| sender | No | |
| silent | No | |
| thread | No | |
| cardsV2 | No | |
| attachment | No | |
| createTime | No | |
| deleteTime | No | |
| matchedUrl | No | |
| annotations | No | |
| threadReply | No | |
| argumentText | No | |
| attachedGifs | No | |
| fallbackText | No | |
| markupSyntax | No | |
| slashCommand | No | |
| formattedText | No | |
| actionResponse | No | |
| lastUpdateTime | No | |
| accessoryWidgets | No | |
| deletionMetadata | No | |
| privateMessageViewer | No | |
| quotedMessageMetadata | No | |
| emojiReactionSummaries | No | |
| clientAssignedMessageId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the mutation nature, notes it is 'refused under --readonly safety profiles', lists auth/scopes, and states it returns the response resource as JSON. It does not explain what happens to unspecified fields, side effects, or rate limits, leaving meaningful gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key statement ('Updates a message') is front-loaded, which is good. But the body contains a large, partly-truncated dump of Google auth-scope boilerplate ('...auth/ch') that adds noise rather than decision-relevant signal, diluting the otherwise useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and the description covers the mutation, body-passing mechanisms, and auth. Combined with schema documentation of updateMask and allowMissing, an agent has enough to call it correctly, though the absence of annotations leaves behavioral detail slightly thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, giving a baseline of 3, and the description adds value beyond the schema by enumerating representative body fields (accessoryWidgets, actionResponse, annotations, etc.) and clarifying the `params` vs `body_file` mechanisms for supplying the body. It stops short of detailing updateMask semantics, which the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates a message') and explicitly differentiates itself from the sibling `update` method via PATCH vs PUT semantics. Passing references to an example and the sibling list reinforce scope, though the core statement is brief before drifting into auth boilerplate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Recommends this tool over `update` ('We recommend using the `patch` method'), which is a form of routing guidance. However it gives no when-to-use context vs other siblings like replaceCards, and no prerequisites or when-not guidance; usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messages.reactions.createA
Creates a reaction and adds it to a message. For an example, see Add a reaction to a message. Requires user authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.messages.reactions.create - https://www.googleapis.com/auth/chat.messages.reactions - https://www.googleapis.com/auth/chat.messages - https://www.goog [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Reaction object accepting emoji, name, user; pass it via paramsor whole viabody_file` Siblings over the same resource: delete, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The message where the reaction is created. Format: `spaces/{space}/messages/{message}` | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Reaction object. | |
| request_body | No | Request body of type Reaction: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| user | No | |
| emoji | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the burden and does substantial work: it discloses the HTTP POST method, readonly-profile refusal, required user authentication with enumerated authorization scopes, and that the API response resource is returned as JSON. The scope list is truncated ('https://www.goog'), which blunts an otherwise strong disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, which is good, but the definition is cluttered by a broken/truncated scope URL and a stack of concatenated metadata (method note, return note, sibling note). The truncation is dead weight that hurts an otherwise serviceable structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers auth needs, safety/host-profile behavior, body shape and siblings, and an output schema exists so return-value detail isn't required. The cut-off scope list leaves one gap, but an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parent format, query, params, dry_run and body_file. The description adds only that the body is a JSON Reaction object accepting emoji, name, user and that it can be passed via params or body_file — marginal reinforcement rather than new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Creates a reaction and adds it to a message.' It also names the sibling operations over the same resource (delete, list), so the agent can separate this from chat.spaces.messages.reactions.delete/list and messagePins tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context (creating a reaction on a message) and flags that the operation is refused under --readonly safety profiles, which is a real usage constraint. It does not spell out a when-not-to-use condition or a distinct alternative path, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messages.reactions.deleteA
Deletes a reaction to a message. For an example, see Delete a reaction. Requires user authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.messages.reactions - https://www.googleapis.com/auth/chat.messages - https://www.googleapis.com/auth/chat.import (import mode spaces only) [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Name of the reaction to delete. Format: `spaces/{space}/messages/{message}/reactions/{reaction}` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does well: it states the operation is irreversible, notes it is refused under --readonly safety profiles, specifies required user authentication and exact scope alternatives, and says it returns the post-delete resource state. It lacks detail on error behavior when the reaction doesn't exist, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the text is padded with boilerplate ('[HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow…') and a long inline scope list with links. Useful content is mixed with generic template noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, yet the description still mentions the post-delete resource state. Auth scopes and irreversibility are covered. Only the behavior on a non-existent reaction or auth failure is missing, a minor gap for a simple delete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the `name` pattern/format, `params`, `query`, `dry_run`, and `body_file` are all documented in the schema. The description only echoes the precedence rule ('typed flags win over the `params` map') and body_file behavior, adding no new semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb and resource ('Deletes a reaction to a message'), which is immediately distinguishable from reactions.create and reactions.list. It also names the siblings over the same resource, though it doesn't say how deleting differs functionally from, e.g., messages.delete. Clear but not maximally differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists the sibling operations (create, list) and the required auth scopes, which implies when to use it, but there is no explicit statement of when to delete versus, say, patch a reaction. Usage is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messages.reactions.listA
Lists reactions to a message. For an example, see List reactions for a message. Requires user authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.messages.reactions.readonly - https://www.googleapis.com/auth/chat.messages.reactions - https://www.googleapis.com/auth/chat.messages.readonly - https://www.googleapi [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the paramsmap), or read whole frombody_file` Siblings over the same resource: create, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| filter | No | [query parameter] Optional. A query filter. You can filter reactions by [emoji](https://developers.google.com/workspace/chat/api/reference/rest/v1/Emoji) (either `emoji.unicode` | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The message users reacted to. Format: `spaces/{space}/messages/{message}` | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of reactions returned. The service can return fewer reactions than this value. If unspecified, the default value is 25. The maximum | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. (If resuming from a previous query.) A page token received from a previous list reactions call. Provide this to retrieve the subsequent page. When pag |
Output Schema
| Name | Required | Description |
|---|---|---|
| reactions | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It usefully states the HTTP method is GET, lists required user-authentication scopes, and notes that the response is JSON, though it does not explicitly describe pagination behavior or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, and the auth-scope information is relevant. However, the generic 'request bodies are built...' and body_file language is boilerplate for a GET list operation and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description includes the essential auth scopes, HTTP GET semantics, sibling alternatives, and an example link, while an output schema covers return values and the input schema covers parameters. It is largely complete, though it could more explicitly state that the operation is read-only and side-effect-free.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eight parameters. The description mentions generic request-building behavior for typed parameters and body_file, but adds no list-specific meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Lists reactions to a message.' It also explicitly distinguishes this from the sibling create and delete operations over the same resource, so an agent can identify the tool's role without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names the sibling operations as create and delete, giving clear alternative context. However, it does not explicitly say when to use this list operation versus other related message tools, nor does it state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messages.replaceCardsA
Replaces the cards included in a message. A Chat app can only replace cards on a human-created message if the message already contains cards, and the cards were created by the app. If the app replaces the cards with an empty list, the cards are removed. After removing the cards, the app cannot add cards back to the message. Requires app authentication with the authorization scope: - https://www.googleapis.com/auth/chat.bot [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ReplaceMessageCardsRequest object accepting cardsV2; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list, patch, search, update.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the message. Format: `spaces/{space}/messages/{message}` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ReplaceMessageCardsRequest object. | |
| request_body | No | Request body of type ReplaceMessageCardsRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so: app authentication plus the exact OAuth scope, HTTP POST semantics, refusal under --readonly safety profiles, and the irreversible consequence of passing an empty card list. That is precisely the destructive/one-way information an agent needs before invoking a mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then preconditions, then auth, then transport behavior. Dense but nearly every sentence carries operational weight; the bracketed HTTP POST / readonly-profile aside is the only mildly mechanical addition, and it is still useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with six parameters, deep nested card objects, and no annotations, the description covers preconditions, auth scope, reversibility, and body construction. Return values are covered by the existing output schema, so nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds real value by identifying the body type (ReplaceMessageCardsRequest accepting cardsV2) and explaining the two delivery paths — merged via `params` or supplied whole via `body_file` — which the schema alone only hints at.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and narrow resource slice: 'Replaces the cards included in a message.' The word 'cards' plus the explicit sibling list (create, delete, get, list, patch, search, update) makes it distinguishable from chat.spaces.messages.patch and update without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit preconditions for use: the message must be human-created, must already contain cards, and those cards must have been created by the calling app. It also warns that emptying the list is a one-way door ('cannot add cards back'). It stops short of naming a concrete alternative tool for the non-card case, which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messages.searchA
Searches for messages in Google Chat that the calling user has access to. Returns a list of messages matching the search criteria. To search across all spaces the user has access to, set parent to spaces/-. Using any other value for parent results in an INVALID_ARGUMENT error. The returned messages have their name field populated with the full resource name, which includes the specific space in which the message resides. This API doesn't return all message types. The types of messages listed below aren't included in the response. Use ListMessages to list all messages. - Private Mes [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON SearchMessagesRequest object accepting filter, markupSyntax, orderBy, pageSize, pageToken, view; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list, patch, replaceCards, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The resource name of the space to search within. To search across all spaces the user has access to, set this field to `spaces/-`. Using any other val | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SearchMessagesRequest object. | |
| request_body | No | Request body of type SearchMessagesRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that this is an HTTP POST that is refused under --readonly profiles, the INVALID_ARGUMENT failure mode for parent, that results carry fully-qualified name fields including the space, and that certain message types are omitted. It loses a point because the omitted-types list is truncated mid-sentence, so the agent never learns which types are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core rules are front-loaded, which is good, but the text is bloated with harness meta-commentary ('[HTTP POST] — refused under --readonly safety profiles', 'pass it via params or whole via body_file', 'Siblings over the same resource: ...') and is visibly truncated, leaving a broken enumeration in the middle.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with a full output schema, the description covers what matters: scope, the required parent sentinel, the error case, POST/readonly behavior, and the caveat that not all message types are returned. The only informational loss is the truncated type list, which is supplementary rather than essential to calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline applies; the schema already documents parent, dry_run, body_file, and the nested SearchMessagesRequest fields. The description restates the parent semantics and enumerates the body fields (filter, markupSyntax, orderBy, pageSize, pageToken, view) without adding format or constraint detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ('Searches for messages in Google Chat') and scopes it to what the calling user can access, distinct from chat.spaces.messages.list which is named later. The purpose is unmistakable, but the mangled tail ('- Private Mes') and the trailing sibling enumeration dilute the clarity a notch below exemplary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative ('Use ListMessages to list all messages') and the condition that selects it, and states the exact routing rule: parent=spaces/- searches everything, any other value yields INVALID_ARGUMENT. It also warns that some message types are never returned, which affects when an agent should pick this over list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.messages.updateA
Updates a message. There's a difference between the patch and update methods. The patch method uses a patch request while the update method uses a put request. We recommend using the patch method. For an example, see Update a message. Supports the following types of authentication: - App authentication with the authorization scope: - https://www.googleapis.com/auth/ch [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Message object accepting accessoryWidgets, actionResponse, annotations, argumentText, attachedGifs, attachment, cards, cardsV2 and 20 more fields; pass it via paramsor whole viabody_file` Siblings over the same resource: create, delete, get, list, patch, replaceCards, search.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{m | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Message object. | |
| updateMask | No | [query parameter] Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `text` - `att | |
| allowMissing | No | [query parameter] Optional. If `true` and the message isn't found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https: | |
| request_body | No | Request body of type Message: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| text | No | |
| cards | No | |
| space | No | |
| sender | No | |
| silent | No | |
| thread | No | |
| cardsV2 | No | |
| attachment | No | |
| createTime | No | |
| deleteTime | No | |
| matchedUrl | No | |
| annotations | No | |
| threadReply | No | |
| argumentText | No | |
| attachedGifs | No | |
| fallbackText | No | |
| markupSyntax | No | |
| slashCommand | No | |
| formattedText | No | |
| actionResponse | No | |
| lastUpdateTime | No | |
| accessoryWidgets | No | |
| deletionMetadata | No | |
| privateMessageViewer | No | |
| quotedMessageMetadata | No | |
| emojiReactionSummaries | No | |
| clientAssignedMessageId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does much of it: it names the HTTP PUT verb, warns the call is 'refused under --readonly safety profiles', notes authentication requirements, and says the API's response resource is returned as JSON. It omits mutation-side consequences such as what updateMask omitting fields does to existing content, which keeps it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core behavior and the patch-vs-update recommendation are front-loaded, and the sibling list at the end aids orientation. However the pasted auth-scope link fragment is truncated mid-URL and adds noise without usable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a large-nested-body mutation tool with an output schema, the description covers what matters: it is a write operation, its safety profile behavior, auth requirements, and where the response comes from. The main remaining gap is explaining updateMask/allowMissing interactions, which matter for a PUT-style update.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter including updateMask, allowMissing, params and body_file is already documented in structured data; the baseline is 3. The description only adds the routing note that the body can be passed via `params` or wholesale via `body_file`, and lists body fields that the schema already enumerates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates a message') and immediately distinguishes it from the sibling that does almost the same thing by explaining PATCH vs PUT semantics. An agent can tell update apart from patch, replaceCards and create without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly recommends the sibling `patch` method over this one and explains the mechanical difference (PATCH request vs PUT request), which is real routing guidance. It falls short of a 5 because it never says when `update` is the required choice — e.g. when full-replacement semantics are actually wanted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.patchA
Updates a space. For an example, see Update a space. If you're updating the displayName field and receive the error message ALREADY_EXISTS, try a different display name.. An existing space within the Google Workspace organization might already use this display name. Supports the following types of authentication: - App authentication with [administrator approval](https://support.g [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Space object accepting accessSettings, adminInstalled, createTime, customer, displayName, externalUserAllowed, importMode, importModeExpireTime and 13 more fields; pass it via params or whole via body_file Siblings over the same resource: completeImport, create, delete, findDirectMessage, findGroupChats, get, list, search, setup.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name of the space. Format: `spaces/{space}` Where `{space}` represents the system-assigned ID for the space. You can obtain the space ID by | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Space object. | |
| updateMask | No | [query parameter] Required. The updated field paths, comma separated if there are multiple. You can update the following fields for a space: `space_details`: Updates the space's | |
| request_body | No | Request body of type Space: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| useAdminAccess | No | [query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| type | No | |
| customer | No | |
| spaceUri | No | |
| threaded | No | |
| spaceType | No | |
| createTime | No | |
| importMode | No | |
| displayName | No | |
| spaceDetails | No | |
| accessSettings | No | |
| adminInstalled | No | |
| lastActiveTime | No | |
| membershipCount | No | |
| singleUserBotDm | No | |
| spaceHistoryState | No | |
| permissionSettings | No | |
| externalUserAllowed | No | |
| spaceThreadingState | No | |
| importModeExpireTime | No | |
| predefinedPermissionSettings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses it is a mutation ([HTTP PATCH]), that it is 'refused under --readonly safety profiles', that it returns the response resource as JSON, the authentication modes required, and the ALREADY_EXISTS failure mode. Permission specifics and reversibility are only partially covered, preventing a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded correctly with 'Updates a space', but the block is cluttered: a truncated auth link ('https://support.g'), a doubled period ('different display name..'), and a trailing sibling list that adds bulk without routing value. Useful content, but not tightly edited.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 8-parameter mutation with nested objects, the description covers auth, error handling, safety profile, and body/params mechanics adequately. An output schema exists, so the return-value note is supplementary rather than necessary; the definition is close to complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters, establishing a baseline of 3. The description adds the useful params-vs-body_file merge semantics and enumerates body fields, but does not explain updateMask behavior or the query/useAdminAccess parameters beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Updates a space', which cleanly separates it from create/delete/get on the same resource. It lists sibling tools sharing the resource but doesn't explicitly say what makes patch the right choice over them, keeping it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides scenario-specific guidance for the ALREADY_EXISTS error when updating displayName, which is genuinely useful. However, there is no explicit when-to-use vs. when-not-to-use guidance relative to the many siblings named, and no stated prerequisites beyond a partial authentication note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.searchB
Returns a list of spaces in a Google Workspace organization. For an example, see Search for and manage spaces. When use_admin_access is set to false, the results are limited to spaces where the calling user is a joined member. To search with administrator privileges, set use_admin_access to true. Supports the following types of authentication: - User authentication with [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: completeImport, create, delete, findDirectMessage, findGroupChats, get, list, patch, setup.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| orderBy | No | [query parameter] Optional. How the list of spaces is ordered. Supported attributes to order by are: - `membership_count.joined_direct_human_user_count` — Denotes the count of hu | |
| pageSize | No | [query parameter] The maximum number of spaces to return. The service may return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum value is 1000 | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] A token, received from the previous search spaces call. Provide this parameter to retrieve the subsequent page. When paginating, all other parameters provided s | |
| useAdminAccess | No | [query parameter] When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the [man |
Output Schema
| Name | Required | Description |
|---|---|---|
| spaces | No | |
| results | No | |
| totalSize | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden and does a good job covering authentication and admin-privilege behavior. It notes that non-admin access is limited to joined spaces and that admin access requires administrator privileges. It could be stronger by explicitly stating read-only/non-destructive behavior, though the HTTP GET and 'Returns a list' wording strongly imply it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, which is good. However, the description includes boilerplate example links, authentication links, generic request-body mechanics, and a sibling list that is not used for differentiation, so it is only moderately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers authentication and admin-access scope, and an output schema exists, so return-value details are not required. The main gap is that it does not explain the relationship between this search endpoint and `chat.spaces.list`, nor does it explain what 'search' means relative to listing spaces.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining the practical consequence of `use_admin_access=false`: results are limited to spaces where the calling user is a joined member. That adds useful semantic meaning, though other parameters are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource and operation: returning a list of Google Workspace Chat spaces. It also clarifies the admin vs non-admin scope of results. However, it does not distinguish this 'search' tool from the sibling `chat.spaces.list` tool, so the purpose is clear but sibling differentiation is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to set `use_admin_access` to true or false, but that is parameter behavior rather than tool-selection guidance. It does not say when to use this search tool instead of `chat.spaces.list`, `chat.spaces.get`, or other related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.setupA
Creates a space and adds specified users to it. The calling user is automatically added to the space, and shouldn't be specified as a membership in the request. For an example, see Set up a space with initial members. To specify the human members to add, add memberships with the appropriate membership.member.name. To add a human user, use users/{user}, where {user} can be the email address for the user. For users in the same Workspace organization {user} can also be the id for the person from the People API, or the id fo [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON SetUpSpaceRequest object accepting memberships, requestId, space; pass it via params or whole via body_file Siblings over the same resource: completeImport, create, delete, findDirectMessage, findGroupChats, get, list, patch, search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SetUpSpaceRequest object. | |
| request_body | No | Request body of type SetUpSpaceRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| type | No | |
| customer | No | |
| spaceUri | No | |
| threaded | No | |
| spaceType | No | |
| createTime | No | |
| importMode | No | |
| displayName | No | |
| spaceDetails | No | |
| accessSettings | No | |
| adminInstalled | No | |
| lastActiveTime | No | |
| membershipCount | No | |
| singleUserBotDm | No | |
| spaceHistoryState | No | |
| permissionSettings | No | |
| externalUserAllowed | No | |
| spaceThreadingState | No | |
| importModeExpireTime | No | |
| predefinedPermissionSettings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does disclose that this is an HTTP POST that creates or triggers a change and is refused under --readonly safety profiles. It also notes automatic caller membership and explains response/body handling, though it omits auth scopes and some side-effect details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the text is cluttered by a truncated documentation sentence and a generic appended block covering HTTP method, return format, body handling, and sibling names. Much of the appended material repeats schema information and does not help selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with full schema coverage and an output schema, the description covers the key call shape: a space plus memberships, with requestId, passed via params or body_file. It lacks explicit sibling-selection guidance, but the essential operational context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaningful semantics for memberships, including the users/{user} format and email/People API id usage, and warns not to include the calling user. It also clarifies that the SetUpSpaceRequest body can be passed via params or body_file.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names the exact action and resource: creates a space and adds specified users. That scope implicitly separates it from a plain space creation tool, but the description never explicitly contrasts it with chat.spaces.create, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful setup-specific guidance: the caller is auto-added and should not be included as a membership, and human members must use the users/{user} form. However, it gives no explicit when-to-use or when-not-to-use guidance relative to siblings such as create, completeImport, or findGroupChats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.spaceEvents.getB
Returns an event from a Google Chat space. The event payload contains the most recent version of the resource that changed. For example, if you request an event about a new message but the message was later updated, the server returns the updated Message resource in the event payload. Note: The permissionSettings field is not returned in the Space object of the Space event data for this request. Supports the following types of [authentication](https://developers.google.c [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the space event. Format: `spaces/{space}/spaceEvents/{spaceEvent}` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| eventTime | No | |
| eventType | No | |
| spaceUpdatedEventData | No | |
| messageCreatedEventData | No | |
| messageDeletedEventData | No | |
| messageUpdatedEventData | No | |
| reactionCreatedEventData | No | |
| reactionDeletedEventData | No | |
| membershipCreatedEventData | No | |
| membershipDeletedEventData | No | |
| membershipUpdatedEventData | No | |
| spaceBatchUpdatedEventData | No | |
| messageBatchCreatedEventData | No | |
| messageBatchDeletedEventData | No | |
| messageBatchUpdatedEventData | No | |
| reactionBatchCreatedEventData | No | |
| reactionBatchDeletedEventData | No | |
| membershipBatchCreatedEventData | No | |
| membershipBatchDeletedEventData | No | |
| membershipBatchUpdatedEventData | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose two genuinely non-obvious behaviors: the payload reflects the most recent version of the changed resource (not a historical snapshot), and `permissionSettings` is omitted from the Space object. The authentication sentence is cut off mid-URL, so the auth requirement is left unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the text is truncated mid-hyperlink ('developers.google.c') and then padded with generic wrapper boilerplate about HTTP GET and body files that is irrelevant to a parameterless GET request. Sentence count exceeds what the tool needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape needn't be explained, and the payload-recency caveat is a useful bonus. However, for a data-access call with zero annotations, the missing auth/permission requirement (the sentence is clipped) and the absent get-vs-list guidance leave real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the `name` format and the `query`/`params`/`dry_run`/`body_file` semantics are already documented structurally. The description adds nothing parameter-specific beyond the generic boilerplate about typed flags winning over the params map.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific verb and resource (returns an event from a Google Chat space), and the appended note 'Siblings over the same resource: list' explicitly separates it from chat.spaces.spaceEvents.list. It stops short of a 5 because the core purpose statement is largely reproduced API reference text rather than a tailored distinction from the many other chat getters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only routing signal is the closing fragment 'Siblings over the same resource: list', which implies this is the single-item counterpart to listing. There is no explicit 'use this when you already have a spaceEvent resource name' vs 'use list to discover events', and no stated prerequisites despite the required `name` pattern.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.spaces.spaceEvents.listB
Lists events from a Google Chat space. For each event, the payload contains the most recent version of the Chat resource. For example, if you list events about new space members, the server returns Membership resources that contain the latest membership details. If new members were removed during the requested period, the event payload contains an empty Membership resource. Supports the following types of [authentication](https://developers.google.com/workspace/chat/auth [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| filter | No | [query parameter] Required. A query filter. You must specify at least one event type (`event_type`) using the has `:` operator. To filter by multiple event types, use the `OR` op | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. Resource name of the [Google Chat space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces) where the events occurred. Format: | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of space events returned. The service might return fewer than this value. Negative values return an `INVALID_ARGUMENT` error. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous list space events call. Provide this to retrieve the subsequent page. When paginating, all other parameters pro |
Output Schema
| Name | Required | Description |
|---|---|---|
| spaceEvents | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the burden. It does meaningfully explain payload behavior (returns most recent resource version; empty Membership for removed members), which is real behavioral value. However, the authentication section is truncated/broken and pagination, permissions, and rate limits are not addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose, but the body contains a broken markdown link ('[authentication](... [HTTP GET]'), generic boilerplate about params/body_file that reads as template text, and a trailing fragment 'Siblings over the same resource: get.' The valuable payload example is diluted by clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, and the payload semantics are covered. But the authentication portion is truncated and pagination behavior is left entirely to the schema, leaving the description only partially complete for an 8-parameter list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented; the description adds no per-parameter meaning beyond what the schema provides. Baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists events from a Google Chat space') and ends by naming the sibling over the same resource ('Siblings over the same resource: get'). The payload semantics illustrate what 'event' means, though the opening distinguishes it clearly from get only partially.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions the sibling 'get' but does not state when to use list versus get, nor prerequisites. Usage is implied by 'lists events' and the filter requirement in the schema, but the description offers no explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.availability.getA
Returns availability information for a human user in Google Chat. For example, this can be used to check if a user is online or away, or to retrieve their custom status message. This method only retrieves the authenticated user's availability. Requires user authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.users.availability.readonly - https://www.googleapis.com/auth/chat.us [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the paramsmap), or read whole frombody_file` Siblings over the same resource: markAsActive, markAsAway, markAsDoNotDisturb, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the availability to retrieve. Format: users/{user}/availability `{user}` is the id for the Person in the People API or Admin SDK | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| state | No | |
| customStatus | No | |
| doNotDisturbMetadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that this is an HTTP GET read operation, requires user authentication, lists authorization scopes, and says the resource is returned as JSON; the remaining gaps are minor, such as rate limits or finer permission behavior beyond scopes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the sibling list is useful, but the text is structurally messy: the authorization scope list is truncated into an awkward fragment ('chat.us [HTTP GET].') and generic request-body/body_file boilerplate is appended even though this is a GET retrieval. These portions reduce clarity and add noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description does not need to explain return values. It covers the key invocation context: authentication requirement, scopes, read-only GET behavior, scope limitation to the authenticated user, and sibling alternatives. The truncated scope and generic boilerplate are minor completeness blemishes rather than missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters and the baseline is 3. The description adds a useful semantic constraint that only the authenticated user's availability is retrievable, but it does not add syntax or format details for the `name` parameter beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: returns availability information for a human user in Google Chat. It clarifies scope with examples and the constraint that it only retrieves the authenticated user's availability, and it names sibling methods over the same resource, so an agent can distinguish it from markAsActive, markAsAway, markAsDoNotDisturb, and patch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage context: checking whether a user is online, away, or has a custom status, and explicitly limits retrieval to the authenticated user's availability. It also lists sibling methods on the same resource, which helps route the agent away from this read operation when a state-changing action is intended, though it does not spell out 'use X instead when...' explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.availability.markAsActiveA
Marks user as ACTIVE in Google Chat. Sets the user's availability state to ACTIVE. The ACTIVE state lasts until the specified expiration, at which point the user's state becomes AWAY. Note that if the user is actively using Chat, the ACTIVE state duration may extend beyond the provided expiration. This method only updates the authenticated user's availability. Requires user authentication with authorization scope: - h [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON MarkAsActiveRequest object accepting expireTime, ttl; pass it via paramsor whole viabody_file` Siblings over the same resource: get, markAsAway, markAsDoNotDisturb, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the availability to mark as active. Format: users/{user}/availability `{user}` is the id for the Person in the People API or Admi | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON MarkAsActiveRequest object. | |
| request_body | No | Request body of type MarkAsActiveRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| state | No | |
| customStatus | No | |
| doNotDisturbMetadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden well: it explains the ACTIVE state expiration, the fallback to AWAY, the possibility of extension when the user is actively using Chat, authentication requirements, and that the operation is an HTTP POST refused under --readonly safety profiles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and state behavior, and most sentences add relevant context. However, it contains some redundancy and a malformed fragment around the HTTP POST/readonly note, which slightly reduces clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and an existing output schema, the description is complete enough: it covers state semantics, authentication, request-body handling, readonly refusal, and sibling alternatives. Return-value details can be safely omitted because an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already provides parameter documentation. The description adds useful invocation context by identifying the request body as MarkAsActiveRequest with expireTime and ttl fields and explaining that it can be passed via params or body_file, though it does not clarify the distinction between expireTime and ttl.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: marks the authenticated user as ACTIVE in Google Chat and sets their availability state. It also names the sibling methods over the same resource (get, markAsAway, markAsDoNotDisturb, patch), so an agent can distinguish this operation from related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clarifies that this method only updates the authenticated user's availability and requires user authentication with a specific authorization scope. It also lists sibling methods, which gives clear alternatives, though it stops short of explicitly saying when to choose markAsActive versus markAsAway or markAsDoNotDisturb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.availability.markAsAwayA
Marks user as AWAY in Google Chat. Sets the user's state to away and is not affected by the user's activity. This method only updates the authenticated user's availability. Requires user authentication with authorization scope: - https://www.googleapis.com/auth/chat.users.availability [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON MarkAsAwayRequest object; pass it via params or whole via body_file Siblings over the same resource: get, markAsActive, markAsDoNotDisturb, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the availability to mark as away. Format: users/{user}/availability `{user}` is the id for the Person in the People API or Admin | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON MarkAsAwayRequest object. | |
| request_body | No | Request body of type MarkAsAwayRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| state | No | |
| customStatus | No | |
| doNotDisturbMetadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the mutation semantics (HTTP POST), that it is refused under readonly safety profiles, the required auth scope, that the state is not affected by activity, and the response/request body type. It omits rate limits and reversibility nuances, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence and the rest supports selection and invocation. It is somewhat dense, mixing prose with CLI-oriented notes (--readonly profiles, params/body_file), but nearly every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists (so return values need not be explained) and the schema documents all parameters, the description still supplies the auth scope, scope-of-effect, mutation warning, and sibling routing an agent needs. Fully sufficient, with only minor gaps like reversibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds that the body is a JSON MarkAsAwayRequest and can be passed via params or body_file, which is minor contextual value but no new meaning about the name/query parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Marks user as AWAY'), clarifies it sets availability state and is unaffected by user activity. It explicitly names the sibling alternatives (get, markAsActive, markAsDoNotDisturb, patch), so an agent can distinguish it without consulting other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly scopes usage to the authenticated user only ('This method only updates the authenticated user's availability') and lists sibling operations for the same resource, giving context for choosing among them. It stops short of stating explicit when-not conditions beyond that scope restriction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.availability.markAsDoNotDisturbA
Marks user as DO_NOT_DISTURB in Google Chat. Sets a user's availability state to DO_NOT_DISTURB until a specified expiration time. When in DO_NOT_DISTURB, users typically won't receive notifications. This method only updates the authenticated user's availability. Requires user authentication with authorization scope: - https://www.googleapis.com/auth/chat.users.availability [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON MarkAsDoNotDisturbRequest object accepting expireTime, ttl; pass it via params or whole via body_file Siblings over the same resource: get, markAsActive, markAsAway, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the availability to mark as Do Not Disturb. Format: users/{user}/availability `{user}` is the id for the Person in the People API | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON MarkAsDoNotDisturbRequest object. | |
| request_body | No | Request body of type MarkAsDoNotDisturbRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| state | No | |
| customStatus | No | |
| doNotDisturbMetadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: it discloses the mutation ([HTTP POST]), that it is refused under --readonly safety profiles, the required user-authentication scope, the response shape (API resource as JSON), and the semantic effect of DO_NOT_DISTURB. This is exactly the behavioral context an agent needs and would not otherwise have.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and expiration semantics are front-loaded and the sentence count is modest. A few templated lines (query/params/body_file plumbing, 'pass it via params or whole via body_file') are boilerplate that repeat schema text, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and the description covers purpose, auth requirements, mutation safety, and the DO_NOT_DISTURB effect. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the params, body_file, and request_body fields are already documented in the schema. The description adds only marginal value by stating the body is a MarkAsDoNotDisturbRequest accepting expireTime and ttl, which the schema already conveys; the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (marks) and resource (user availability in Google Chat) with the concrete target value DO_NOT_DISTURB. It explicitly enumerates the sibling operations over the same resource (get, markAsActive, markAsAway, patch), so an agent can distinguish this tool without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context on when this applies: only the authenticated user's availability can be updated, and the effect (no notifications) is explained. It names sibling alternatives but does not state which condition should route to patch versus markAsAway, so routing guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.availability.patchA
Updates availability information for a human user. Only the custom_status field can be updated through this method. This method only updates the authenticated user's availability. Requires user authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.users.availability [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Availability object accepting customStatus, doNotDisturbMetadata, name, state; pass it via params or whole via body_file Siblings over the same resource: get, markAsActive, markAsAway, markAsDoNotDisturb.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name of the user's availability. Format: `users/{user}/availability` `{user}` is the id for the Person in the People API or Admin SDK direc | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Availability object. | |
| updateMask | No | [query parameter] Required. The list of fields to update. The only field that can be updated is `custom_status`. | |
| request_body | No | Request body of type Availability: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| state | No | |
| customStatus | No | |
| doNotDisturbMetadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the required auth scopes, that this is an HTTP PATCH refused under --readonly safety profiles (write/destructive nature), the single-updatable-field constraint, and the self-only targeting. It doesn't cover reversibility or field-preservation semantics, keeping it just short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loads the core purpose and the custom_status constraint, then layers auth and mechanics. The inlined scope URLs and safety-profile text are verbose but each element carries operational value, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with full schema coverage, an output schema, and nested body objects, the description supplies everything an agent needs: auth/scope requirements, write/safety behavior, updatable-field constraint, and how to pass the body. Return-value explanation is not needed since an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description adds meaning by naming the request-body fields (customStatus, doNotDisturbMetadata, name, state) and clarifying the params-vs-body_file mechanism for passing the body. It reinforces the schema's updateMask constraint rather than repeating blindly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Updates) and resource (availability information), the scope (for a human user, only the authenticated user), and a key constraint (only custom_status can be updated). It also names its siblings over the same resource, letting an agent distinguish it from get/markAsActive/markAsAway without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly explains the tool only updates the authenticated user's availability and only the custom_status field, which is strong context. However it lists the sibling methods (markAsActive, markAsAway, markAsDoNotDisturb) without explicitly routing the agent to them when those simpler state changes are desired.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.sections.createA
Creates a section in Google Chat. Sections help users group conversations and customize the list of spaces displayed in Chat navigation panel. Only sections of type CUSTOM_SECTION can be created. For details, see Create and organize sections in Google Chat. Requires user authentication with the authorization scope: - https://www.googleapis.com/auth/chat.users.sections [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleChatV1Section object accepting displayName, name, sortOrder, type; pass it via params or whole via body_file Siblings over the same resource: delete, list, patch, position.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The parent resource name where the section is created. Format: `users/{user}` | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleChatV1Section object. | |
| request_body | No | Request body of type GoogleChatV1Section: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| type | No | |
| sortOrder | No | |
| displayName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does well: it discloses the required user-authentication scope, the HTTP POST mutation semantics, that the operation is refused under --readonly safety profiles, and the response shape. It stops short of stating duplicate-name behavior or any per-user section limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the CUSTOM_SECTION constraint are front-loaded, and the auth/post/return details follow in a logical order. The auth and scope links plus the readonly note add bulk, though for an unannotated mutation tool that bulk is largely earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the hard parts for a create tool: auth scope, mutation semantics, readonly refusal, body fields, and sibling context; an output schema exists so return values need not be explained further. The remaining gap is that it never says which body fields (displayName?) are required versus optional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parent, request_body, params, body_file and dry_run, making 3 the baseline. The description does add one genuine semantic constraint absent from the schema — that the type enum must be CUSTOM_SECTION in practice — which lifts it slightly but not to a full 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates a section in Google Chat') and immediately explains what a section is and where it appears. The closing clause names the sibling operations over the same resource (delete, list, patch, position), so an agent can place it precisely among the alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a real selection constraint — only sections of type CUSTOM_SECTION can be created — which prevents a class of wrong calls. It also lists siblings, but only nominatively; it doesn't explicitly say when to reach for patch or position instead of create.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.sections.deleteA
Deletes a section of type CUSTOM_SECTION. If the section contains items, such as spaces, the items are moved to Google Chat's default sections and are not deleted. For details, see Create and organize sections in Google Chat. Requires user authentication with the authorization scope: - https://www.googleapis.com/auth/chat.users.sections [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, list, patch, position.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The name of the section to delete. Format: `users/{user}/sections/{section}` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses that deletion is irreversible, that contained items are relocated to default sections rather than destroyed, required user auth and scope, refusal under readonly profiles, and the post-delete return shape. This is rich behavioral context beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Key facts (delete, item relocation) are front-loaded and the sentences mostly earn their place. The HTTP DELETE / readonly-profile boilerplate and return-body mechanics add some length that is only loosely tied to the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a delete tool with no annotations but an output schema, the description supplies the missing pieces an agent needs: irreversible side effects, item relocation, auth/scope requirements, and return behavior. Nothing essential is omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are already documented. The description adds only a minor note on how typed params override the `params` map and on `body_file` usage, which is marginal beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Deletes a section of type `CUSTOM_SECTION`', and immediately clarifies the important caveat that contained items are moved, not deleted. The agent can tell exactly what this does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies deletion and lists sibling operations (create, list, patch, position) at the end, but only as a bare list — it never states when to use delete versus patch/position or any exclusions. Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.sections.items.listB
Lists items in a section. Only spaces can be section items. For details, see Create and organize sections in Google Chat. Requires user authentication with the authorization scope: - https://www.googleapis.com/auth/chat.users.sections - https://www.googleapis.com/auth/chat.users.sections.readonly [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: move.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| filter | No | [query parameter] Optional. A query filter. Currently only supports filtering by space. For example, `space = spaces/{space}`. Invalid queries are rejected with an `INVALID_ARGUM | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The parent, which is the section resource name that owns this collection of section items. Only supports listing section items for the calling user. W | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of section items to return. The service may return fewer than this value. If unspecified, at most 10 section items will be returned | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous list section items call. Provide this to retrieve the subsequent page. When paginating, all other parameters pr |
Output Schema
| Name | Required | Description |
|---|---|---|
| sectionItems | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose the auth requirement and both scopes plus HTTP GET, which implies a read operation. However, pagination behavior and the boilerplate about body_file/params maps are generic and not tailored to a GET listing operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded well, but the trailing boilerplate about request bodies, typed flags, body_file, and params maps is largely irrelevant for a GET and dilutes the useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, auth is covered, and all 8 params are documented in the schema. The description is complete enough for an agent to call it correctly, with only minor behavioral detail missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already fully documented, giving a baseline of 3. The description only adds the constraint that only spaces can be section items, marginal extra meaning over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a clear verb+resource ('Lists items in a section') and specifies the constraint that only spaces can be section items. It names the sibling 'move' over the same resource, giving some distinction, though differentiation is light.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and the 'only spaces can be section items' constraint, and it briefly points at the 'move' sibling. There is no explicit when-to-use versus alternatives or exclusions beyond that single reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.sections.items.moveA
Moves an item from one section to another. For example, if a section contains spaces, this method can be used to move a space to a different section. For details, see Create and organize sections in Google Chat. Requires user authentication with the authorization scope: - https://www.googleapis.com/auth/chat.users.sections [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON MoveSectionItemRequest object accepting targetSection; pass it via params or whole via body_file Siblings over the same resource: list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the section item to move. Format: `users/{user}/sections/{section}/items/{item}` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON MoveSectionItemRequest object. | |
| request_body | No | Request body of type MoveSectionItemRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sectionItem | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses that this is an HTTP POST mutation, that it requires user authentication with the chat.users.sections scope, and crucially that it is refused under --readonly safety profiles. It also states the return is the API response resource as JSON, so the agent knows the shape of the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and example are front-loaded, followed by auth, safety and body details in a compact block. Slightly dense with linked references and redundant re-explanation of params/body_file, but every sentence still carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and an existing output schema, the description supplies the missing safety, auth and request-body context the schema cannot. It omits the resource-name format for the item being moved, though the schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the required `name` path format is already fully documented. The description adds only the request-body detail (MoveSectionItemRequest with targetSection, passable via params or body_file), which the schema descriptions also state, so the incremental value is small.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: 'Moves an item from one section to another', and the space example grounds it in concrete Chat objects. It never names the closest sibling (chat.users.sections.position) or the listing sibling, so differentiation relies on the agent inferring it from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'if a section contains spaces, move a space to a different section' example implies when this applies and the destination section is supplied via targetSection. There is no explicit when-not-to-use guidance and no pointer to chat.users.sections.position for reordering within a section, which is the most likely confusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.sections.listA
Lists sections available to the Chat user. Sections help users group their conversations and customize the list of spaces displayed in Chat navigation panel. For details, see Create and organize sections in Google Chat. Requires user authentication with the authorization scope: - https://www.googleapis.com/auth/chat.users.sections - https://www.googleapis.com/auth/chat.users [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the paramsmap), or read whole frombody_file` Siblings over the same resource: create, delete, patch, position.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | Yes | [URL path segment] Required. The parent, which is the user resource name that owns this collection of sections. Only supports listing sections for the calling user. To refer to th | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of sections to return. The service may return fewer than this value. If unspecified, at most 10 sections will be returned. The maxi | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous list sections call. Provide this to retrieve the subsequent page. When paginating, all other parameters provide |
Output Schema
| Name | Required | Description |
|---|---|---|
| sections | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses required user authentication and specific authorization scopes, and notes the HTTP GET method (implying read-only). However, it does not cover rate limits, error behavior, or side effects, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is mostly front-loaded with the core purpose and includes relevant context (definition of sections, auth scopes, siblings). However, the explanation of request body construction is tangential for a GET operation and the support link, while helpful, could be considered extraneous. Overall it is reasonably concise but could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and the input schema fully documents parameters (100% coverage), the description provides sufficient context for an agent to invoke the tool: it states the operation, required auth, HTTP method, and sibling alternatives. Minor gaps in usage guidance are tolerable given the schema richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds only meta-information about how request bodies are constructed (typed parameters vs. params map or body_file), which does not clarify the meaning of individual parameters. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb (Lists) and resource (sections), along with scope (available to the Chat user). It also explicitly names the sibling operations (create, delete, patch, position) over the same resource, distinguishing this listing tool from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this is the list operation and notes the existence of sibling operations, but does not explicitly state when to use this tool versus alternatives (e.g., 'use this to retrieve all sections; use create to make a new one'). No explicit when/when-not guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.sections.patchA
Updates a section. Only sections of type CUSTOM_SECTION can be updated. For details, see Create and organize sections in Google Chat. Requires user authentication with the authorization scope: - https://www.googleapis.com/auth/chat.users.sections [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GoogleChatV1Section object accepting displayName, name, sortOrder, type; pass it via params or whole via body_file Siblings over the same resource: create, delete, list, position.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. Resource name of the section. For system sections, the section ID is a constant string: - DEFAULT_DIRECT_MESSAGES: `users/{user}/sections/default-di | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleChatV1Section object. | |
| updateMask | No | [query parameter] Required. The mask to specify which fields to update. Currently supported field paths: - `display_name` | |
| request_body | No | Request body of type GoogleChatV1Section: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| type | No | |
| sortOrder | No | |
| displayName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the HTTP PATCH semantics, the required user-auth scope, that the call is 'refused under --readonly safety profiles', and that the response is the API resource as JSON. It does not state whether the operation is idempotent or what happens to fields omitted from the mask, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core statement and constraint are correctly front-loaded, but the rest is a dense run-on paragraph mixing long auth URLs, scope strings, and a trailing sibling list with no structural breaks. Every element is relevant, yet the formatting makes it harder to scan than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be re-explained, and the description still covers auth, scope, read-only refusal, and body construction. For a spec-style PATCH tool this is close to complete; only mutation edge cases (untouched fields, mask interaction) are left implicit in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real meaning: the body's accepted fields (displayName, name, sortOrder, type), the `params` vs `body_file` routing, and the constraint tying `type` to CUSTOM_SECTION. That enriches the `type` and body parameters beyond their schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Updates') and resource ('a section') and adds a decisive scope constraint: only `CUSTOM_SECTION` sections can be updated. It also names the sibling operations over the same resource (create, delete, list, position), so the agent can place it in the family, though it doesn't contrast conditions as sharply as naming a single alternative would.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the eligibility precondition (only `CUSTOM_SECTION` type) and the authentication/scope requirement, which is the main gate an agent must check before calling. Sibling names are listed as alternatives, but there is no explicit 'use X instead when…' clause.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.sections.positionA
Changes the sort order of a section. For details, see Create and organize sections in Google Chat. Requires user authentication with the authorization scope: - https://www.googleapis.com/auth/chat.users.sections [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON PositionSectionRequest object accepting relativePosition, sortOrder; pass it via params or whole via body_file Siblings over the same resource: create, delete, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. The resource name of the section to position. Format: `users/{user}/sections/{section}` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON PositionSectionRequest object. | |
| request_body | No | Request body of type PositionSectionRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| section | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it names the required OAuth scope, states the HTTP verb (POST), warns the call is refused under --readonly safety profiles, and says it returns the API's response resource as JSON. It stops short of stating whether the operation is idempotent or what happens if sortOrder and relativePosition conflict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The action is front-loaded in the first clause, then auth, transport, and body mechanics follow in a logical order. It is dense with links and scope URLs but each block (purpose, auth, HTTP behavior, body, siblings) earns its place; the doc link is the only soft filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and a 6-parameter schema including a nested body, the description covers auth requirements, mutation semantics, the readonly safeguard, and body mechanics, and an output schema exists so return values need not be spelled out. Only idempotency/error behavior is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents 'name', 'dry_run', 'body_file', and the PositionSectionRequest fields, establishing a baseline of 3. The description reinforces the body shape (relativePosition, sortOrder) and the params-vs-body_file routing, adding marginal value but nothing the schema doesn't already state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a precise verb and resource: 'Changes the sort order of a section,' which is clearly distinct from renaming (patch) or adding (create). It closes by enumerating the other operations on the resource (create, delete, list, patch), but doesn't explain how 'position' differs semantically from 'patch', so sibling differentiation is listed rather than argued.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb 'changes the sort order' and by the sibling roster, but there is no explicit statement of when to call this instead of chat.users.sections.patch or items.move. The authentication-scope and readonly-refusal notes are useful constraints but are behavioral, not selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.spaces.getSpaceReadStateA
Returns details about a user's read state within a space, used to identify read and unread messages. For an example, see Get details about a user's space read state. Requires user authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.users.readstate.readonly - https://www.googleapis.com/auth/chat.users.readstat [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the paramsmap), or read whole frombody_file` Siblings over the same resource: updateSpaceReadState.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Resource name of the space read state to retrieve. Only supports getting read state for the calling user. To refer to the calling user, set one of the | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lastReadTime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and mostly succeeds: it discloses the auth flow, specific authorization scopes, the read-only scope hint, the calling-user-only restriction, and the HTTP GET/JSON return shape. It falls short of describing error behavior or rate limits, but the safety and auth profile is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded well, but the text is cluttered by a truncated scope list and generic HTTP boilerplate about `body_file` and typed flags that is irrelevant for a GET. The truncation ('chat.users.readstat') and mixed-in transport notes dilute an otherwise tight core sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description covers auth, scoping, and the resource pattern. Together with the schema this is enough for correct invocation; only minor gaps like pagination or error semantics remain, which are not especially relevant for a single-resource getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the name pattern and each parameter. The description reinforces the calling-user scoping on `name` but adds little else param-specific; the generic body-building note is boilerplate that does not clarify this tool's parameters. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns details about a user's read state within a space') and ties it to a concrete outcome ('used to identify read and unread messages'). Sibling differentiation is explicit at the end: 'Siblings over the same resource: updateSpaceReadState', so an agent can route between get and update without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Auth requirements and scope list give clear prerequisites, and the resource name constraint ('Only supports getting read state for the calling user') frames when this tool applies. There is no explicit when-not guidance, but the sibling named at the end is a good enough redirect for the update case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.spaces.spaceNotificationSetting.getA
Gets the space notification setting. For an example, see Get the caller's space notification setting. Requires user authentication with the authorization scope: - https://www.googleapis.com/auth/chat.users.spacesettings [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: patch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Format: users/{user}/spaces/{space}/spaceNotificationSetting - `users/me/spaces/{space}/spaceNotificationSetting`, OR - `users/user@example.com/spaces | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| muteSetting | No | |
| notificationSetting | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden, and it discloses the HTTP GET method, that user authentication with a specific OAuth scope is required, and links to an example. It does not discuss rate limits or idempotency, but for a read operation the auth/scope disclosure is solid added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and sibling note are front-loaded, but the trailing sentence about body_file / params map and 'Returns the requested resource as JSON' is boilerplate that is largely irrelevant to a GET request, diluting the useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and 100% schema coverage, the description need not explain return values. It covers the essential context an agent needs (auth scope, GET method, sibling mutation tool), though the request-body boilerplate is noise for this read-only endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters including the required 'name' pattern are documented in the schema. The description adds almost nothing param-specific beyond the generic boilerplate about typed parameters winning over the params map; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Gets) and resource (the space notification setting) and explicitly distinguishes from its sibling 'patch' over the same resource. The scope (the caller's setting, per the resourcename users/{user}/spaces/{space}/...NotificationSetting) is inferable but not spelled out in prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The line 'Siblings over the same resource: patch' implies this is the read counterpart to the write operation, giving implicit when-to-use guidance. However, there is no explicit statement of when to use this versus alternatives, no prerequisites beyond auth, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.spaces.spaceNotificationSetting.patchA
Updates the space notification setting. For an example, see Update the caller's space notification setting. Requires user authentication with the authorization scope: - https://www.googleapis.com/auth/chat.users.spacesettings [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON SpaceNotificationSetting object accepting muteSetting, name, notificationSetting; pass it via params or whole via body_file Siblings over the same resource: get.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Identifier. The resource name of the space notification setting. Format: `users/{user}/spaces/{space}/spaceNotificationSetting`. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SpaceNotificationSetting object. | |
| updateMask | No | [query parameter] Required. Supported field paths: - `notification_setting` - `mute_setting` | |
| request_body | No | Request body of type SpaceNotificationSetting: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| muteSetting | No | |
| notificationSetting | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden well: it discloses HTTP PATCH semantics, required user authentication and authorization scope, refusal under readonly safety profiles, and JSON response behavior. It does not explicitly describe reversibility or partial-update semantics beyond PATCH, but the key operational and auth constraints are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then provides necessary auth, body, and sibling context. It is fairly dense with links and details, but each sentence contributes useful operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations but rich schema and output schema support, the description covers the key missing context: authentication, scope, PATCH behavior, readonly refusal, and body format. It does not explain every schema detail, but the schema already handles those, making the description sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters thoroughly. The description reinforces that the body accepts `muteSetting`, `name`, and `notificationSetting` and can be passed via `params` or `body_file`, but it does not add substantial new parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: it updates the space notification setting. It also explicitly identifies the sibling `get` over the same resource, so an agent can distinguish read versus update behavior without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear this is the update operation for a space notification setting and names the `get` sibling for the same resource. It does not spell out explicit when-not conditions, but the usage context is clear enough for an agent to choose between get and patch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.spaces.threads.getThreadReadStateA
Returns details about a user's read state within a thread, used to identify read and unread messages. For an example, see Get details about a user's thread read state. Requires user authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.users.readstate.readonly - https://www.googleapis.com/auth/chat.users.reads [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the paramsmap), or read whole frombody_file`
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Required. Resource name of the thread read state to retrieve. Only supports getting read state for the calling user. To refer to the calling user, set one of th | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lastReadTime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description steps up: it names the HTTP method (GET), the required user authentication, and the exact authorization scopes, which tells the agent this is a safe per-user read. It omits a couple of behavioral facts (only the calling user's state is supported, though the schema covers that) and the trailing boilerplate about `body_file`/request bodies is irrelevant noise for a bodyless GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence and use case are well front-loaded, and the auth/scope block is legitimate. However, the trailing wrapper boilerplate about request bodies being built from typed parameters or `body_file` is dead weight on a GET request and slightly muddies the read-only picture.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and auth plus method are disclosed. What remains is minor: no note that only the caller's own read state can be fetched and no sibling differentiation, but an agent could call this correctly from what is given.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the `name` parameter's pattern and semantics are fully documented in the schema, so the baseline applies. The description adds nothing about parameter format or the wildcard/substitution rules for the calling user.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns details about a user's read state within a thread,' plus the practical intent ('identify read and unread messages'). It is distinguishable from the sibling chat.users.spaces.getSpaceReadState by the thread-level scope, though the description never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Used to identify read and unread messages' hints at when to reach for it, and the auth scope requirement narrows applicability. But there is no explicit when-not guidance or routing to the space-level counterpart, leaving the choice between the read-state tools to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat.users.spaces.updateSpaceReadStateA
Updates a user's read state within a space, used to identify read and unread messages. For an example, see Update a user's space read state. Requires user authentication with the authorization scope: - https://www.googleapis.com/auth/chat.users.readstate [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON SpaceReadState object accepting lastReadTime, name; pass it via params or whole via body_file Siblings over the same resource: getSpaceReadState.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] Resource name of the space read state. Format: `users/{user}/spaces/{space}/spaceReadState` | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SpaceReadState object. | |
| updateMask | No | [query parameter] Required. The field paths to update. Currently supported field paths: - `last_read_time` When the `last_read_time` is before the latest message create time, the | |
| request_body | No | Request body of type SpaceReadState: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lastReadTime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses the required user auth scope, states that it is an HTTP PATCH, notes refusal under --readonly safety profiles, and describes the returned resource. It does not cover rate limits or idempotency, but the key safety and auth context is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the description is information-dense rather than padded. It is somewhat run-on in the latter half, where HTTP method, return value, body handling, and sibling guidance are packed together, but every part remains useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema, output schema, and zero annotations, the description supplies the missing behavioral context: authentication, scope, HTTP method, readonly refusal, body handling, and sibling relationship. An agent has enough information to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds some body-routing context by noting that the SpaceReadState body accepts lastReadTime and name and can be passed via params or body_file, but that largely repeats schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it updates a user's read state within a space. It also clarifies the effect, identifying read and unread messages, and names the sibling getSpaceReadState, so the agent can distinguish this mutation from the read counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for use and identifies the sibling getSpaceReadState over the same resource. It does not explicitly say when to choose getSpaceReadState versus this update tool, but the update-versus-read distinction is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs.documents.batchUpdateA
Applies one or more updates to the document. Each request is validated before being applied. If any request is not valid, then the entire request will fail and nothing will be applied. Some requests have replies to give you some information about how they are applied. Other requests do not need to return information; these each return an empty reply. The order of replies matches that of the requests. For example, suppose you call batchUpdate with four updates, and only the third one returns information. The response would have two empty replies, the reply to the third request, and another empt [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchUpdateDocumentRequest object accepting requests, writeControl; pass it via params or whole via body_file Siblings over the same resource: create, get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdateDocumentRequest object. | |
| documentId | Yes | [URL path segment] The ID of the document to update. | |
| request_body | No | Request body of type BatchUpdateDocumentRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| replies | No | |
| documentId | No | |
| writeControl | No | |
| commentUpdateState | No | |
| suggestionResponses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden and does so well: it discloses all-or-nothing validation, reply ordering, HTTP POST mutation semantics, and refusal under read-only safety profiles. It does not cover auth requirements or quotas, but it gives the agent the key behavioral traits for invoking this mutation safely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and atomicity, which is good, but it spends several sentences explaining reply ordering in detail even though an output schema exists. It also contains a visibly truncated phrase ('another empt') followed by appended harness metadata, which makes the overall structure feel less polished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex batch mutation tool with a large nested request schema and an output schema, the description covers the essential context: atomic validation, request body shape, response behavior, and mutation safety. The schema supplies the detailed request types and parameter semantics, so the description is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the parameters thoroughly. The description adds that the request body accepts requests and writeControl and can be supplied via params or body_file, but this largely repeats what the schema descriptions state. Baseline 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it applies one or more updates to a document. It also names the sibling operations on the same resource (create, get), though it does not explicitly contrast batchUpdate with them. The purpose is clear enough for an agent to identify it as the document-mutation operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Applies one or more updates to the document' and by the sibling list, but there is no explicit guidance about when to choose batchUpdate versus create/get or other update mechanisms. The atomic-failure behavior is useful context but is not usage guidance. It is minimum viable rather than explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs.documents.createA
Creates a blank document using the title given in the request. Other fields in the request, including any provided content, are ignored. Returns the created document [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Document object accepting body, comments, commentsViewMode, documentId, documentStyle, footers, footnotes, headers and 12 more fields; pass it via params or whole via body_file Siblings over the same resource: batchUpdate, get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Document object. | |
| request_body | No | Request body of type Document: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | No | |
| tabs | No | |
| lists | No | |
| title | No | |
| footers | No | |
| headers | No | |
| comments | No | |
| footnotes | No | |
| documentId | No | |
| revisionId | No | |
| namedRanges | No | |
| namedStyles | No | |
| suggestions | No | |
| documentStyle | No | |
| inlineObjects | No | |
| commentsViewMode | No | |
| positionedObjects | No | |
| suggestionsViewMode | No | |
| suggestedNamedStylesChanges | No | |
| suggestedDocumentStyleChanges | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it flags the operation as HTTP POST / mutating, and explicitly warns it is 'refused under --readonly safety profiles' and that content fields are silently ignored. It stops short of stating auth scopes or where the new document lands in Drive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are perfectly front-loaded and earn their place, but the second half is a dense run-on that mixes HTTP verb metadata, a redundant field enumeration already present in the schema, and transport mechanics. Tightening the field list would improve it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be described, and the schema fully documents all five parameters; the description supplies the non-obvious parts (mutation, read-only refusal, ignored fields, body delivery routes). Missing only incidental context such as required OAuth scope or destination folder.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond it: only `title` in the Document body takes effect, and the body can be supplied either merged through `params` or wholesale via `body_file`. The trailing enumeration of Document fields ('body, comments, commentsViewMode ... and 12 more') mostly duplicates the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates a blank document') plus the crucial scope constraint that only the title is honored and 'other fields ... including any provided content, are ignored.' That caveat alone disambiguates it from batchUpdate/get, which are named as same-resource siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the sibling operations (batchUpdate, get) over the same resource, which implies the read/append/modify split, but never says when to choose this over them or over alternatives like copying a template with drive.files.copy. Usage is implied rather than stated as a when/when-not rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs.documents.getB
Gets the latest version of the specified document [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchUpdate, create.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| documentId | Yes | [URL path segment] The ID of the document to retrieve. | |
| commentsViewMode | No | [query parameter] The comments view mode to apply to the document. This allows viewing the document with comments omitted or included. If one is not specified, COMMENTS_VIEW_MODE Values: `COMMENTS_VIEW_MODE_UNSPECIFIED` = The CommentsViewMode is unspecified. COMMENTS_VIEW_MODE_OMITTED is applied.; `COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS` = The CommentsViewMode applied to the returned document depends on the user's current access level. If the user only has view access, COMMENTS_VIEW_MODE_OMITTED is applied. Otherwise, COMMENTS_VIEW_MODE_INCLUDED is applied.; `COMMENTS_VIEW_MODE_OMITTED` = The returned document has comments omitted.; `COMMENTS_VIEW_MODE_INCLUDED` = The returned document has comments included. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view comments. When set, suggestions_view_mode must also be set to SUGGESTIONS_INLINE. Returns a 400 bad request error otherwise.. | |
| includeTabsContent | No | [query parameter] Whether to populate the `Document.tabs` field instead of the text content fields like `body` and `documentStyle` on `Document`. - When `true`: Document content | |
| suggestionsViewMode | No | [query parameter] The suggestions view mode to apply to the document. This allows viewing the document with all suggestions inline, accepted or rejected. If one is not specified, Values: `DEFAULT_FOR_CURRENT_ACCESS` = The SuggestionsViewMode applied to the returned document depends on the user's current access level. If the user only has view access, PREVIEW_WITHOUT_SUGGESTIONS is applied. Otherwise, SUGGESTIONS_INLINE is applied. This is the default suggestions view mode.; `SUGGESTIONS_INLINE` = The returned document has suggestions inline. Suggested changes will be differentiated from base content within the document. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view suggested changes.; `PREVIEW_SUGGESTIONS_ACCEPTED` = The returned document is a preview with all suggested changes accepted. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view suggested changes.; `PREVIEW_WITHOUT_SUGGESTIONS` = The returned document is a preview with all suggested changes rejected if there are any suggestions in the document.. |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | No | |
| tabs | No | |
| lists | No | |
| title | No | |
| footers | No | |
| headers | No | |
| comments | No | |
| footnotes | No | |
| documentId | No | |
| revisionId | No | |
| namedRanges | No | |
| namedStyles | No | |
| suggestions | No | |
| documentStyle | No | |
| inlineObjects | No | |
| commentsViewMode | No | |
| positionedObjects | No | |
| suggestionsViewMode | No | |
| suggestedNamedStylesChanges | No | |
| suggestedDocumentStyleChanges | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose that this is an [HTTP GET] returning JSON, which establishes a safe read operation, but says nothing about permission requirements, quota behavior, or error conditions (the 403/400 cases for commentsViewMode live only in the schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the sibling note is useful, but the middle sentence about building request bodies from typed parameters or reading from body_file is irrelevant boilerplate for a GET and adds confusion about whether a body is expected.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters at 100% schema coverage and an output schema documenting the returned Document, the description need not explain fields or return shape. It is nearly complete for a read operation, missing only an indication of required access to the document.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description only adds generic template mechanics ('typed flags win over the params map', body_file) and provides no document-specific explanation of the meaningful flags like commentsViewMode, suggestionsViewMode, or includeTabsContent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets the latest version of the specified document') and explicitly names the sibling operations over the same resource (batchUpdate, create), so an agent can distinguish it. The trailing boilerplate about request bodies dilutes but does not obscure the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming batchUpdate and create as siblings implies that this tool is the read path, but the description never states when to prefer this over those or over other read paths such as drive.files.get or export. Usage is inferable from the operation names rather than explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.about.getC
Gets information about the user, the user's Drive, and system capabilities. For more information, see Return user info. Required: The fields parameter must be set. To return the exact fields you need, see Return specific fields [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| user | No | |
| driveThemes | No | |
| appInstalled | No | |
| storageQuota | No | |
| exportFormats | No | |
| importFormats | No | |
| maxUploadSize | No | |
| maxImportSizes | No | |
| canCreateDrives | No | |
| teamDriveThemes | No | |
| folderColorPalette | No | |
| canCreateTeamDrives | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose HTTP GET and JSON output, but it also adds generic boilerplate about request bodies and `body_file` for a read-only GET, and asserts a required `fields` parameter that the schema lacks. Auth scope, rate limits, and the actual shape of the response are unaddressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the description then drifts into documentation links and request-construction boilerplate that is irrelevant to a GET. Sentences like the body_file clause do not earn their place for this endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained. However, the critical `fields` requirement is stated in prose but missing from the schema, leaving a real gap between what the description demands and what an agent can actually pass. For a tool whose sole real input is a field mask, this is a significant omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3, but the description's only parameter claim ('fields must be set') references a parameter absent from the schema. This actively misleads an agent about what to supply, and the description adds nothing about the generic query/params/body_file plumbing beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Gets') and resource ('information about the user, the user's Drive, and system capabilities'), which is meaningfully distinct from file/drive CRUD siblings. It does not explicitly contrast with neighbors like drive.files.get or drive.drives.get, so an agent must infer the boundary from the 'about' phrasing alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over drive.files.get or drive.drives.get, nor any exclusions. The only directive is 'the fields parameter must be set,' which is not reflected in the input schema (no `fields` property exists, required count is 0), making the guidance misleading rather than useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.accessproposals.getA
Retrieves an access proposal by ID. For more information, see Manage pending access proposals [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: list, resolve.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] Required. The ID of the item the request is on. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| proposalId | Yes | [URL path segment] Required. The ID of the access proposal to resolve. |
Output Schema
| Name | Required | Description |
|---|---|---|
| fileId | No | |
| createTime | No | |
| proposalId | No | |
| rolesAndViews | No | |
| requestMessage | No | |
| recipientEmailAddress | No | |
| requesterEmailAddress | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden. It does disclose that this is an HTTP GET returning JSON, and explains the parameter-merging precedence (typed flags win over `params`, or read whole from `body_file`), which is useful context. It says nothing about permission requirements or error/not-found behavior for a proposal lookup, so the disclosure is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence and the doc link is tucked at the end. However, the sentence about request bodies being built from typed parameters or `body_file` is largely boilerplate for a bodyless GET and consumes attention disproportionately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and schema coverage is complete for the two required IDs. A documentation link is provided for further detail, which is appropriate for a narrowly scoped single-resource get.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents fileId and proposalId as required URL path segments. The description adds only the merge-precedence rule for `params` vs typed parameters and `body_file`, which is marginal added meaning; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: 'Retrieves an access proposal by ID.' It also names the sibling operations on the same resource (list, resolve), so an agent can place it in the family, though it does not explain how get differs functionally from resolve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trailing 'Siblings over the same resource: list, resolve' hints that this is the read-one-of-many operation, but there is no explicit when-to-use/when-not guidance or prerequisite information. The agent must infer that list enumerates and resolve acts, leaving usage implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.accessproposals.listA
List the access proposals on a file. For more information, see Manage pending access proposals. Note: Only approvers are able to list access proposals on a file. If the user isn't an approver, a 403 error is returned [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get, resolve.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] Required. The ID of the item the request is on. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The number of results per page. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. The continuation token on the list of access requests. |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextPageToken | No | |
| accessProposals | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the key behavioral traits: read-only HTTP GET, JSON response, and a hard authorization gate that produces a 403. It stops short of describing pagination behavior or ordering of returned proposals, which is the only remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first three sentences are front-loaded and waste nothing. The trailing sentence about request bodies, body_file, and typed-vs-params precedence is template boilerplate irrelevant to a GET list endpoint and dilutes the useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values need no explanation, and the description supplies the one non-obvious fact an agent would otherwise miss: the approver-only permission requirement. What remains — pagination semantics beyond the schema text — is minor for a 7-parameter list call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so fileId, pageSize, and pageToken are already documented in the schema and the baseline is 3. The note that typed flags win over the `params` map restates the schema's own wording for `params` rather than adding new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb (List) and resource (access proposals) scoped to a single file, which is exactly what an agent needs. It also names the sibling operations on the same resource (get, resolve), so the agent can place this tool in the family without inspecting other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete precondition — only approvers may list, otherwise a 403 is returned — which is genuine routing guidance. It does not explicitly say when to prefer get or resolve over list, but the read-many nature of the tool makes that inference cheap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.accessproposals.resolveA
Approves or denies an access proposal. For more information, see Manage pending access proposals [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ResolveAccessProposalRequest object accepting action, role, sendNotification, view; pass it via params or whole via body_file Siblings over the same resource: get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] Required. The ID of the item the request is on. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ResolveAccessProposalRequest object. | |
| proposalId | Yes | [URL path segment] Required. The ID of the access proposal to resolve. | |
| request_body | No | Request body of type ResolveAccessProposalRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that this is an HTTP POST that creates/triggers a change, that it is refused under --readonly safety profiles, and that it returns the API response resource as JSON. It stops short of stating permission requirements or that accept/deny decisions are not reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the rest is compact. Some bracket artifacts ('[HTTP POST]') and an inline link add noise without adding meaning, keeping it out of the top band.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-param mutation with a nested body object and no output schema, the definition covers the mutation semantics, safety-profile behavior, body shape, and delivery mechanism. Missing only permission/irreversibility context and any description of the returned response resource.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so field meanings are already documented; the description restates the body fields (action, role, sendNotification, view) and the params-vs-body_file delivery options, which largely duplicates the schema's own request_body text. Baseline 3 is appropriate for a fully documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair ('Approves or denies') and the exact resource ('an access proposal'), then names the sibling read operations (get, list) so the write-vs-read split is obvious. An agent can select this without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It points at the pending-access guide and distinguishes itself from the get/list siblings, implying 'use this to act on an existing proposal.' However, it never addresses the far more likely confusion with the sibling tools drive.approvals.approve and drive.approvals.decline, and gives no preconditions (e.g., proposal must be pending, caller must have edit rights).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.approvals.approveA
Approves an approval. For more information, see Manage approvals. This is used to update the ReviewerResponse of the requesting user with a Response of APPROVED. If this is the last required reviewer response, this also completes the approval and sets the approval Status to APPROVED [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ApproveApprovalRequest object accepting message; pass it via params or whole via body_file Siblings over the same resource: cancel, comment, decline, get, list, reassign, start.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] Required. The ID of the file that the approval is on. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ApproveApprovalRequest object. | |
| approvalId | Yes | [URL path segment] Required. The ID of the approval to approve. | |
| request_body | No | Request body of type ApproveApprovalRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| status | No | |
| dueTime | No | |
| initiator | No | |
| approvalId | No | |
| createTime | No | |
| modifyTime | No | |
| completeTime | No | |
| targetFileId | No | |
| reviewerResponses | No | |
| fileContentChangeBehavior | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the HTTP POST mutation, the refusal under --readonly safety profiles, the conditional side effect of completing the approval (Status APPROVED) when this is the last required reviewer, and that the API response resource is returned as JSON. Gaps remain on permissions/authorization and idempotency of re-approving.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: the effect comes first, then side effects, then transport/safety notes, then the sibling routing list. Every clause (mutation semantics, readonly refusal, body routing, siblings) carries information; nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values needn't be explained, and the description covers mutation semantics, side effects, body construction, and siblings — enough for a 7-parameter tool. The notable remaining gap is authorization: who may approve and what happens if the caller is not the reviewer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both required path parameters (fileId, approvalId) are documented in the schema, so the baseline is 3. The description does explain the ApproveApprovalRequest body shape and the params vs body_file routing, but it largely restates what the schema descriptions already say.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Approves an approval') and immediately clarifies the exact effect: updating the requesting user's ReviewerResponse to APPROVED, and completing the approval when it is the last required response. It also enumerates the sibling operations on the same resource (cancel, comment, decline, get, list, reassign, start), so an agent can distinguish it from drive.approvals.decline without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the effect described (act as a reviewer to approve), and the readonly-profile refusal note tells the agent when the call will fail. However, the sibling names are listed without conditions — nothing says when to pick decline or reassign instead, or what permission the caller needs to approve.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.approvals.cancelA
Cancels an approval. For more information, see Manage approvals. Updates the approval Status to CANCELLED. This can be called by any user with the writer permission on the file while the approval Status is IN_PROGRESS [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CancelApprovalRequest object accepting message; pass it via params or whole via body_file Siblings over the same resource: approve, comment, decline, get, list, reassign, start.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] Required. The ID of the file that the approval is on. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CancelApprovalRequest object. | |
| approvalId | Yes | [URL path segment] Required. The ID of the approval to cancel. | |
| request_body | No | Request body of type CancelApprovalRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| status | No | |
| dueTime | No | |
| initiator | No | |
| approvalId | No | |
| createTime | No | |
| modifyTime | No | |
| completeTime | No | |
| targetFileId | No | |
| reviewerResponses | No | |
| fileContentChangeBehavior | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and mostly delivers: HTTP verb, authorization level, state precondition, and the fact that it is refused under `--readonly` safety profiles. It stops short of saying whether cancellation is reversible or whether approvers are notified, which matters for a mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core verb and effect lead, and the constraints follow logically; every clause carries information. It is somewhat dense — a doc link, an HTTP verb tag, and a safety-profile note crammed into one run-on stretch — which costs a bit of readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation on a nested resource with an output schema present, the definition covers permission, precondition, safety refusal, and body-passing mechanics — everything an agent needs to call it correctly without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so `fileId`, `approvalId`, `params`, `body_file`, and the `message` field are already documented in the schema. The description more or less restates that plumbing (body via `params` or `body_file`) without adding format or semantics beyond it, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Cancels an approval") and pins down the exact state transition (Status to `CANCELLED`), so the effect is unambiguous. It also enumerates the sibling operations over the same resource, letting an agent distinguish cancel from approve/decline/get without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete preconditions: caller needs `writer` permission and the approval must be `IN_PROGRESS`. It lists siblings as alternatives but does not explicitly state when to prefer `decline` over `cancel`, so the routing guidance is implied rather than fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.approvals.commentA
Comments on an approval. For more information, see Manage approvals. This sends a notification to both the initiator and the reviewers. Additionally, a message is also added to the approval activity log [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CommentApprovalRequest object accepting message; pass it via params or whole via body_file Siblings over the same resource: approve, cancel, decline, get, list, reassign, start.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] Required. The ID of the file that the approval is on. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CommentApprovalRequest object. | |
| approvalId | Yes | [URL path segment] Required. The ID of the approval to comment on. | |
| request_body | No | Request body of type CommentApprovalRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| status | No | |
| dueTime | No | |
| initiator | No | |
| approvalId | No | |
| createTime | No | |
| modifyTime | No | |
| completeTime | No | |
| targetFileId | No | |
| reviewerResponses | No | |
| fileContentChangeBehavior | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the mutation nature, that a notification goes to both the initiator and reviewers, that an entry is appended to the approval activity log, and that the call is refused under readonly profiles. It stops short of stating the permission/role required to comment on an approval, which matters for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, followed by side effects, safety profile, and body mechanics in a sensible order. The doc link and the long trailing sibling roster are low-value padding but do not obscure the core instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still notes the JSON response resource; combined with the documented notification and activity-log side effects and the readonly refusal, an agent has everything needed to decide whether to call it and what will happen if it does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description restates the request-body mechanics ('a JSON CommentApprovalRequest object accepting message; pass it via `params` or whole via `body_file`') but that is almost verbatim what the schema's request_body and body_file descriptions already say, so it adds little beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource ('Comments on an approval'), and the closing sentence names the sibling operations over the same resource (approve, cancel, decline, get, list, reassign, start), so an agent can place it precisely in the approval operation family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The fixed literal '[HTTP POST] — creates or triggers a change; refused under --readonly safety profiles' states a real constraint but gives no positive guidance on when to comment vs. approve, decline, or reassign. The sibling list is enumeration rather than routing: it tells the agent what else exists, not which condition selects this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.approvals.declineA
Declines an approval. For more information, see Manage approvals. This is used to update the ReviewerResponse of the requesting user with a Response of DECLINED. This also completes the approval and sets the approval Status to DECLINED [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON DeclineApprovalRequest object accepting message; pass it via params or whole via body_file Siblings over the same resource: approve, cancel, comment, get, list, reassign, start.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] Required. The ID of the file that the approval is on. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON DeclineApprovalRequest object. | |
| approvalId | Yes | [URL path segment] Required. The ID of the approval to decline. | |
| request_body | No | Request body of type DeclineApprovalRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| status | No | |
| dueTime | No | |
| initiator | No | |
| approvalId | No | |
| createTime | No | |
| modifyTime | No | |
| completeTime | No | |
| targetFileId | No | |
| reviewerResponses | No | |
| fileContentChangeBehavior | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it identifies the operation as HTTP POST that creates or triggers a change, notes refusal under --readonly safety profiles, and explains that the approval is completed and its status set to DECLINED. It also states that the tool returns the API response resource as JSON and describes the request body format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and remains information-dense without becoming rambling. It includes a documentation link, HTTP verb, safety note, return behavior, body routing, and sibling list, all of which are relevant, though the paragraph is somewhat overloaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and the presence of an output schema, the description provides the important behavioral context: mutation semantics, readonly refusal, status change, return format, and body routing. It lacks permission requirements and edge-case behavior, but it is otherwise complete enough for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the parameters thoroughly. The description adds only limited body-routing context ('pass it via params or whole via body_file'), which largely repeats the schema's own descriptions rather than adding new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a specific verb and resource (declines an approval) and explains the exact effect: updating the requesting user's ReviewerResponse to DECLINED and completing the approval with Status DECLINED. It also names the sibling approvals tools, so an agent can distinguish it from approve, cancel, comment, get, list, reassign, and start.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for what the tool does, but it does not say when to choose decline versus approve, cancel, reassign, or comment. The sibling list names alternatives without providing selection criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.approvals.getB
Gets an approval by ID. For more information, see Manage approvals [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: approve, cancel, comment, decline, list, reassign, start.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] Required. The ID of the file that the approval is on. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| approvalId | Yes | [URL path segment] Required. The ID of the approval. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| status | No | |
| dueTime | No | |
| initiator | No | |
| approvalId | No | |
| createTime | No | |
| modifyTime | No | |
| completeTime | No | |
| targetFileId | No | |
| reviewerResponses | No | |
| fileContentChangeBehavior | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does carry the safety profile implicitly via "[HTTP GET]" and states the resource is returned as JSON. However, it says nothing about permissions needed to read an approval, error behavior for a nonexistent approvalId, or whether this returns the approval's full history/comments. The body-construction sentences (body_file, typed flags over params) are boilerplate that is irrelevant to a GET and arguably noise.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first four words, which is good. But the middle sentence about request bodies built from typed parameters or read from `body_file` is dead weight for a GET call, and the trailing sibling enumeration is a naked list with no routing logic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return shape needn't be described, and both required path params are covered by the schema. Still, for a zero-annotation read tool in a large API surface, the description lacks permission requirements and failure modes, leaving an agent to discover auth/404 behavior by trial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so fileId and approvalId are already fully documented, and passing this tool the two required path segments is obvious. The description's note that typed flags win over the `params` map merely restates the schema line "Parameter map merged into the request; typed parameters win." No added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Gets an approval by ID" states a specific verb and resource and is immediately distinguishable from the mutating siblings (approve, cancel, decline). It stops short of contrasting with drive.approvals.list, which returns many approvals and shares the same resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists sibling names (approve, cancel, comment, decline, list, reassign, start) but never says when to choose this one over list or any of them. The agent must infer that 'get by ID' vs 'list' is the selection rule; no prerequisites, no when-not-to-use, no required permission context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.approvals.listA
Lists the approvals on a file. For more information, see Manage approvals. By default, this method returns a minimal response that may not include the items array. To retrieve approval details, you must explicitly specify the fields you want using the fields query parameter. To return the exact fields you need, see Return specific fields [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: approve, cancel, comment, decline, get, reassign, start.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] Required. The ID of the file that the approval is on. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of approvals to return. When not set, at most 100 approvals are returned. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| items | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, and it does surface the most important behavioral trait: a default minimal response that may exclude the items array. It also notes the HTTP GET verb and JSON return. It omits permission/auth requirements and any rate-limit or pagination caveats beyond what the schema already says.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and the fields caveat are front-loaded, which is good. But the description pads in two documentation links plus boilerplate about request bodies and body_file ('typed flags win over the `params` map') that is largely irrelevant to a GET list operation, and the trailing sibling list is a bare enumeration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and the fields caveat covers the main trap. What's missing is permission/auth context for listing approvals on a file and any note on how pageSize/pageToken interact beyond the schema text. Adequate but with clear gaps for a tool with seven parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so pageSize, pageToken, fileId, and the rest are already fully documented, establishing a baseline of 3. The description adds meaning by introducing the `fields` query parameter, which isn't in the schema at all — useful, but also potentially confusing since it isn't clear whether that goes through the `query` array or elsewhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource: 'Lists the approvals on a file.' It also names the sibling actions over the same resource (approve, cancel, comment, decline, get, reassign, start), which lets an agent distinguish listing from acting on an approval. However, those siblings are only listed by name with no explanation of how they differ, so differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete operational guidance: the default response is minimal and may omit the items array, so the agent must pass explicit `fields` to get details. That's a real usage constraint an agent would otherwise miss. It stops short of stating when to prefer drive.approvals.get over this tool, so it's context-rich but not a full when/when-not guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.approvals.reassignA
Reassigns the reviewers on an approval. For more information, see Manage approvals. Adds or replaces reviewers in the ReviewerResponse of the approval. This can be called by any user with the writer permission on the file while the approval Status is IN_PROGRESS and the Response for the reviewer being reassigned is NO_RESPONSE. A user with the reader permission can only reassign an approval that's assigned to themselves. Removing a reviewer isn't allowed [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ReassignApprovalRequest object accepting addReviewers, message, replaceReviewers; pass it via params or whole via body_file Siblings over the same resource: approve, cancel, comment, decline, get, list, start.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] Required. The ID of the file that the approval is on. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ReassignApprovalRequest object. | |
| approvalId | Yes | [URL path segment] Required. The ID of the approval to reassign. | |
| request_body | No | Request body of type ReassignApprovalRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| status | No | |
| dueTime | No | |
| initiator | No | |
| approvalId | No | |
| createTime | No | |
| modifyTime | No | |
| completeTime | No | |
| targetFileId | No | |
| reviewerResponses | No | |
| fileContentChangeBehavior | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so: it declares the POST semantics, that the call creates/triggers a state change, and that it is refused under --readonly safety profiles. It also discloses the permission model and the return value (the API's response resource as JSON), which is exactly the mutation-risk context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and every sentence contributes required facts (permissions, status gates, body shape, return type). It runs long and packs them into one dense paragraph with bracketed asides, which slightly hurts scanability but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-format explanation isn't needed, and all 7 parameters are documented in the schema. Combined with the description's permission gates, status preconditions, readonly refusal note, and body-passing options, an agent has everything needed to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further by naming the three body fields (addReviewers, message, replaceReviewers) and explaining the two delivery paths ('pass it via params or whole via body_file'). That said, it largely restates what request_body's schema description already says, so it does not add deep semantic meaning like field interactions or required-field rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Reassigns the reviewers on an approval') and immediately clarifies mechanics ('Adds or replaces reviewers in the ReviewerResponse'). It also names the sibling family (approve, cancel, comment, decline, get, list, start), so an agent can place it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit preconditions: writer permission on the file, Status must be IN_PROGRESS, the target reviewer's Response must be NO_RESPONSE, and a reader may only reassign an approval assigned to themselves. It also states a hard exclusion — removing a reviewer isn't allowed — which routes the agent away from misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.approvals.startA
Starts an approval on a file. For more information, see Manage approvals [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON StartApprovalRequest object accepting dueTime, fileContentChangeBehavior, lockFile, message, reviewerEmails; pass it via params or whole via body_file Siblings over the same resource: approve, cancel, comment, decline, get, list, reassign.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] Required. The ID of the file that the approval is created on. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON StartApprovalRequest object. | |
| request_body | No | Request body of type StartApprovalRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| status | No | |
| dueTime | No | |
| initiator | No | |
| approvalId | No | |
| createTime | No | |
| modifyTime | No | |
| completeTime | No | |
| targetFileId | No | |
| reviewerResponses | No | |
| fileContentChangeBehavior | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does well: it declares the mutation nature ("creates or triggers a change"), the readonly safety-profile refusal, the HTTP method, and the return shape (API response as JSON). It doesn't cover auth requirements or side effects like notification of reviewers, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, but the remainder is a dense run-on of docs link, HTTP method, safety note, return format, body fields, and sibling list crammed with em-dashes. Every element is relevant, but the packaging harms scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with nested-object params and no annotations, the description covers purpose, safety gating, body structure, and alternatives; an output schema exists so return-value detail is a bonus. It lacks permission/auth detail but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all six parameters, giving baseline 3. The description restates the body fields (dueTime, fileContentChangeBehavior, lockFile, message, reviewerEmails) and the params/body_file routing, but adds little beyond what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Starts an approval on a file") and explicitly distinguishes itself from siblings on the same resource (approve, cancel, comment, decline, get, list, reassign). An agent can immediately tell this is the creation action versus the manage/list actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a when-not condition ("refused under --readonly safety profiles") and enumerates sibling alternatives over the same resource, providing clear context for choosing this tool. It stops short of stating explicit selection criteria between start vs. approve/etc., so not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.apps.getB
Gets a specific app. For more information, see Return user info [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: list.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | [URL path segment] The ID of the app. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| name | No | |
| icons | No | |
| createUrl | No | |
| installed | No | |
| productId | No | |
| authorized | No | |
| objectType | No | |
| productUrl | No | |
| useByDefault | No | |
| supportsCreate | No | |
| supportsImport | No | |
| longDescription | No | |
| openUrlTemplate | No | |
| primaryMimeTypes | No | |
| shortDescription | No | |
| hasDriveWideScope | No | |
| supportsMultiOpen | No | |
| secondaryMimeTypes | No | |
| primaryFileExtensions | No | |
| supportsOfflineCreate | No | |
| createInFolderTemplate | No | |
| secondaryFileExtensions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the operation is an HTTP GET returning JSON and describes request-body construction mechanics, but omits auth/permission requirements or error behavior. For a read tool the '[HTTP GET]' hint partially signals safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the sentence is cluttered with an irrelevant documentation link, an '[HTTP GET]' tag, and body-building mechanics that don't apply to a read. Some content doesn't earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and the required appId is documented. However, for a resource-get tool the description says nothing about access/scoping requirements, leaving a gap an agent would want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds precedence semantics not in the schema ('typed flags win over the params map') and the body_file behavior, which genuinely supplements the parameter definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Gets a specific app') and distinguishes it from the enumerated sibling ('Siblings over the same resource: list'). Clear enough to select against drive.apps.list, though it doesn't explain what an 'app' is in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies when to use by pointing at the 'list' sibling over the same resource, but never states explicit when/when-not conditions or other alternatives. Usage is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.apps.listC
Lists a user's installed apps. For more information, see Return user info [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| languageCode | No | [query parameter] A language or locale code, as defined by BCP 47, with some extensions from Unicode's LDML format (http://www.unicode.org/reports/tr35/). | |
| appFilterMimeTypes | No | [query parameter] A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given MIME types wil | |
| appFilterExtensions | No | [query parameter] A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given file extension |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| items | No | |
| selfLink | No | |
| defaultAppIds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full load, yet it discloses nothing specific about this operation: no authorization/scope requirements, no statement about whether the list is scoped to the authenticated user, no result-shape or empty-result behavior. The only behavioral content ('HTTP GET', 'returns JSON', body_file mechanics) is boilerplate that applies to every tool in the family.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is correctly front-loaded, but the body is padded with transport-level filler ('HTTP GET', request-body construction, body_file fallback) that is irrelevant to a parameterless GET list and pushes the useful sibling pointer to the very end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the purpose is stated. However, for a zero-required-parameter listing tool with two filtering parameters and no annotations, the description leaves the agent without scoping, auth, or filter-usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains languageCode, appFilterMimeTypes, and appFilterExtensions. The description adds no meaning beyond the schema for any parameter, which is the baseline case when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource ('Lists a user's installed apps') and the closing line names the sibling over the same resource ('get'), so an agent can distinguish read-one from read-many. The generic transport boilerplate that follows dilutes but does not obscure the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only routing hint is 'Siblings over the same resource: get', which names an alternative without stating the condition that selects it. There is no guidance on when to prefer this over drive.apps.get, no prerequisites, and no note about which filter parameters to supply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.changes.getStartPageTokenB
Gets the starting pageToken for listing future changes. For more information, see Retrieve changes [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: list, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| driveId | No | [query parameter] The ID of the shared drive for which the starting pageToken for listing future changes from that shared drive will be returned. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| teamDriveId | No | [query parameter] Deprecated: Use `driveId` instead. | |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| startPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose the HTTP GET method and JSON return, implying a safe read, but omits auth requirements, whether the token expires, and how driveId affects the token. The generic paragraph about request bodies is largely irrelevant to a GET that takes no body.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key purpose is front-loaded, but the boilerplate about building request bodies from typed parameters or body_file is padding for a GET operation with no body and dilutes an otherwise short description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema and 100% parameter coverage, the description covers the essential purpose. What is missing is behavioral context around token lifecycle and the driveId scope, but for a simple GET this is close to sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so driveId, supportsAllDrives and the deprecated aliases are already documented in the schema. The description adds no parameter meaning beyond that, which is the baseline expectation when the schema is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: gets the starting pageToken for listing future changes. A sibling note ('list, watch') signals it is distinct from those tools, though it stops short of explaining the difference in role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied — the token is presumably obtained before calling list — but there is no explicit when-to-use/when-not guidance, no note that it should be called once before a change feed, and no explanation of how it differs from drive.changes.list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.changes.listB
Lists the changes for a user or shared drive. For more information, see Retrieve changes [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: getStartPageToken, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| spaces | No | [query parameter] A comma-separated list of spaces to query within the corpora. Supported values are 'drive' and 'appDataFolder'. | drive |
| driveId | No | [query parameter] The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change I | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of changes to return. The service may return fewer than this value. If unspecified, at most 100 changes will be returned. The maximum value i | 100 |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | Yes | [query parameter] The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the respo | |
| teamDriveId | No | [query parameter] Deprecated: Use `driveId` instead. | |
| includeLabels | No | [query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response. | |
| includeRemoved | No | [query parameter] Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access. | true |
| restrictToMyDrive | No | [query parameter] Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared fil | false |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| includeCorpusRemovals | No | [query parameter] Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the l | false |
| includeTeamDriveItems | No | [query parameter] Deprecated: Use `includeItemsFromAllDrives` instead. | false |
| includeItemsFromAllDrives | No | [query parameter] Whether both My Drive and shared drive items should be included in results. | false |
| includePermissionsForView | No | [query parameter] Specifies which additional view's permissions to include in the response. Only 'published' is supported. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| changes | No | |
| nextPageToken | No | |
| newStartPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It conveys read-only behavior via 'Lists' and '[HTTP GET]' and notes JSON output, but omits auth requirements, pagination mechanics, and what the change feed represents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the third sentence is generic boilerplate about request bodies that is largely irrelevant to a GET list endpoint, and the sibling note is appended without punctuation. The structure is loose rather than tightly focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex with 18 parameters and has an output schema, but the description never explains the incremental-sync workflow or how getStartPageToken and watch relate to listing changes. The schema covers parameter details, yet the description leaves a key workflow gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 18 parameters. The description's note about typed parameters winning over the `params` map and `body_file` is generic request-building boilerplate rather than endpoint-specific parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: 'Lists the changes for a user or shared drive.' It also names the related siblings, but does not differentiate when those siblings are appropriate, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not guidance. The sibling list is only a pointer, and the sole guidance is an external documentation link; the getStartPageToken prerequisite must be inferred from the required pageToken parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.changes.watchA
Subscribes to changes for a user. For more information, see Notifications for resource changes [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Channel object accepting address, expiration, id, kind, params, payload, resourceId, resourceUri and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: getStartPageToken, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| spaces | No | [query parameter] A comma-separated list of spaces to query within the corpora. Supported values are 'drive' and 'appDataFolder'. | drive |
| driveId | No | [query parameter] The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change I | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of changes to return. The service may return fewer than this value. If unspecified, at most 100 changes will be returned. The maximum value i | 100 |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object. | |
| pageToken | Yes | [query parameter] The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the respo | |
| teamDriveId | No | [query parameter] Deprecated: Use `driveId` instead. | |
| request_body | No | Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| includeLabels | No | [query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response. | |
| includeRemoved | No | [query parameter] Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access. | true |
| restrictToMyDrive | No | [query parameter] Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared fil | false |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| includeCorpusRemovals | No | [query parameter] Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the l | false |
| includeTeamDriveItems | No | [query parameter] Deprecated: Use `includeItemsFromAllDrives` instead. | false |
| includeItemsFromAllDrives | No | [query parameter] Whether both My Drive and shared drive items should be included in results. | false |
| includePermissionsForView | No | [query parameter] Specifies which additional view's permissions to include in the response. Only 'published' is supported. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| type | No | |
| token | No | |
| params | No | |
| address | No | |
| payload | No | |
| expiration | No | |
| resourceId | No | |
| resourceUri | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: it discloses the HTTP POST method, that it creates/triggers a change, and that it is refused under --readonly safety profiles — a non-obvious operational constraint. It also documents the request-body mechanism and the JSON return, though it does not mention channel renewal/expiration lifecycle behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then the mutating/safety caveat, then body mechanics, then sibling routing. Dense but every clause carries information; only minor redundancy between the Channel field list and the schema's request_body description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 19-param watch tool with an output schema and no annotations, the description covers the safety profile, the POST/mutation nature, body construction, and sibling routing — enough to call it correctly. The remaining gap is the pageToken provenance (getStartPageToken) which is central to a watch workflow but only hinted at via the sibling list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3; the description adds meaning by explaining the Channel body fields (address, expiration, id, kind, params, payload, resourceId, resourceUri, +2) and the two delivery paths — merged via `params` or whole via `body_file`. That dual-delivery nuance is genuinely useful for a 19-param tool with a nested body, even though some of it echoes the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Subscribes to changes for a user" states a specific verb (subscribes) and resource (changes), and the later note names the siblings over the same resource (getStartPageToken, list), so an agent can distinguish this from a plain change listing. It stops short of 5 because the description never says the mechanism explicitly (a push-notification channel/webhook), leaving that to be inferred from the linked doc and the Channel body.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the two sibling tools that operate on the same resource but does not say when to pick this one over them beyond the implicit "watch vs list" distinction. Critically, the required pageToken is presumably obtained from getStartPageToken, yet the description does not state that prerequisite, leaving setup order to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.channels.stopB
Stops watching resources through this channel. For more information, see Notifications for resource changes [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Channel object accepting address, expiration, id, kind, params, payload, resourceId, resourceUri and 2 more fields; pass it via params or whole via body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object. | |
| request_body | No | Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It does add some useful context (refused under --readonly safety profiles, return format, body structure), but it falsely states 'creates or triggers a change' for a stop operation and does not explain what happens to existing watches or which body fields are required. The misleading statement is a significant flaw.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the description is bloated with a documentation link, a confusing HTTP POST note, an exhaustive field enumeration, and redundant pass instructions. Several sentences do not earn their place given that the schema already covers the same ground.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with a nested body and no output schema, the description does explain the return format and some body details, which is helpful. However, it lacks usage guidance, omits effects on existing watches, and includes a misleading 'creates or triggers a change' statement, leaving gaps for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters including the nested request body. The description lists body fields ('address, expiration, id, kind, params, payload, resourceId, resourceUri') and explains passing via `params` or `body_file`, but this largely duplicates the schema and adds no new semantic depth.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb ('stops watching') and resource ('resources through this channel'), clearly distinguishing it from watch/start tools. However, the later note '[HTTP POST] — creates or triggers a change' introduces ambiguity about whether this tool actually creates something, muddying the otherwise clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied by 'Stops watching resources' but there is no explicit when-to-use guidance, no mention of alternatives (e.g., gmail.users.stop or calendar.channels.stop), and no exclusions or prerequisites. The link to documentation is provided but not contextualized for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.comments.createA
Creates a comment on a file. For more information, see Manage comments and replies. Required: The fields parameter must be set. To return the exact fields you need, see Return specific fields [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Comment object accepting anchor, assigneeEmailAddress, author, content, createdTime, deleted, htmlContent, id and 6 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Comment object. | |
| request_body | No | Request body of type Comment: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| anchor | No | |
| author | No | |
| content | No | |
| deleted | No | |
| replies | No | |
| resolved | No | |
| createdTime | No | |
| htmlContent | No | |
| modifiedTime | No | |
| quotedFileContent | No | |
| assigneeEmailAddress | No | |
| mentionedEmailAddresses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that this is an HTTP POST that "creates or triggers a change", that it is blocked under readonly safety profiles, and the return shape (API response resource as JSON). It omits permission/auth requirements for commenting on a shared file, which is the main remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, and the safety/return/body notes follow in a sensible order. The field enumeration trailing off as "id and 6 more fields" plus two doc links add mild noise, keeping it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with zero annotations and a nested request body, the description covers mutability, safety-profile refusal, body construction paths, and return type; an output schema also exists so return values need little explanation. Only the authorization prerequisite for commenting is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds value: it explains the Comment body's key fields, the two ways to supply it (`params` merge vs. whole `body_file`), and flags the `fields` requirement that does not appear as a schema property. That last point is important and non-obvious, though the agent must infer `fields` goes through `params`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Creates a comment on a file") and enumerates the same-resource siblings (delete, get, list, update) so an agent can place it in the CRUD family without opening another schema. The purpose is unambiguous against the listed sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a real precondition ("the `fields` parameter must be set") and a when-not condition ("refused under --readonly safety profiles"), plus the sibling list for alternatives. It stops short of saying when to create a comment versus a reply via drive.replies.create, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.comments.deleteA
Deletes a comment. For more information, see Manage comments and replies [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| commentId | Yes | [URL path segment] The ID of the comment. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description still discloses irreversibility, refusal under --readonly profiles, and the post-delete return shape as JSON. Missing permission/scope requirements and error behavior, but this is strong disclosure for an unannotated delete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deletion semantics and irreversibility warning are front-loaded and useful, but the request-body/body_file detail is largely irrelevant for a DELETE and adds clutter before the sibling list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers irreversibility, readonly refusal, and return value, which is most of what an agent needs. Permission scopes and error/failure modes remain uncovered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description restates the typed-params-win-over-params-map rule and body_file handling that the schema already documents, adding little new meaning about the required fileId/commentId path segments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific verb and resource ('Deletes a comment') and names all sibling operations over the same resource (create, get, list, update), so an agent can distinguish it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list gives context, but there is no explicit when-to-use vs. alternative guidance (e.g., deleting vs. updating to resolve a comment), and no prerequisites stated. Usage is only implied by the verb and the readonly note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.comments.getA
Gets a comment by ID. For more information, see Manage comments and replies. Required: The fields parameter must be set. To return the exact fields you need, see Return specific fields [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| commentId | Yes | [URL path segment] The ID of the comment. | |
| includeDeleted | No | [query parameter] Whether to return deleted comments. Deleted comments will not include their original content. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| anchor | No | |
| author | No | |
| content | No | |
| deleted | No | |
| replies | No | |
| resolved | No | |
| createdTime | No | |
| htmlContent | No | |
| modifiedTime | No | |
| quotedFileContent | No | |
| assigneeEmailAddress | No | |
| mentionedEmailAddresses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully states '[HTTP GET]' and that the resource is returned as JSON, which signals a read-only call, but it omits any permission or auth requirements and includes generic body-handling language that is largely irrelevant to a GET endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the description spends space on documentation links and generic boilerplate about request bodies and `body_file` that is not relevant to a GET request. It is understandable but not tightly focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not explain return values, and the schema fully documents the parameters. Still, the unsupported `fields` requirement and missing auth/permission context leave an agent with avoidable uncertainty about a correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the parameters, but the description introduces a required `fields` parameter that does not appear in the schema. That is a misleading parameter requirement unless the agent infers it belongs in the `query` array, which the description does not explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Gets a comment by ID.' It also names the sibling operations over the same resource (create, delete, list, update), so an agent can readily distinguish this tool from related comment tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by ID' phrasing gives clear context for when to use this tool, and the sibling list helps orient it against alternatives. However, it does not explicitly say when to use get versus list, or explain how to resolve a commentId if unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.comments.listC
Lists a file's comments. For more information, see Manage comments and replies. Required: The fields parameter must be set. To return the exact fields you need, see Return specific fields [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of comments to return. The service may return fewer than this value. If unspecified, at most 20 comments will be returned. The maximum value | 20 |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response. | |
| includeDeleted | No | [query parameter] Whether to include deleted comments. Deleted comments will not include their original content. | false |
| startModifiedTime | No | [query parameter] The minimum value of 'modifiedTime' for the result comments (RFC 3339 date-time). |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| comments | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description must carry the full behavioral burden. It does disclose that this is a read-only HTTP GET returning JSON, which is genuinely the key trait. However, the sentence about request bodies being "built from the typed parameters" or read from `body_file` is irrelevant and mildly misleading for a GET list operation, and it never mentions auth scope requirements or that results are paged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The useful content is one sentence at the front; the rest is documentation links plus generic body-construction boilerplate that has no meaning for a GET. The wrong `fields`-required claim is also presented with more emphasis than the actual behavior, so signal-to-noise is poor despite the short length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation isn't needed, and the per-parameter schema text covers paging and filtering. What's missing is context an agent still needs: that this is a safe read, whether comments are returned with replies inline, and how the mandatory `fields` claim should actually be satisfied. Adequate but with real gaps for a 9-parameter, nested-object tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the typed parameters (pageSize, pageToken, includeDeleted, startModifiedTime) are already fully documented and would normally earn a baseline 3. The description instead injects a claim that `fields` is required, but no `fields` property exists in the schema — it would have to be smuggled through `params` or `query`, which the description never explains. That actively misdirects the agent and pushes this below baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Lists a file's comments" gives a specific verb and resource, and the closing line explicitly enumerates the sibling operations over the same resource (create, delete, get, update), so an agent can place it in the CRUD family without opening other schemas. It falls short of 5 only because it doesn't contrast itself against the most confusable sibling, drive.replies.list, which reads nested comment threads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only routing guidance is a bare list of sibling names ("create, delete, get, update") with no conditions attached — it never says when to choose list versus get or how it relates to replies.list. The one concrete instruction ("The `fields` parameter must be set") is a prerequisite, not usage guidance, and it points at a parameter that does not exist in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.comments.updateA
Updates a comment with patch semantics. For more information, see Manage comments and replies. Required: The fields parameter must be set. To return the exact fields you need, see Return specific fields [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Comment object accepting anchor, assigneeEmailAddress, author, content, createdTime, deleted, htmlContent, id and 6 more fields; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Comment object. | |
| commentId | Yes | [URL path segment] The ID of the comment. | |
| request_body | No | Request body of type Comment: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| anchor | No | |
| author | No | |
| content | No | |
| deleted | No | |
| replies | No | |
| resolved | No | |
| createdTime | No | |
| htmlContent | No | |
| modifiedTime | No | |
| quotedFileContent | No | |
| assigneeEmailAddress | No | |
| mentionedEmailAddresses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses PATCH (partial-update) semantics, states it is refused under --readonly safety profiles (i.e., this is a write), and notes the response is the API resource as JSON. It omits auth/permission requirements (who may edit a comment) and what happens to fields not supplied, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, which is right, but the single run-on paragraph is cluttered with documentation links, bracketed asides, and an explanation of the return value that duplicates the existing output schema. Those sentences do not all earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and a nested request body, it covers the essentials an agent needs to call it: required `fields`, body shape and delivery path, safety-profile behavior, and sibling navigation. Missing permission/auth context is the main residual gap; return values are already covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description adds real value: it flags that `fields` is mandatory — a parameter absent from the schema properties — and explains that the request body is a Comment object passed either via `params` or whole via `body_file`. The 'id and 6 more fields' enumeration is vague filler, but the routing guidance is genuinely beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates a comment') plus the update style ('patch semantics'), and closes by naming the four siblings over the same resource (create, delete, get, list), so an agent can separate it from read/create/delete calls without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a hard precondition — the `fields` parameter must be set — and enumerates the sibling tools on the same resource, which frames the alternatives. What it lacks is an explicit 'use this when you want to change content/resolve a comment, not when…' conditional, so guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.drives.createA
Creates a shared drive. For more information, see Manage shared drives [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Drive object accepting backgroundImageFile, backgroundImageLink, capabilities, colorRgb, createdTime, hidden, id, kind and 4 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, hide, list, unhide, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Drive object. | |
| requestId | Yes | [query parameter] Required. An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a shared drive. A repeated request by the same | |
| request_body | No | Request body of type Drive: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| name | No | |
| hidden | No | |
| themeId | No | |
| colorRgb | No | |
| orgUnitId | No | |
| createdTime | No | |
| capabilities | No | |
| restrictions | No | |
| backgroundImageFile | No | |
| backgroundImageLink | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and largely does: it declares the operation is an HTTP POST that mutates, that it is refused under readonly safety profiles, and that it returns the API's response resource as JSON. It omits required permission scope and was only able to rely on the requestId schema field for idempotency, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, and the remaining detail (HTTP verb, safety profile, return format, body construction, siblings) is dense but relevant. A few clauses run together ('and 4 more fields; pass it via...') but overall it earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and the description covers body construction paths, the safety-profile constraint, and sibling routing. An agent has enough to invoke it correctly; only explicit permission prerequisites are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema documents all six parameters and the body fields. The description adds modest value by explaining the body is a JSON Drive object usable via `params` or whole via `body_file`, but otherwise restates what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ("Creates a shared drive") and even enumerates the sibling operations over the same resource (delete, get, hide, list, unhide, update). An agent can distinguish this from the get/list/update siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It lists sibling tools over the same resource and notes it is refused under --readonly safety profiles, which implies when it can/can't run. However, it never explicitly states when to choose create vs. the alternatives; the routing is left to inference from the operation names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.drives.deleteA
Permanently deletes a shared drive for which the user is an organizer. The shared drive cannot contain any untrashed items. For more information, see Manage shared drives [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, hide, list, unhide, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| driveId | Yes | [URL path segment] The ID of the shared drive. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| allowItemDeletion | No | [query parameter] Whether any items inside the shared drive should also be deleted. This option is only supported when `useDomainAdminAccess` is also set to `true`. | false |
| useDomainAdminAccess | No | [query parameter] Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the s | false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It discloses that deletion is permanent and irreversible, that it is refused under --readonly safety profiles, and that it returns the post-delete resource state as JSON. It also explains how request bodies are built from parameters or a file, adding useful behavioral context, though it doesn't cover rate limits or permissions beyond the organizer requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise and front-loads the core purpose and constraints. Some parts, such as the generic HTTP DELETE explanation and the sibling list, are slightly verbose but still relevant. Overall, the structure is clear and each sentence contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a destructive operation with 7 parameters and no output schema), the description covers key aspects: purpose, prerequisites, irreversibility, safety profile behavior, return value, and request body construction. It omits some parameter-specific behavior (e.g., how `allowItemDeletion` interacts with content deletion), but the schema handles that. The description is largely complete for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters with descriptions. The description adds some value by explaining the interplay between typed parameters and the `params` map, and the use of `body_file`, but it does not elaborate on the semantics of specific parameters like `allowItemDeletion` or `useDomainAdminAccess` beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (permanently deletes) and resource (shared drive), along with the prerequisite that the user must be an organizer and the drive cannot contain untrashed items. It explicitly lists sibling tools over the same resource, allowing easy differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage constraints (organizer role, no untrashed items), which implies when the tool can be used. However, it does not explicitly guide the agent on when to choose this tool versus alternatives like hide or update, nor does it state exclusions beyond the prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.drives.getA
Gets a shared drive's metadata by ID. For more information, see Manage shared drives [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, hide, list, unhide, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| driveId | Yes | [URL path segment] The ID of the shared drive. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| useDomainAdminAccess | No | [query parameter] Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the s | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| name | No | |
| hidden | No | |
| themeId | No | |
| colorRgb | No | |
| orgUnitId | No | |
| createdTime | No | |
| capabilities | No | |
| restrictions | No | |
| backgroundImageFile | No | |
| backgroundImageLink | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose the transport ([HTTP GET]) and that the resource is returned as JSON, but says nothing about access requirements (shared drive membership, or the domain-admin path implied by useDomainAdminAccess) or failure behavior. The request-body/params boilerplate is largely irrelevant for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, but the definition is padded with a documentation link, an HTTP-method tag, and a request-body construction clause that does not apply to a metadata read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-ID with a fully described schema and an output schema covering return values, the description covers what the tool does and how it relates to its siblings. The remaining gap is access/permission context, which is not stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's mention that typed flags win over the params map and that body_file can supply a whole body merely restates schema text and has little bearing on a GET request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets a shared drive's metadata by ID') and explicitly names the sibling operations over the same resource (create, delete, hide, list, unhide, update), so an agent can distinguish it from drive.drives.list without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by ID' phrasing implies this is the lookup-by-identifier path versus the enumeration path, and siblings are listed, but there is no explicit when-to-use/when-not or statement that list should be used when the ID is unknown. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.drives.hideA
Hides a shared drive from the default view. For more information, see Manage shared drives [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, list, unhide, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| driveId | Yes | [URL path segment] The ID of the shared drive. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| name | No | |
| hidden | No | |
| themeId | No | |
| colorRgb | No | |
| orgUnitId | No | |
| createdTime | No | |
| capabilities | No | |
| restrictions | No | |
| backgroundImageFile | No | |
| backgroundImageLink | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does so well: it discloses HTTP POST mutation, refusal under --readonly safety profiles, JSON response behavior, and request-body construction via typed parameters or body_file. It could add auth/scope requirements or reversibility details, but the core behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, and the remaining details are useful. The second sentence is long and combines several generic concerns, but it does not waste the reader's time with pure repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full schema coverage and an output schema, the description need not explain parameters or return fields in depth. It covers the mutation, safety-profile refusal, response format, and body handling, which is sufficient for an agent to call the tool correctly; only explicit routing guidance to 'unhide' is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some precedence detail ('typed flags win over the params map') and body_file behavior, but these are already documented in the schema, and it does not add further meaning to driveId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Hides a shared drive from the default view.' It also names the inverse sibling 'unhide' in the sibling list, making the operation distinguishable from other drive.drives methods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose ('hides from the default view') and the sibling list includes 'unhide,' but the description does not explicitly say when to choose hide versus unhide, update, or delete, nor does it state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.drives.listA
Lists the user's shared drives. This method accepts the q parameter, which is a search query combining one or more search terms. For more information, see the Search for shared drives guide [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, hide, unhide, update.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | [query parameter] Query string for searching shared drives. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of shared drives to return. The service may return fewer than this value. If unspecified, at most 10 shared drives will be returned. The maxi | 10 |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Page token for shared drives. | |
| useDomainAdminAccess | No | [query parameter] Issue the request as a domain administrator; if set to true, then all shared drives of the domain in which the requester is an administrator are returned. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| drives | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose HTTP GET (implying a safe read) and that it returns JSON, which is useful. However it omits auth requirements, rate limits, and any pagination behavior (pageToken/pageSize appear only in schema), and the request-body/body_file boilerplate is largely irrelevant to a GET list call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence is front-loaded and effective, but a middle sentence about request bodies and `body_file` is boilerplate that does not apply to a GET list operation, adding noise. The sibling listing at the end earns its place; the request-construction text does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and schema coverage is complete, so return values and parameter meaning needn't be restated. Still, with zero annotation coverage for an 8-param listing tool, the description could have clarified pagination and read-only safety more explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all eight parameters. The description adds only marginal meaning for `q` ('search query combining one or more search terms') that the schema description largely already conveys. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists the user's shared drives') and explicitly enumerates the sibling operations over the same resource (create, delete, get, hide, unhide, update), letting an agent distinguish this from them without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The name 'Lists' implies this is the enumeration tool, and naming siblings provides some contrast, but there is no explicit when-to-use/when-not guidance (e.g., list vs get vs teamdrives.list). Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.drives.unhideA
Restores a shared drive to the default view. For more information, see Manage shared drives [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, hide, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| driveId | Yes | [URL path segment] The ID of the shared drive. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| name | No | |
| hidden | No | |
| themeId | No | |
| colorRgb | No | |
| orgUnitId | No | |
| createdTime | No | |
| capabilities | No | |
| restrictions | No | |
| backgroundImageFile | No | |
| backgroundImageLink | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does reasonably well: it flags HTTP POST, that it mutates state, and that it is refused under --readonly safety profiles. It also explains request-body construction and that a JSON response resource is returned. It omits reversibility/permission scope, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the sibling list closes it out cleanly. The generic body-building and response-format clauses are somewhat boilerplate-heavy, but no sentence is truly wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be detailed, and the mutation/safety behavior is covered. What's missing is the permission requirement and a concrete definition of what 'default view' means for the drive's hidden state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baselines apply. The description's note that typed flags win over the `params` map and that bodies can come from `body_file` largely restates what the schema already documents for those same fields, adding little new meaning for driveId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: restores a shared drive to the default view (the inverse of hide). It also enumerates the sibling operations on the same resource, so an agent can place it in the drive lifecycle. It doesn't explicitly say 'this is the inverse of hide', leaving that inference to the reader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the readonly-refusal note tells the agent it will fail under read-only safety profiles, which is a useful gating condition. But there is no direct statement of when to call unhide versus hide/update, nor of required permissions (e.g. organizer role).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.drives.updateA
Updates the metadata for a shared drive. For more information, see Manage shared drives [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Drive object accepting backgroundImageFile, backgroundImageLink, capabilities, colorRgb, createdTime, hidden, id, kind and 4 more fields; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, hide, list, unhide.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| driveId | Yes | [URL path segment] The ID of the shared drive. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Drive object. | |
| request_body | No | Request body of type Drive: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| useDomainAdminAccess | No | [query parameter] Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the s | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| name | No | |
| hidden | No | |
| themeId | No | |
| colorRgb | No | |
| orgUnitId | No | |
| createdTime | No | |
| capabilities | No | |
| restrictions | No | |
| backgroundImageFile | No | |
| backgroundImageLink | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does disclose useful behavior: it is an HTTP PATCH, it returns the API response resource as JSON, and it is refused under --readonly safety profiles. However, it does not state permission requirements, whether unmentioned fields remain unchanged, or the reversibility/side effects of updating drive metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the description then becomes a dense run-on covering documentation links, HTTP method, readonly refusal, return format, body field names, and sibling tools. Some of that detail, especially the partial body-field list, duplicates the schema and makes the entry less scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, method, readonly refusal, return type, and body-passing options, which is reasonable given a rich schema and an output schema. But for a metadata mutation with no annotations, it should say more about authorization requirements and what exactly happens to unspecified fields during the patch.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameter meanings are already fully documented in the schema. The description adds some context about passing a JSON Drive body via `params` or `body_file`, but this largely repeats existing schema descriptions and does not significantly deepen parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Updates the metadata for a shared drive.' It also names the sibling operations over the same resource, so an agent can identify this as the update operation distinct from create, delete, get, hide, list, and unhide.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states one important usage constraint: the call is refused under --readonly safety profiles. It also lists sibling tools, but does not explicitly say when to choose update versus those alternatives or what prerequisites are required beyond the schema's useDomainAdminAccess parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.copyA
Creates a copy of a file and applies any requested updates with patch semantics. For more information, see Create and manage files [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON File object accepting appProperties, capabilities, clientEncryptionDetails, contentHints, contentRestrictions, copyRequiresWriterPermission, createdTime, description and 57 more fields; pass it via params or whole via body_file Siblings over the same resource: create, delete, download, emptyTrash, export, generateCseToken, generateIds, get, list, listLabels, modifyLabels, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON File object. | |
| ocrLanguage | No | [query parameter] A language hint for OCR processing during image import (ISO 639-1 code). | |
| copyComments | No | [query parameter] Whether to copy the open (unresolved) comments associated with the file. | false |
| request_body | No | Request body of type File: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| includeLabels | No | [query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response. | |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| enforceSingleParent | No | [query parameter] Deprecated: Copying files into multiple folders is no longer supported. Use shortcuts instead. | false |
| keepRevisionForever | No | [query parameter] Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for th | false |
| ignoreDefaultVisibility | No | [query parameter] Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the doma | false |
| includePermissionsForView | No | [query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| name | No | |
| size | No | |
| owners | No | |
| shared | No | |
| spaces | No | |
| driveId | No | |
| parents | No | |
| starred | No | |
| trashed | No | |
| version | No | |
| iconLink | No | |
| mimeType | No | |
| labelInfo | No | |
| ownedByMe | No | |
| properties | No | |
| viewedByMe | No | |
| createdTime | No | |
| description | No | |
| exportLinks | No | |
| md5Checksum | No | |
| permissions | No | |
| resourceKey | No | |
| sharingUser | No | |
| teamDriveId | No | |
| trashedTime | No | |
| webViewLink | No | |
| capabilities | No | |
| contentHints | No | |
| hasThumbnail | No | |
| modifiedByMe | No | |
| modifiedTime | No | |
| sha1Checksum | No | |
| trashingUser | No | |
| appProperties | No | |
| fileExtension | No | |
| permissionIds | No | |
| thumbnailLink | No | |
| folderColorRgb | No | |
| headRevisionId | No | |
| quotaBytesUsed | No | |
| sha256Checksum | No | |
| viewedByMeTime | No | |
| webContentLink | No | |
| isAppAuthorized | No | |
| shortcutDetails | No | |
| writersCanShare | No | |
| modifiedByMeTime | No | |
| originalFilename | No | |
| sharedWithMeTime | No | |
| thumbnailVersion | No | |
| explicitlyTrashed | No | |
| fullFileExtension | No | |
| lastModifyingUser | No | |
| linkShareMetadata | No | |
| imageMediaMetadata | No | |
| videoMediaMetadata | No | |
| contentRestrictions | No | |
| downloadRestrictions | No | |
| viewersCanCopyContent | No | |
| clientEncryptionDetails | No | |
| hasAugmentedPermissions | No | |
| copyRequiresWriterPermission | No | |
| inheritedPermissionsDisabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses the write nature (POST), that it is refused under readonly profiles, that it returns the API response resource as JSON, and how the body is supplied via params or body_file. It omits permission/auth requirements and what happens on name conflicts, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the single paragraph is a run-on that crams HTTP verb, safety note, return format, body-field enumeration, and a long sibling dump together. Every element is relevant, but the density and undifferentiated sibling list reduce scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter mutation tool with nested body objects and an output schema, the description covers return shape, body mechanics, safety-mode behavior, and sibling routing. The remaining omissions (permissions needed, copy constraints like copyRequiresWriterPermission effects) are minor given the schema and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds value by explaining that the request body is a JSON File object, listing representative fields, and clarifying the merge order between `params` and `body_file`. That is meaningful semantics beyond the schema's own field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Creates a copy of a file and applies any requested updates with patch semantics.' It then names the siblings over the same resource (create, delete, download, get, update, etc.), letting an agent distinguish copy from create/update without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives operational context (HTTP POST, 'refused under --readonly safety profiles') and lists sibling tools, but never says when to choose copy over create/update or what preconditions apply (e.g., canCopy capability, permission requirements). Usage is implied by the verb and sibling list rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.createB
Creates a file. For more information, see Create and manage files. This method supports an /upload URI and accepts uploaded media with the following characteristics: - Maximum file size: 5,120 GB - Accepted Media MIME types: */* (Specify a valid MIME type, rather than the literal */* value. The literal */* is only used to indicate that any valid MIME type can be uploaded. For more information, see [Google Workspace and Google Drive supported MIME types](https://developers.google.com/workspace/drive/api/guides/m [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON File object accepting appProperties, capabilities, clientEncryptionDetails, contentHints, contentRestrictions, copyRequiresWriterPermission, createdTime, description and 57 more fields; pass it via params or whole via body_file Siblings over the same resource: copy, delete, download, emptyTrash, export, generateCseToken, generateIds, get, list, listLabels, modifyLabels, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON File object. | |
| ocrLanguage | No | [query parameter] A language hint for OCR processing during image import (ISO 639-1 code). | |
| request_body | No | Request body of type File: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| includeLabels | No | [query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response. | |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| enforceSingleParent | No | [query parameter] Deprecated: Creating files in multiple folders is no longer supported. | false |
| keepRevisionForever | No | [query parameter] Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for th | false |
| ignoreDefaultVisibility | No | [query parameter] Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the doma | false |
| includePermissionsForView | No | [query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported. | |
| useContentAsIndexableText | No | [query parameter] Whether to use the uploaded content as indexable text. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| name | No | |
| size | No | |
| owners | No | |
| shared | No | |
| spaces | No | |
| driveId | No | |
| parents | No | |
| starred | No | |
| trashed | No | |
| version | No | |
| iconLink | No | |
| mimeType | No | |
| labelInfo | No | |
| ownedByMe | No | |
| properties | No | |
| viewedByMe | No | |
| createdTime | No | |
| description | No | |
| exportLinks | No | |
| md5Checksum | No | |
| permissions | No | |
| resourceKey | No | |
| sharingUser | No | |
| teamDriveId | No | |
| trashedTime | No | |
| webViewLink | No | |
| capabilities | No | |
| contentHints | No | |
| hasThumbnail | No | |
| modifiedByMe | No | |
| modifiedTime | No | |
| sha1Checksum | No | |
| trashingUser | No | |
| appProperties | No | |
| fileExtension | No | |
| permissionIds | No | |
| thumbnailLink | No | |
| folderColorRgb | No | |
| headRevisionId | No | |
| quotaBytesUsed | No | |
| sha256Checksum | No | |
| viewedByMeTime | No | |
| webContentLink | No | |
| isAppAuthorized | No | |
| shortcutDetails | No | |
| writersCanShare | No | |
| modifiedByMeTime | No | |
| originalFilename | No | |
| sharedWithMeTime | No | |
| thumbnailVersion | No | |
| explicitlyTrashed | No | |
| fullFileExtension | No | |
| lastModifyingUser | No | |
| linkShareMetadata | No | |
| imageMediaMetadata | No | |
| videoMediaMetadata | No | |
| contentRestrictions | No | |
| downloadRestrictions | No | |
| viewersCanCopyContent | No | |
| clientEncryptionDetails | No | |
| hasAugmentedPermissions | No | |
| copyRequiresWriterPermission | No | |
| inheritedPermissionsDisabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose meaningful traits: it is a POST, it is refused under --readonly safety profiles, the maximum file size is 5,120 GB, and the accepted MIME type rule is spelled out. It omits auth scope requirements, quota implications, and whether duplicate names are permitted, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The leading sentence is properly front-loaded, but the middle is Google docs boilerplate including a truncated URL fragment ("...guides/m") and verbose MIME-type hedging. The sibling tail is useful but reads as an appended dump rather than structured guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and the body/upload/size material is covered. However, for a 14-parameter nested-body mutation the description never says which fields are practically required (e.g. parents, name, mimeType) to place a file correctly, leaving a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description earns above that by explaining the routing between `params`, `body_file`, and `request_body` and naming representative File body fields. It does not clarify the deprecated query params (enforceSingleParent, supportsTeamDrives) beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Creates a file") and enumerates the sibling operations over the same resource, which lets an agent distinguish create from copy/update/delete without opening schemas. The sibling list is pure enumeration rather than routing, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use create versus copy, import, or update, and no prerequisites such as a target parent folder or required scopes. The only conditional guidance is the readonly-profile note, which is a constraint rather than usage selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.deleteA
Permanently deletes a file owned by the user without moving it to the trash. For more information, see Trash or delete files and folders. If the file belongs to a shared drive, the user must be an organizer on the parent folder. If the target is a folder, all descendants owned by the user are also deleted [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: copy, create, download, emptyTrash, export, generateCseToken, generateIds, get, list, listLabels, modifyLabels, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| enforceSingleParent | No | [query parameter] Deprecated: If an item isn't in a shared drive and its last parent is deleted but the item itself isn't, the item will be placed under its owner's root. | false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: permanent/irreversible, no trash fallback, cascade deletion of descendants when the target is a folder, shared-drive permission requirement, and the post-delete return value. It also flags refusal under read-only safety profiles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The permission and irreversibility facts are front-loaded and earn their place, but the 'request bodies are built from typed parameters… body_file' boilerplate is irrelevant to a bodyless DELETE and the long sibling enumeration adds bulk without routing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter destructive tool with no annotations and no output schema, the description covers side effects, permissions, irreversibility, and return shape. Missing only an explicit steer to the recoverable alternative, which is the main thing an agent deciding 'delete or trash?' would want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema baseline is 3; the description adds value by explaining precedence between typed flags, the `params` map, and `body_file`, and by tying the organizer requirement to shared-drive context. It still doesn't clarify when supportsAllDrives vs the deprecated supportsTeamDrives should be set.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with a crucial scope qualifier: 'Permanently deletes a file owned by the user without moving it to the trash.' This immediately separates it from trash-based flows like gmail.users.messages.trash or a soft-delete via update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear preconditions (file must be owned by the user; must be an `organizer` on the parent folder for shared-drive files) and signals permanence so the agent knows this is not the recoverable path. It does not explicitly name an alternative tool (e.g., emptyTrash or update-to-trash), so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.downloadC
Downloads the content of a file. For more information, see Download and export files. Operations are valid for 24 hours from the time of creation [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: copy, create, delete, emptyTrash, export, generateCseToken, generateIds, get, list, listLabels, modifyLabels, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] Required. The ID of the file to download. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| mimeType | No | [query parameter] Optional. The MIME type the file should be downloaded as. This field can only be set when downloading Google Workspace documents. For a list of supported MIME t | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| revisionId | No | [query parameter] Optional. The revision ID of the file to download. This field can only be set when downloading blob files, Google Docs, and Google Sheets. Returns `INVALID_ARGU |
Output Schema
| Name | Required | Description |
|---|---|---|
| done | No | |
| name | No | |
| error | No | |
| metadata | No | |
| response | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It does disclose some behavior (24-hour operation validity, refusal under read-only profiles, request-body construction), but the claim '[HTTP POST] — creates or triggers a change' is internally inconsistent with a content-download operation and could mislead an agent about side effects and safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is well front-loaded, but it is followed by boilerplate about request bodies and body_file that has no bearing on a download, plus a long flat sibling list. Several sentences do not earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, a nested params map, an output schema, and no annotations, the description should explain the media/binary nature of the response and the Workspace-document export path. Instead it spends its budget on generic wrapper mechanics and a contradictory POST/mutation note.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented. The description only adds generic request-plumbing semantics (typed parameters overriding the params map, body_file), which is irrelevant for a download call and adds nothing about mimeType or revisionId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a clear verb and resource: 'Downloads the content of a file.' However, it never distinguishes this from the closely related siblings it lists, notably export and get, which an agent must choose between for Workspace docs vs. blobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It lists sibling operations but gives no guidance on when to pick download over export or get, nor mentions the key precondition that Workspace-native documents must go through export with a mimeType. The only usage-adjacent statement is a generic wrapper note about read-only safety profiles.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.emptyTrashA
Permanently deletes all of the user's trashed files. For more information, see Trash or delete files and folders [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: copy, create, delete, download, export, generateCseToken, generateIds, get, list, listLabels, modifyLabels, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| driveId | No | [query parameter] If set, empties the trash of the provided shared drive. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| enforceSingleParent | No | [query parameter] Deprecated: If an item isn't in a shared drive and its last parent is deleted but the item itself isn't, the item will be placed under its owner's root. | false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does so well: it flags HTTP DELETE, states the action is irreversible with no documented undo, notes it is refused under --readonly safety profiles, and describes the return value. Missing are permission requirements and a caution that this wipes the entire trash in one call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The irreversible, whole-trash deletion is front-loaded in the first sentence, and the destructive/return-body boilerplate is compressed into single clauses. Nothing here is repeated from the schema or wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, zero-parameter-required tool with no annotations and no output schema, the definition covers danger level, undoability, safety-profile refusal, and return shape. The one real gap is scope: it never says whether the shared-drive trash is included only when driveId is set, which matters greatly for an irreversible call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the fields — including driveId and dry_run — are already documented in the schema; the description adds only the precedence rule that typed flags win over the `params` map and that `body_file` replaces built bodies. That is useful mechanism context but no new meaning for the operationally important parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific verb and resource with explicit scope: 'Permanently deletes all of the user's trashed files.' The word 'all' plus 'permanently' distinguishes it in spirit from drive.files.delete (single file), though the sibling list is dumped flat rather than used to draw that contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the verb and the sibling list. The description never says when to prefer this over drive.files.delete or a per-file removal, nor does it call out the shared-drive case that the driveId parameter enables. An agent must infer the choice from the word 'all'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.exportA
Exports a Google Workspace document to the requested MIME type and returns exported byte content. For more information, see Download and export files. Note that the exported content is limited to 10 MB [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: copy, create, delete, download, emptyTrash, generateCseToken, generateIds, get, list, listLabels, modifyLabels, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| mimeType | Yes | [query parameter] Required. The MIME type of the format requested for this export. For a list of supported MIME types, see [Export MIME types for Google Workspace documents](/wor | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It usefully discloses the 10 MB export limit and the HTTP GET nature, which are real behavioral constraints. However, the boilerplate 'Returns the requested resource as JSON — request bodies are built from...' self-contradicts the earlier 'returns exported byte content,' muddying the actual return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded well, but a large share of the text is generic wrapper boilerplate about request bodies and a long undifferentiated sibling list that doesn't earn its place for a GET export tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter read tool with no annotations and no output schema, the description covers purpose, the 10 MB limit, and return format. The contradictory boilerplate about JSON/request bodies leaves the actual output shape ambiguous, preventing a higher score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so fileId, mimeType, params, and body_file are already documented. The description adds marginal value by noting typed flags win over the params map and that body_file reads the body whole, but adds nothing on mimeType choices. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Exports) and resource (a Google Workspace document) plus the key differentiator: conversion to a requested MIME type returning byte content. An agent can tell this apart from get/download/copy without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The siblings are listed but never differentiated — it does not say when to choose export over download or get (e.g., Workspace-native docs needing MIME conversion). Usage is implied by the purpose but no explicit when/when-not guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.generateCseTokenB
Generates a CSE token which can be used to create or update CSE files [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: copy, create, delete, download, emptyTrash, export, generateIds, get, list, listLabels, modifyLabels, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | No | [query parameter] The ID of the file for which the JWT should be generated. If not provided, an id will be generated. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | No | [query parameter] The ID of the expected parent of the file. Used when generating a JWT for a new CSE file. If specified, the parent will be fetched, and if the parent is a share | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jwt | No | |
| kind | No | |
| fileId | No | |
| currentKaclsId | No | |
| currentKaclsName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It usefully discloses the HTTP method [HTTP GET] and that a JSON resource is returned, but omits CSE-specific behavior such as token lifetime, required encryption setup, and whether an ID is allocated when fileId is absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is well front-loaded, but the remaining text is generic boilerplate about building request bodies from typed parameters or body_file — advice that is nonsensical for a [HTTP GET] and is irrelevant here — followed by a long sibling name dump with no routing value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and the core purpose plus HTTP method are covered. Given a zero-required-parameter tool with full schema coverage, this is close to complete, though CSE auth/setup context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents fileId, parent, query, params, dry_run and body_file. The description's note that 'typed flags win over the params map' restates what the params schema field already says, adding no new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opening sentence names a specific verb (generates) and resource (a CSE token) and states its downstream use (creating/updating CSE files). It does not distinguish this tool from birth from the other ~13 drive.files siblings beyond listing their names, so an agent still has to infer when it applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Saying the token 'can be used to create or update CSE files' implies the use case, but there is no explicit condition for choosing this over drive.files.create or update, and no prerequisites for CSE (client-side encryption must be configured) are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.generateIdsB
Generates a set of file IDs which can be provided in create or copy requests. For more information, see Create and manage files [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: copy, create, delete, download, emptyTrash, export, generateCseToken, get, list, listLabels, modifyLabels, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | [query parameter] The type of items which the IDs can be used for. Supported values are `files` and `shortcuts`. Note that `shortcuts` are only supported in the `drive` `space`. | files |
| count | No | [query parameter] The number of IDs to return. | 10 |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| space | No | [query parameter] The space in which the IDs can be used to create files. Supported values are `drive` and `appDataFolder`. (Default: `drive`.) For more information, see [File or | drive |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ids | No | |
| kind | No | |
| space | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses [HTTP GET] (a useful read-only signal) but then adds generic boilerplate about request bodies, typed flags vs. `params`, and `body_file` that is largely inapplicable to a query-only GET endpoint, and it omits the genuinely important behavior — whether returned IDs are reserved/guaranteed unique or must be used promptly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Wait — the structure is front-loaded correctly but the second half is boilerplate about body_file and a long sibling name dump, so it is not waste-free. Corrected to 2: the opening sentence earns its place; the request-body boilerplate does not apply to a GET request and the sibling enumeration adds little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and the core purpose is covered. But for a 7-parameter endpoint with nesting (`params`), the description omits the semantics that matter (ID uniqueness/lifetime, relationship to create/copy) while padding with inapplicable body-construction text.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with `type`, `count`, `space`, and `query` all documented in the schema, so the baseline of 3 applies. The description adds no per-parameter meaning (e.g. practical limits on `count` or when `type=shortcuts` is legal) beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource — "Generates a set of file IDs which can be provided in create or copy requests" — which is unambiguous and matches the tool name. However, the sibling section only lists sibling names (copy, create, delete, ...) without saying how generateIds differs from just calling create, so differentiation is enumerated rather than explained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"can be provided in create or copy requests" implies the intended workflow (pre-fetch an ID when you need it before creating), but the description never states the condition explicitly, e.g. "use when you need the ID before the file exists." The sibling list names alternatives without offering any selection criteria, leaving the agent to infer placement in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.getA
Gets a file's metadata or content by ID. For more information, see Search for files and folders. If you provide the URL parameter alt=media, then the response includes the file contents in the response body. Downloading content with alt=media only works if the file is stored in Drive. To download Google Docs, Sheets, and Slides use files.export instead. For more information, see [Download and export files](https://developers.google.c [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: copy, create, delete, download, emptyTrash, export, generateCseToken, generateIds, list, listLabels, modifyLabels, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| includeLabels | No | [query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response. | |
| acknowledgeAbuse | No | [query parameter] Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when the `alt` parameter is set to `medi | false |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| includePermissionsForView | No | [query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| name | No | |
| size | No | |
| owners | No | |
| shared | No | |
| spaces | No | |
| driveId | No | |
| parents | No | |
| starred | No | |
| trashed | No | |
| version | No | |
| iconLink | No | |
| mimeType | No | |
| labelInfo | No | |
| ownedByMe | No | |
| properties | No | |
| viewedByMe | No | |
| createdTime | No | |
| description | No | |
| exportLinks | No | |
| md5Checksum | No | |
| permissions | No | |
| resourceKey | No | |
| sharingUser | No | |
| teamDriveId | No | |
| trashedTime | No | |
| webViewLink | No | |
| capabilities | No | |
| contentHints | No | |
| hasThumbnail | No | |
| modifiedByMe | No | |
| modifiedTime | No | |
| sha1Checksum | No | |
| trashingUser | No | |
| appProperties | No | |
| fileExtension | No | |
| permissionIds | No | |
| thumbnailLink | No | |
| folderColorRgb | No | |
| headRevisionId | No | |
| quotaBytesUsed | No | |
| sha256Checksum | No | |
| viewedByMeTime | No | |
| webContentLink | No | |
| isAppAuthorized | No | |
| shortcutDetails | No | |
| writersCanShare | No | |
| modifiedByMeTime | No | |
| originalFilename | No | |
| sharedWithMeTime | No | |
| thumbnailVersion | No | |
| explicitlyTrashed | No | |
| fullFileExtension | No | |
| lastModifyingUser | No | |
| linkShareMetadata | No | |
| imageMediaMetadata | No | |
| videoMediaMetadata | No | |
| contentRestrictions | No | |
| downloadRestrictions | No | |
| viewersCanCopyContent | No | |
| clientEncryptionDetails | No | |
| hasAugmentedPermissions | No | |
| copyRequiresWriterPermission | No | |
| inheritedPermissionsDisabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral burden. It usefully discloses that alt=media only works for files stored in Drive, but omits permission/scoping requirements and error behavior. The trailing harness boilerplate about request bodies and body_file is irrelevant and mildly confusing for a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence and export guidance are front-loaded and useful, but the text contains a truncated URL ('https://developers.google.c'), generic HTTP/body-building boilerplate, and an appended sibling list. These artifacts add noise rather than signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, the alt=media nuance, and the export alternative, and an output schema exists so return values need not be explained. However, with no annotations and ten parameters (including nested objects), the absence of permission requirements and the misleading body_file boilerplate leave gaps for a GET tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the alt=media query behavior, which is not even represented in the typed schema, giving the agent semantics beyond the parameter list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets a file's metadata or content by ID') and immediately distinguishes itself from a key sibling by naming files.export for Google Docs/Sheets/Slides. An agent can identify the tool's function without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear when-to-use condition ('alt=media' for file content) and an explicit alternative (files.export for Google-native formats). It does not address the drive.files.download sibling, which is the most likely competing tool for content retrieval, leaving one routing ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.listB
Lists the user's files. For more information, see Search for files and folders. This method accepts the q parameter, which is a search query combining one or more search terms. This method returns all files by default, including trashed files. If you don't want trashed files to appear in the list, use the trashed=false query parameter to remove trashed files from the results [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: copy, create, delete, download, emptyTrash, export, generateCseToken, generateIds, get, listLabels, modifyLabels, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | [query parameter] A query for filtering the file results. For supported syntax, see [Search for files and folders](/workspace/drive/api/guides/search-files). | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| corpus | No | [query parameter] Deprecated: The source of files to list. Use `corpora` instead. Values: `domain` = Files shared to the user's domain.; `user` = Files owned by or shared to the user.. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| spaces | No | [query parameter] A comma-separated list of spaces to query within the corpora. Supported values are `drive` and `appDataFolder`. For more information, see [File organization](ht | drive |
| corpora | No | [query parameter] Specifies a collection of items (files or documents) to which the query applies. Supported items include: * `user` * `domain` * `drive` * `allDrives` Prefer `us | |
| driveId | No | [query parameter] ID of the shared drive to search. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| orderBy | No | [query parameter] A comma-separated list of sort keys. Valid keys are: * `createdTime`: When the file was created. Avoid using this key for queries on large item collections as i | |
| pageSize | No | [query parameter] The maximum number of files to return. The service may return fewer than this value. If unspecified, at most 100 files will be returned for shared drives, and t | 100 |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response. | |
| teamDriveId | No | [query parameter] Deprecated: Use `driveId` instead. | |
| includeLabels | No | [query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response. | |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| includeTeamDriveItems | No | [query parameter] Deprecated: Use `includeItemsFromAllDrives` instead. | false |
| includeItemsFromAllDrives | No | [query parameter] Whether both My Drive and shared drive items should be included in results. | false |
| includePermissionsForView | No | [query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| files | No | |
| nextPageToken | No | |
| incompleteSearch | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full load. It usefully discloses the default-inclusion-of-trashed behavior and that the call is HTTP GET returning JSON, but says nothing about pagination semantics (pageSize default of 100, nextPageToken continuation) or required auth/scope for a 19-parameter list endpoint. That leaves meaningful behavior undisclosed for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core content (list behavior, trashed default, q syntax, docs link) is front-loaded, which is good. But a chunk of it is generic boilerplate about `body_file` and typed-vs-`params` precedence that is irrelevant to a GET, and the appended list of 13 sibling names adds length without routing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape need not be described, and the trashed-default caveat is the key behavioral trap. Still, for a 19-parameter paginated list endpoint with no annotations, the description omits pagination guidance and scope/corpus selection (driveId, corpora, supportsAllDrives), which are the main ways an agent will call this incorrectly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds real value by explaining that `q` combines search terms and by giving a working example (`trashed=false`) — a filter that isn't even a typed parameter and must go through `query`/`params`. That is guidance the schema alone does not supply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ("Lists the user's files") and adds that `q` is the filter query, so the agent knows this is a listing/search-over-files operation. The trailing sibling enumeration ('copy, create, delete, download...') names other tools without differentiating scope, so it doesn't fully separate this from other read paths like drive.files.get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one concrete usage rule — results include trashed files by default, add `trashed=false` to exclude them — which is genuinely actionable. But it never states when to use this over drive.files.get for a single file, nor when q-search is preferable to a plain listing, leaving the main routing decision implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.listLabelsB
Lists the labels on a file. For more information, see List labels on a file [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: copy, create, delete, download, emptyTrash, export, generateCseToken, generateIds, get, list, modifyLabels, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID for the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response. | |
| maxResults | No | [query parameter] The maximum number of labels to return per page. When not set, defaults to 100. | 100 |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| labels | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden; it does disclose the HTTP method (GET, implying read-only) and that the resource returns as JSON. However, it says nothing about authorization requirements, whether pagination must be followed via nextPageToken, or error behavior — and the body/`params` boilerplate is generic wrapper text irrelevant to a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is correctly front-loaded in the first sentence, but it is followed by a documentation link, an HTTP-method tag, a block about building request bodies that cannot apply to a GET, and a long comma-separated sibling list. Roughly half the text does not earn its place for this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape needn't be explained, and pagination parameters are covered in the schema. For a 7-parameter list tool with zero annotations, though, the description is silent on the auth/permission context and on how to iterate pages, leaving gaps the agent must infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents fileId, pageToken, and maxResults thoroughly; the description adds no endpoint-specific parameter meaning. The only extra is the meta-explanation that typed flags win over the `params` map and that `body_file` can supply a whole body, which is generic and not useful for this read-only list call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb and resource: 'Lists the labels on a file,' which is clearly distinct from sibling modifyLabels. The trailing sibling enumeration is a raw dump rather than differentiation, so it doesn't lift the score further.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus alternatives (e.g., use get for file metadata, modifyLabels to change labels) and no prerequisites such as required scopes or a permissions model. The sibling list merely names other tools without linking any of them to a selection condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.modifyLabelsA
Modifies the set of labels applied to a file. For more information, see Set a label field on a file. Returns a list of the labels that were added or modified [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ModifyLabelsRequest object accepting kind, labelModifications; pass it via params or whole via body_file Siblings over the same resource: copy, create, delete, download, emptyTrash, export, generateCseToken, generateIds, get, list, listLabels, update, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file to which the labels belong. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ModifyLabelsRequest object. | |
| request_body | No | Request body of type ModifyLabelsRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| modifiedLabels | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden; it clearly discloses that this is an HTTP POST mutation that creates/triggers a change and is refused under --readonly safety profiles. It does not cover permission requirements, reversibility, or exactly what happens to existing labels not mentioned in the request.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the description is not bloated overall, but it repeats return behavior with both 'Returns a list...' and 'Returns the API's response resource...' and appends a long sibling enumeration. Those repetitions reduce conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and a nested request body, it supplies the key context an agent needs: mutation/safety behavior, body shape, and parameter routing. Since an output schema exists, return values need not be fully explained; missing auth and reversibility details keep it from being complete at the highest level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description mentions ModifyLabelsRequest, kind, labelModifications, and the params/body_file routes, but this largely repeats what the schema already documents rather than adding deeper parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: modifies the set of labels applied to a file. It also explicitly lists same-resource siblings, making it clearly distinguishable from listLabels, update, and other drive.files operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides useful context such as the --readonly refusal and a link to label-field guidance, but does not explicitly say when to use this instead of drive.files.update, listLabels, or other label-related operations. The sibling list names alternatives without giving selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.updateB
Updates a file's metadata, content, or both. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might be changed automatically, such as modifiedDate. This method supports patch semantics. This method supports an /upload URI and accepts uploaded media with the following characteristics: - Maximum file size: 5,120 GB - Accepted Media MIME types: */* (Specify a valid MIME type, rather than the literal */* value. The literal */* is only used to indicate that any valid MIME type can be uploaded. For more information [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON File object accepting appProperties, capabilities, clientEncryptionDetails, contentHints, contentRestrictions, copyRequiresWriterPermission, createdTime, description and 57 more fields; pass it via params or whole via body_file Siblings over the same resource: copy, create, delete, download, emptyTrash, export, generateCseToken, generateIds, get, list, listLabels, modifyLabels, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON File object. | |
| addParents | No | [query parameter] A comma-separated list of parent IDs to add. | |
| ocrLanguage | No | [query parameter] A language hint for OCR processing during image import (ISO 639-1 code). | |
| request_body | No | Request body of type File: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| includeLabels | No | [query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response. | |
| removeParents | No | [query parameter] A comma-separated list of parent IDs to remove. | |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| enforceSingleParent | No | [query parameter] Deprecated: Adding files to multiple folders is no longer supported. Use shortcuts instead. | false |
| keepRevisionForever | No | [query parameter] Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for th | false |
| includePermissionsForView | No | [query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported. | |
| useContentAsIndexableText | No | [query parameter] Whether to use the uploaded content as indexable text. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| name | No | |
| size | No | |
| owners | No | |
| shared | No | |
| spaces | No | |
| driveId | No | |
| parents | No | |
| starred | No | |
| trashed | No | |
| version | No | |
| iconLink | No | |
| mimeType | No | |
| labelInfo | No | |
| ownedByMe | No | |
| properties | No | |
| viewedByMe | No | |
| createdTime | No | |
| description | No | |
| exportLinks | No | |
| md5Checksum | No | |
| permissions | No | |
| resourceKey | No | |
| sharingUser | No | |
| teamDriveId | No | |
| trashedTime | No | |
| webViewLink | No | |
| capabilities | No | |
| contentHints | No | |
| hasThumbnail | No | |
| modifiedByMe | No | |
| modifiedTime | No | |
| sha1Checksum | No | |
| trashingUser | No | |
| appProperties | No | |
| fileExtension | No | |
| permissionIds | No | |
| thumbnailLink | No | |
| folderColorRgb | No | |
| headRevisionId | No | |
| quotaBytesUsed | No | |
| sha256Checksum | No | |
| viewedByMeTime | No | |
| webContentLink | No | |
| isAppAuthorized | No | |
| shortcutDetails | No | |
| writersCanShare | No | |
| modifiedByMeTime | No | |
| originalFilename | No | |
| sharedWithMeTime | No | |
| thumbnailVersion | No | |
| explicitlyTrashed | No | |
| fullFileExtension | No | |
| lastModifyingUser | No | |
| linkShareMetadata | No | |
| imageMediaMetadata | No | |
| videoMediaMetadata | No | |
| contentRestrictions | No | |
| downloadRestrictions | No | |
| viewersCanCopyContent | No | |
| clientEncryptionDetails | No | |
| hasAugmentedPermissions | No | |
| copyRequiresWriterPermission | No | |
| inheritedPermissionsDisabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose useful behavior: patch semantics, automatic field changes like modifiedDate, upload size and MIME limits, and that it is 'refused under --readonly safety profiles.' It still omits permission/auth requirements, revision side effects, and conflict behavior for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key sentence is front-loaded, but the text is a run-on that blends API docs boilerplate with a broken fragment ('For more information [HTTP PATCH] — updates the resource') and a mangled bullet list. Roughly a third of the sentences add little for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter mutation tool with no annotations, the description covers the body-passing mechanism, patch semantics, and the return value ('Returns the API's response resource as JSON'), and an output schema exists. It is still missing auth/permission requirements and side-effect details that an agent would need before writing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real value by explaining the body contract ('pass it via params or whole via body_file') and the upload constraints that are not in the schema. It does not clarify the many File body fields, but the schema handles those.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb plus resource and scope: 'Updates a file's metadata, content, or both,' which separates it from copy/create/delete/get. However, the sibling list at the end merely names the alternatives without saying which one handles which task, so the differentiation is incomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It advises 'only populate fields in the request that you want to modify,' which is genuine patch-usage guidance, but there is no explicit statement of when to choose this over drive.files.modifyLabels or drive.permissions.update, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.files.watchA
Subscribes to changes to a file. For more information, see Notifications for resource changes [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Channel object accepting address, expiration, id, kind, params, payload, resourceId, resourceUri and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: copy, create, delete, download, emptyTrash, export, generateCseToken, generateIds, get, list, listLabels, modifyLabels, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object. | |
| request_body | No | Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| includeLabels | No | [query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response. | |
| acknowledgeAbuse | No | [query parameter] Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when the `alt` parameter is set to `medi | false |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| includePermissionsForView | No | [query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| type | No | |
| token | No | |
| params | No | |
| address | No | |
| payload | No | |
| expiration | No | |
| resourceId | No | |
| resourceUri | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load well: it discloses that this is a mutating HTTP POST that 'creates or triggers a change', that it is blocked under readonly safety profiles, and that it returns the API response resource as JSON. Missing lifecycle context — that the channel must later be stopped or that expirations need renewal — keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and safety constraint are front-loaded in the first two clauses, and the body-passing note is compact. The 'and 2 more fields' phrasing is vague and the trailing sibling enumeration is low-value filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-body tool with 11 parameters, the description covers what matters: the operation is a subscription, it is write-like and blocked in readonly mode, the body is a Channel object, and how to pass it. An output schema exists so return-value detail is not needed; only channel teardown/expiration guidance is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does add how the body may be supplied ('via params or whole via body_file') and enumerates Channel fields, but the schema already exposes the same request_body shape and body_file semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource: 'Subscribes to changes to a file.' The follow-up adds that it is an HTTP POST that creates/triggers a change, which sharpens the operation. The sibling list at the end is a raw dump rather than a functional contrast, so the closest neighbor (drive.changes.watch, watching the whole drive) is never disambiguated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicit guidance comes from 'Subscribes to changes to a file' plus the safety note that it is refused under --readonly profiles. But there is no explicit when-to-use versus drive.changes.watch or calendar.events.watch, and the trailing sibling list adds names without routing criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.operations.getB
Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | [URL path segment] The name of the operation resource. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| done | No | |
| name | No | |
| error | No | |
| metadata | No | |
| response | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose the transport ('HTTP GET') and the request-construction precedence rule (typed flags beat the `params` map), which is real added context. But for a polling tool it omits the most operationally important facts: whether repeated calls are side-effect free, what a completed vs pending response looks like, and any backend rate limits on polling frequency — it only defers to 'intervals as recommended by the API service' without stating them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and polling guidance are front-loaded in the first sentence, which is the right structure. The trailing sentence about request bodies is largely boilerplate for a GET endpoint and is the one part that does not fully earn its place, though the `body_file`/`params` precedence note has marginal value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and all five parameters are fully described in the schema. What is missing is the behavioral layer that no structured field covers: with zero annotations, the agent cannot tell from the definition whether polling is free of side effects, how to detect a terminal state, or how frequently to poll — all of which matter for correct invocation of a long-running-operation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the schema already documents `name`, `query`, `params`, `dry_run`, and `body_file` individually. The description restates the typed-parameter-over-`params`-map precedence and the `body_file` alternative but adds no meaning beyond the schema text, and notably says nothing about the format of the required `name` path segment.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource ('Gets the latest state of a long-running operation'), which is unambiguous and identifiable against the sibling list, none of which expose operations polling. It does not need sibling differentiation because no sibling overlaps, but it also never states the resource naming convention beyond the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage ('poll the operation result at intervals as recommended by the API service'), which tells the agent this is a repeated-polling tool rather than a one-shot fetch. However it never states when to stop polling, what condition signals completion, or what to do instead if the operation is already finished — the guidance is suggestive rather than actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.permissions.createA
Creates a permission for a file or shared drive. For more information, see Share files, folders, and drives. Warning: Concurrent permission modifications (such as update or delete) on the same file, folder, or shared drive aren't supported across any users or clients; only the last update is applied [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Permission object accepting allowFileDiscovery, deleted, displayName, domain, emailAddress, expirationTime, id, inheritedPermissionsDisabled and 8 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file or shared drive. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Permission object. | |
| emailMessage | No | [query parameter] A plain text custom message to include in the notification email. | |
| request_body | No | Request body of type Permission: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| transferOwnership | No | [query parameter] Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side ef | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| enforceSingleParent | No | [query parameter] Deprecated: See `moveToNewOwnersRoot` for details. | false |
| moveToNewOwnersRoot | No | [query parameter] This parameter only takes effect if the item isn't in a shared drive and the request is attempting to transfer the ownership of the item. If set to `true`, the | false |
| useDomainAdminAccess | No | [query parameter] Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file | false |
| sendNotificationEmail | No | [query parameter] Whether to send a notification email when sharing to users or groups. This defaults to `true` for users and groups, and is not allowed for other requests. It mu | |
| enforceExpansiveAccess | No | [query parameter] Deprecated: All requests use the expansive access rules. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| role | No | |
| type | No | |
| view | No | |
| domain | No | |
| deleted | No | |
| photoLink | No | |
| displayName | No | |
| emailAddress | No | |
| pendingOwner | No | |
| expirationTime | No | |
| permissionDetails | No | |
| allowFileDiscovery | No | |
| teamDrivePermissionDetails | No | |
| inheritedPermissionsDisabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does substantial work: it discloses the concurrency caveat (last-write-wins across clients), that this is an HTTP POST mutation refused under readonly safety profiles, and that a JSON Permission resource is returned. It stops short of stating the authorization prerequisites (owner/sharing rights) needed to create a permission, which is a meaningful gap for a mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the concurrency warning is prominent. The trailing field enumeration ("allowFileDiscovery, deleted, displayName...") and the bracket-tag HTTP POST boilerplate are partly redundant with the schema and dilute the prose slightly, but overall it is compact for the amount of content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter mutation with 100% schema coverage and an output schema, the description supplies the missing behavioral layer (concurrency caveat, readonly refusal, response shape, body-passing mechanism). An agent has enough to call it correctly without additional docs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is documented in the schema itself. The description adds only a partial field list for the Permission body plus the params/body_file mechanism, which is marginal value beyond the structured schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ("Creates a permission for a file or shared drive") and explicitly enumerates the sibling operations (delete, get, list, update) over the same resource, so an agent can place it precisely among the permissions family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list implies this is the create-side operation versus read/update/delete, but no conditional routing guidance is given (e.g., when to grant a permission here vs. via update to an existing one, or when to use transferOwnership). Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.permissions.deleteA
Deletes a permission. For more information, see Share files, folders, and drives. Warning: Concurrent permission modifications (such as update or delete) on the same file, folder, or shared drive aren't supported across any users or clients; only the last update is applied [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file or shared drive. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| permissionId | Yes | [URL path segment] The ID of the permission. | |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| useDomainAdminAccess | No | [query parameter] Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file | false |
| enforceExpansiveAccess | No | [query parameter] Deprecated: All requests use the expansive access rules. | false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does meaningful work: it flags irreversibility, warns that concurrent permission modifications are last-write-wins, notes refusal under read-only safety profiles, and describes the returned payload and how the request body is sourced. It omits authorization requirements and whether deletion is allowed for the last remaining owner, which are the biggest practical hazards for this call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The critical content is front-loaded, but the body is padded with templated boilerplate ("[HTTP DELETE] — removes the resource", "irreversible unless the API documents a trash/undo flow") and a long parenthetical on request-body construction that adds little for a call with no meaningful body. Several clauses could be cut without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation with no annotations and no output schema, the description covers the safety profile, the concurrency hazard, and the return value, which is most of what an agent needs. Gaps remain around auth/ownership preconditions and the fact that the response is typically empty, which matters given there is no output schema to clarify it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both required path parameters and every query flag are already documented in the schema. The description only adds the typed-parameters-win-over-`params` and `body_file` mechanics, which the schema already states, so it stays at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ("Deletes a permission") and closes by naming the sibling operations on the same resource (create, get, list, update), so an agent can place it in the family. It never states that the permission is scoped to a file/folder/drive, leaving the object of the deletion implicit until the schema is read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the sibling list hints that update should be used to modify rather than remove a permission, and the `--readonly` note indicates it is refused in read-only profiles. There is no explicit statement of when to choose delete over update, nor any precondition (e.g., ownership/admin rights) an agent should check first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.permissions.getA
Gets a permission by ID. For more information, see Share files, folders, and drives [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| permissionId | Yes | [URL path segment] The ID of the permission. | |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| useDomainAdminAccess | No | [query parameter] Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| role | No | |
| type | No | |
| view | No | |
| domain | No | |
| deleted | No | |
| photoLink | No | |
| displayName | No | |
| emailAddress | No | |
| pendingOwner | No | |
| expirationTime | No | |
| permissionDetails | No | |
| allowFileDiscovery | No | |
| teamDrivePermissionDetails | No | |
| inheritedPermissionsDisabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses HTTP GET and that the response is JSON, which establishes the basic read-only behavior. However, it does not mention auth/scopes, shared-drive access implications, or error behavior, and the generic body_file sentence is odd boilerplate for a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and useful. The middle sentence about request bodies and body_file is largely irrelevant boilerplate for a GET endpoint, which weakens conciseness and could confuse an agent about whether a request body is expected.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema and full schema coverage, so return values and parameters are documented elsewhere. The description supplies purpose, HTTP method, and sibling context, which is sufficient for correct invocation. Missing auth or permission prerequisites keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds only generic wrapper guidance about typed parameters winning over the params map and body_file usage, without adding meaning for fileId, permissionId, or the query flags. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Gets a permission by ID." It also names the sibling operations over the same resource (create, delete, list, update), so an agent can distinguish retrieval-by-ID from those alternatives without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list gives clear context that this is the retrieval-by-ID operation, with list as the related alternative for multiple permissions. It does not explicitly state when-not to use it or any prerequisites, so it falls short of the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.permissions.listB
Lists a file's or shared drive's permissions. For more information, see Share files, folders, and drives [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file or shared drive. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of permissions to return. The service may return fewer than this value. If unspecified, at most 100 permissions will be returned for shared d | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response. | |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| useDomainAdminAccess | No | [query parameter] Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file | false |
| includePermissionsForView | No | [query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| permissions | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral load. It does disclose the read-only nature via '[HTTP GET]' and states the return is JSON, but it omits permission/scope requirements, pagination behavior, and the fact that shared-drive access depends on supportsAllDrives. The 'request bodies ... read whole from body_file' sentence is boilerplate that is largely inapplicable to a GET list call and adds confusion rather than insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, which is good, but the remaining text is dominated by generic wrapper boilerplate about request bodies and body_file that is irrelevant for a GET list operation. It is not bloated, but roughly half of it does not earn its place for this specific tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters, 100% schema coverage and an output schema present, the description does not need to restate parameters or return values, and it correctly conveys the read semantics and resource scope. The main residual gap is the absence of any hint about shared-drive access requirements given the number of drive-related query flags, but overall it is sufficient to call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains fileId, pageSize, pageToken, supportsAllDrives and the rest; the baseline is 3. The description does add one piece of real semantics — that typed flags take precedence over the `params` map and that a whole body can come from `body_file` — but that concerns the request-building wrapper, not this endpoint's own parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: listing a file's or shared drive's permissions, which is clearly a read/enumeration operation. It also names the sibling operations over the same resource (create, delete, get, update), so an agent can place it in the CRUD family. It stops short of saying what distinguishes list from get in practice, so it is clear but not maximally differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Siblings over the same resource: create, delete, get, update' tells the agent that other operations exist but gives no conditions for choosing list over get, nor any exclusions. There is no statement about when this tool is the right choice versus retrieving a single permission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.permissions.updateA
Updates a permission with patch semantics. For more information, see Share files, folders, and drives. Warning: Concurrent permission modifications (such as update or delete) on the same file, folder, or shared drive aren't supported across any users or clients; only the last update is applied [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Permission object accepting allowFileDiscovery, deleted, displayName, domain, emailAddress, expirationTime, id, inheritedPermissionsDisabled and 8 more fields; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file or shared drive. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Permission object. | |
| permissionId | Yes | [URL path segment] The ID of the permission. | |
| request_body | No | Request body of type Permission: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| removeExpiration | No | [query parameter] Whether to remove the expiration date. | false |
| supportsAllDrives | No | [query parameter] Whether the requesting application supports both My Drives and shared drives. | false |
| transferOwnership | No | [query parameter] Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side ef | false |
| supportsTeamDrives | No | [query parameter] Deprecated: Use `supportsAllDrives` instead. | false |
| useDomainAdminAccess | No | [query parameter] Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file | false |
| enforceExpansiveAccess | No | [query parameter] Deprecated: All requests use the expansive access rules. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| role | No | |
| type | No | |
| view | No | |
| domain | No | |
| deleted | No | |
| photoLink | No | |
| displayName | No | |
| emailAddress | No | |
| pendingOwner | No | |
| expirationTime | No | |
| permissionDetails | No | |
| allowFileDiscovery | No | |
| teamDrivePermissionDetails | No | |
| inheritedPermissionsDisabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does a solid job: it discloses patch semantics, a concurrency warning, readonly refusal, response shape, and request-body handling. It does not cover required authorization scopes or what happens when the permission does not exist, so it is strong but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and warning, and most details earn their place for a complex mutation tool. It is somewhat dense and run-on, but not bloated or repetitive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a 13-parameter nested mutation with an output schema, the description supplies important missing context: concurrency behavior, readonly refusal, body-passing mechanics, and sibling routing. Authorization requirements and partial failure behavior are not covered, but the definition is broadly complete for invocation guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 13 parameters, including the nested Permission body and query parameters. The description adds useful guidance on passing the body via `params` or `body_file`, but it does not materially clarify the query parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Updates a permission with patch semantics,' and it clearly identifies the target as a Drive permission. It also names the sibling operations (create, delete, get, list), so an agent can distinguish this mutation from adjacent permission tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains that this is a patch-style update and warns about concurrent modifications, which is useful context for choosing this tool. It also lists sibling operations, but it does not explicitly state when to prefer update over create or give concrete exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.replies.createA
Creates a reply to a comment. For more information, see Manage comments and replies [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Reply object accepting action, assigneeEmailAddress, author, content, createdTime, deleted, htmlContent, id and 3 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Reply object. | |
| commentId | Yes | [URL path segment] The ID of the comment. | |
| request_body | No | Request body of type Reply: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| action | No | |
| author | No | |
| content | No | |
| deleted | No | |
| createdTime | No | |
| htmlContent | No | |
| modifiedTime | No | |
| assigneeEmailAddress | No | |
| mentionedEmailAddresses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does well: it discloses that this is an HTTP POST that creates/triggers a change, that it is refused under --readonly safety profiles, and that it returns the API's response resource as JSON. It does not mention required OAuth scopes or permission constraints, which is the main remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is a clean, front-loaded statement, but the middle section pads with a docs link and an 'id and 3 more fields' enumeration that duplicates the schema rather than adding information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, the description supplies the safety profile, the mutation status, the return shape (reinforcing the existing output schema), and both body-passing mechanisms. Only authorization expectations are missing, which keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the body fields (action, content, assigneeEmailAddress, etc.) are already documented in the schema, so the description's enumeration mostly repeats structured data. It does add value by clarifying the merge behavior between `params`, `body_file` and `request_body`, but leaves field semantics (e.g., allowed `action` values) unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates a reply to a comment') and explicitly names the sibling operations over the same resource (delete, get, list, update), which lets an agent distinguish it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb and the sibling list, and the read-only refusal note acts as a gating condition, but there is no explicit 'use this instead of drive.comments.create when...' or prerequisite guidance (e.g., who may reply to a comment).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.replies.deleteA
Deletes a reply. For more information, see Manage comments and replies [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| replyId | Yes | [URL path segment] The ID of the reply. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| commentId | Yes | [URL path segment] The ID of the comment. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description carries the full burden well: it declares the operation irreversible (no trash/undo flow), notes it is refused under --readonly safety profiles, and describes the post-delete response as the resource state or empty. That is exactly the mutation context an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence is front-loaded and clean, but the second sentence is a long run-on cramming HTTP verb, irreversibility, safety-profile behavior, response shape, and body-construction rules together. It is dense rather than efficiently structured, and the docs link adds little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive nested-resource tool with 7 params and no output schema, the description covers the return shape, irreversibility, dry_run safety, and parameter precedence. Only the interaction with the parent comment/file (e.g., whether deleting the last reply affects the comment) is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so fileId/commentId/replyId, dry_run, params and body_file are already documented. The description restates the typed-params-beat-params-map and body_file precedence but adds no syntax, constraints, or examples beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Deletes a reply') and enumerates the sibling operations over the same resource (create, get, list, update), so an agent can place it precisely in the CRUD family without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It lists sibling tools by name, which implies this is the removal option, but it never states when to delete vs. update a reply, nor any prerequisites (e.g., author ownership, comment resolution state). Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.replies.getB
Gets a reply by ID. For more information, see Manage comments and replies [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| replyId | Yes | [URL path segment] The ID of the reply. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| commentId | Yes | [URL path segment] The ID of the comment. | |
| includeDeleted | No | [query parameter] Whether to return deleted replies. Deleted replies don't include their original content. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| action | No | |
| author | No | |
| content | No | |
| deleted | No | |
| createdTime | No | |
| htmlContent | No | |
| modifiedTime | No | |
| assigneeEmailAddress | No | |
| mentionedEmailAddresses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden; it does disclose '[HTTP GET]' (implying a read-only, non-destructive call) and that the response is the requested resource as JSON. However, it omits any permission/authorization context and, more problematically, spends its behavioural content on request-body assembly ('body_file', typed params winning), which is irrelevant boilerplate for a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is well front-loaded, but the second is a long boilerplate clause about building request bodies that does not apply to a GET, followed by a doc link and a sibling roll-call. Roughly half the text is padding for this operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and 100% schema coverage, return values and parameters need not be explained, so the core is covered. Still, the description leaves the caller without auth/scope hints and includes misleading request-body guidance for a read call, so it is adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (fileId, commentId, replyId, includeDeleted, params, query, body_file, dry_run) is already documented in the schema; the baseline of 3 applies. The description adds only the generic precedence rule 'typed flags win over the `params` map', which the schema already states, and nothing about includeDeleted semantics or ID sourcing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Gets a reply by ID" gives a specific verb and resource, and the sentence naming the siblings (create, delete, list, update) on the same resource helps an agent place this tool among near-identical neighbours. It stops short of saying which API/parent resource the reply belongs to (a Drive comment), which is a small ambiguity given the generic word 'reply'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description enumerates the sibling operations over the same resource, which implies 'use this instead of list when you know the ID', but it never states that condition explicitly or says when not to use it. Usage has to be inferred from the verb rather than from stated guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.replies.listB
Lists a comment's replies. For more information, see Manage comments and replies [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of replies to return. The service may return fewer than this value. If unspecified, at most 20 replies will be returned. The maximum value is | 20 |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| commentId | Yes | [URL path segment] The ID of the comment. | |
| pageToken | No | [query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response. | |
| includeDeleted | No | [query parameter] Whether to include deleted replies. Deleted replies don't include their original content. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| replies | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full disclosure burden. It does convey read-only behavior via '[HTTP GET]' and says the response is JSON, but the body_file/params paragraph describes request-body construction that is irrelevant to a GET and adds noise and potential confusion. It says nothing about pagination behavior, permission requirements, or whether deleted replies require a flag.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded well and the doc link is compact, but the middle paragraph on request bodies and body_file is boilerplate that does not apply to a read-only list call. The trailing sibling enumeration is terse but only partially useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Contextual needs are modest: an output schema exists and the 100%-covered schema documents the pagination and filtering parameters, so the description needn't restate them. However, it omits any mention that replies are paginated or that includeDeleted affects returned content, and its transport boilerplate is mismatched to a GET operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with fileId, commentId, pageSize, pageToken, and includeDeleted all documented in the schema itself. The description adds no parameter-level meaning of its own, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource ('Lists a comment's replies'), which unambiguously identifies the operation. The sibling line ('create, delete, get, update') confirms this is the enumeration variant over the replies resource, though it stops short of contrasting against the adjacent drive.comments.list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Use is implied by the verb 'list' and by naming the sibling mutations, but there is no explicit statement of when to reach for this tool versus drive.comments.list or drive.replies.get. The link to the Manage comments guide offers some context, though it is generic rather than decision-oriented.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.replies.updateA
Updates a reply with patch semantics. For more information, see Manage comments and replies [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Reply object accepting action, assigneeEmailAddress, author, content, createdTime, deleted, htmlContent, id and 3 more fields; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| replyId | Yes | [URL path segment] The ID of the reply. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Reply object. | |
| commentId | Yes | [URL path segment] The ID of the comment. | |
| request_body | No | Request body of type Reply: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| action | No | |
| author | No | |
| content | No | |
| deleted | No | |
| createdTime | No | |
| htmlContent | No | |
| modifiedTime | No | |
| assigneeEmailAddress | No | |
| mentionedEmailAddresses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and does a solid job: it discloses patch semantics (partial mutation), the HTTP PATCH method, that the call is refused under --readonly safety profiles, and that it returns the API response resource as JSON. It omits error behavior and permission requirements, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core verb+resource, then method, safety note, return shape, and siblings in a compact paragraph. The embedded documentation link and the trailing sibling list add length without much decision value, but there is no filler sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be spelled out, and the description still notes JSON response resource. For a mutation tool with zero annotations it covers method, safety profile, body mechanism, and siblings; the notable remaining gap is which Reply fields are actually patchable versus read-only.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description enumerates body fields ('action, assigneeEmailAddress, author, content...') and explains the params-vs-body_file mechanism, but that largely restates the request_body schema; it doesn't clarify which fields are actually mutable under patch semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates a reply with patch semantics'), which is unambiguous and immediately differentiates it from the read/create/delete siblings it later names. It stops short of explaining how 'update' differs behaviorally from the create/get/list siblings beyond the verb, so it's clear but not maximally distinguishing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists the sibling operations ('create, delete, get, list') which gives some routing context, and notes the readonly-profile refusal. However, it never says when to prefer this tool, what preconditions exist (e.g. you must own the comment or have edit rights), or why one would patch rather than delete-and-recreate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.revisions.deleteA
Permanently deletes a file version. You can only delete revisions for files with binary content in Google Drive, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted. For more information, see Manage file revisions [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| revisionId | Yes | [URL path segment] The ID of the revision. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so well: it states the operation is permanent, notes irreversibility unless the API documents a trash/undo flow, mentions refusal under --readonly safety profiles, and describes the return value as the post-delete resource state or empty JSON.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key deletion behavior and restrictions are front-loaded effectively. However, the description includes generic wrapper text about request-body construction that is largely irrelevant for a DELETE operation, plus a terse sibling list, making it longer and less focused than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description provides the behavioral context an agent needs: it explains the destructive and irreversible nature, the safety-profile refusal, the restrictions on deletable revisions, and the return value. Parameter details are fully covered by the schema, so no critical gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so fileId, revisionId, and the wrapper parameters are already documented in the schema. The description adds no parameter-specific meaning beyond repeating generic behavior about typed parameters winning over the params map and body_file handling, which is already covered by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Permanently deletes a file version.' It also clarifies the scope by stating that only binary-content revisions can be deleted and that Google Docs/Sheets and the last remaining version cannot, which distinguishes this tool from siblings like get, list, and update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-not conditions: non-binary files and the final remaining revision cannot be deleted. It names sibling tools over the same resource (get, list, update), but it does not explicitly say when to prefer those alternatives, so it falls short of a full when-to-use/when-not/alternatives statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.revisions.getB
Gets a revision's metadata or content by ID. For more information, see Manage file revisions [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| revisionId | Yes | [URL path segment] The ID of the revision. | |
| acknowledgeAbuse | No | [query parameter] Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when the `alt` parameter is set to `medi | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| size | No | |
| mimeType | No | |
| published | No | |
| exportLinks | No | |
| keepForever | No | |
| md5Checksum | No | |
| publishAuto | No | |
| modifiedTime | No | |
| publishedLink | No | |
| originalFilename | No | |
| lastModifyingUser | No | |
| publishedOutsideDomain | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It discloses the HTTP GET method and JSON return, which establishes read-only behavior, but it omits the key operational detail that content retrieval requires the `alt=media` query parameter — that only appears buried in the `acknowledgeAbuse` schema text.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is correctly front-loaded in sentence one, but the middle transport paragraph about `body_file` and request-body construction is largely irrelevant for a GET request, and the documentation link plus sibling list add bulk without much signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and all 7 parameters are documented in the schema. However, for a tool whose primary alternate mode is downloading revision content, the absence of any mention of media download semantics or `alt=media` usage leaves a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description restates the precedence rule that typed flags win over the `params` map, but that is already documented in the `params` schema entry, so it adds little beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource — "Gets a revision's metadata or content by ID" — which is immediately distinguishable from list/delete/update. It names the sibling operations over the same resource but does not explain how they differ, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance. The trailing "Siblings over the same resource: delete, list, update" merely enumerates alternatives without stating the condition that selects this one, and nothing tells the agent how to choose between retrieving metadata versus content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.revisions.listB
Lists a file's revisions. For more information, see Manage file revisions. Important: The list of revisions returned by this method might be incomplete for files with a large revision history, including frequently edited Google Docs, Sheets, and Slides. Older revisions might be omitted from the response, meaning the first revision returned may not be the oldest existing revision. The revision history visible in the Workspace editor user interface might be more complete than the list returned by the API [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of revisions to return. The service may return fewer than this value. If unspecified, at most 200 revisions will be returned. The maximum val | 200 |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| revisions | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full load. It does add real behavioral value by warning that results can be incomplete for large revision histories and that older revisions may be dropped — non-obvious and important. However, it says nothing about auth/scope requirements, permissions, or ordering of returned revisions, which matters for a read tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The valuable caveat about incomplete revision history is front-loaded, which is good. But the trailing boilerplate about JSON responses, typed parameters versus the params map, and body_file is generic transport text that dilutes the tool-specific content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape needn't be explained, and the key correctness risk (truncated revision history) is disclosed. Pagination is covered by the schema. Missing only auth/permission expectations, which is a minor gap for a read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents fileId, pageSize, pageToken, params, query, dry_run, and body_file. The description's only parameter-relevant note (typed flags win over the params map) is generic plumbing rather than added semantic meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Lists a file's revisions") and explicitly frames the sibling set ("delete, get, update"), so the agent can separate it from the other revision operations. It stops short of a crisp differentiator sentence (e.g. "use get to fetch a single revision"), but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the sibling list and by the caveat that the API history may be less complete than the Workspace editor UI. There is no explicit "use this when..." / "do not use when..." guidance nor a pointer to which sibling to pick for a single revision or a restore.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.revisions.updateA
Updates a revision with patch semantics. For more information, see Manage file revisions [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Revision object accepting exportLinks, id, keepForever, kind, lastModifyingUser, md5Checksum, mimeType, modifiedTime and 6 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| fileId | Yes | [URL path segment] The ID of the file. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Revision object. | |
| revisionId | Yes | [URL path segment] The ID of the revision. | |
| request_body | No | Request body of type Revision: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| size | No | |
| mimeType | No | |
| published | No | |
| exportLinks | No | |
| keepForever | No | |
| md5Checksum | No | |
| publishAuto | No | |
| modifiedTime | No | |
| publishedLink | No | |
| originalFilename | No | |
| lastModifyingUser | No | |
| publishedOutsideDomain | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the HTTP method, that the operation is a mutation refused under readonly safety profiles, that it returns the API response resource as JSON, and how the body is supplied. It stops short of saying what actually changes on the revision or whether the change is reversible, which for a mutation is the remaining meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then progressively adds safety, return, and body details, with no filler. Minor redundancy between 'patch semantics' and the bracketed '[HTTP PATCH] — updates the resource' restatement, plus a docs link that occupies space without adding operational guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with nested body objects, the description covers purpose, safety-profile behavior, request-body shape and transport options; the existence of an output schema removes the need to detail return values further. The only omission is the practical effect of the patch (which revision attributes are mutable).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds some value by enumerating accepted Revision body fields and clarifying the params-vs-body_file duality, but this largely restates what the schema's nested request_body object already exposes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates a revision with patch semantics') and names the sibling operations on the same resource (delete, get, list), so an agent can place it precisely in the CRUD family. It does not differentiate in depth from a hypothetical full-update sibling, but the patch-semantics qualifier does real work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through 'patch semantics' (partial update) and the note that it is refused under --readonly safety profiles, which tells the agent when the call will fail. However there is no explicit statement of when to choose this over delete/get/list or of prerequisites (e.g., that only certain revision fields like keepForever are meaningfully mutable).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.teamdrives.createA
Deprecated: Use drives.create instead [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON TeamDrive object accepting backgroundImageFile, backgroundImageLink, capabilities, colorRgb, createdTime, id, kind, name and 3 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON TeamDrive object. | |
| requestId | Yes | [query parameter] Required. An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a Team Drive. A repeated request by the same us | |
| request_body | No | Request body of type TeamDrive: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| name | No | |
| themeId | No | |
| colorRgb | No | |
| orgUnitId | No | |
| createdTime | No | |
| capabilities | No | |
| restrictions | No | |
| backgroundImageFile | No | |
| backgroundImageLink | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden; it discloses the mutation side effect, refusal under --readonly profiles, idempotency-relevant behavior via the requestId query param context, and that the API response resource is returned as JSON. It omits permission/authorization requirements (who may create a Team Drive) and whether a missing requestId causes duplicate creation, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the deprecation and replacement, which is the single most decision-relevant fact, and there is no filler. The single long sentence with an embedded field list and sibling list is dense but each clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated mutation endpoint with a full output schema, the description covers routing (use drives.create), safety-profile behavior, request-body composition, and the return format. Since an output schema exists, it need not describe response fields, and nothing an agent needs to avoid or make the call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does add some value by enumerating the TeamDrive body fields (backgroundImageFile, colorRgb, createdTime, id, kind, name, 'and 3 more') and clarifying the params-vs-body_file routing, but the latter largely restates the schema's own parameter and request_body descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific verb and resource ('creates … a TeamDrive') and immediately flags deprecation with the replacement tool, so an agent can distinguish it from drive.drives.create. The phrase 'creates or triggers a change' is a bit vague, but the closing sibling list (delete, get, list, update) makes the resource scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit alternative and exclusion: 'Deprecated: Use `drives.create` instead' plus 'refused under --readonly safety profiles.' An agent knows both the preferred tool and a hard condition under which this call fails, with no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.teamdrives.deleteA
Deprecated: Use drives.delete instead [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| teamDriveId | Yes | [URL path segment] The ID of the Team Drive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does real work: it discloses irreversibility (absent a documented trash/undo flow), that the call is refused under --readonly safety profiles, and that it returns the post-delete resource state as JSON. However, it omits permission/auth requirements and any rate-limit or error behavior for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deprecation warning and replacement are correctly front-loaded, and the whole definition is a single compressed paragraph with no filler. The em-dash-chained clauses make it denser than necessary, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter, no-output-schema destructive tool, the description covers migration path, irreversibility, safety-profile refusal, return shape, and request-body construction — everything an agent needs to call or avoid it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all five parameters including teamDriveId and dry_run are already documented. The description restates the typed-flags-win-over-`params` precedence and the `body_file` whole-body path, which mostly duplicates existing schema text rather than adding new meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific action (HTTP DELETE, removes the resource) and immediately names the replacement tool `drives.delete`, so an agent can distinguish this deprecated Team Drive deletion from its siblings. The trailing sibling list (create, get, list, update) further pins down the resource scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use `drives.delete` instead, which is the strongest possible routing guidance for a deprecated endpoint. It also enumerates the alternative operations over the same resource, leaving no ambiguity about which tool to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.teamdrives.getA
Deprecated: Use drives.get instead [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| teamDriveId | Yes | [URL path segment] The ID of the Team Drive | |
| useDomainAdminAccess | No | [query parameter] Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the T | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| name | No | |
| themeId | No | |
| colorRgb | No | |
| orgUnitId | No | |
| createdTime | No | |
| capabilities | No | |
| restrictions | No | |
| backgroundImageFile | No | |
| backgroundImageLink | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It usefully discloses deprecation status and the GET/read nature of the call, but says nothing about authorization requirements, domain-admin behavior, or what a failure looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deprecation warning is correctly front-loaded and immediately actionable. However, the middle sentence about request bodies and `body_file` is irrelevant for an HTTP GET that sends no body, so real estate is spent on content that cannot apply here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated read with an output schema and fully described parameters, the essentials are nearly covered: what it is, that it is being replaced, and how parameters are assembled. What is missing is a one-clause statement of what a Team Drive resource is being fetched by ID, which would let an agent decide without cross-referencing the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all six parameters are already documented in the schema, and the 3 baseline applies. The description adds one piece of meaning the schema doesn't state directly — that typed parameters override the `params` map and that `body_file` replaces parameter-built bodies — but this is generic wrapper boilerplate rather than insight specific to this endpoint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the operation (HTTP GET, returns the requested resource as JSON) and lists the sibling operations (create, delete, list, update) so an agent can locate it within the teamdrives family. The concrete resource type ('Team Drive') is left to the tool name and the `teamDriveId` schema field rather than stated outright, which keeps it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit 'Deprecated: Use `drives.get` instead', which is a direct alternative-naming instruction an agent can act on without inference. It does not explain what the replacement does or when this call might still be needed, so it stops short of full when/when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.teamdrives.listB
Deprecated: Use drives.list instead [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | [query parameter] Query string for searching Team Drives. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Maximum number of Team Drives to return. | 10 |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Page token for Team Drives. | |
| useDomainAdminAccess | No | [query parameter] Issue the request as a domain administrator; if set to true, then all Team Drives of the domain in which the requester is an administrator are returned. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| teamDrives | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden; it does disclose the HTTP method (GET) and JSON response, which signals a safe read. However, most of the text is generic request-construction boilerplate about body building and `body_file`, which is irrelevant (and mildly confusing) for a GET listing operation, and it says nothing about pagination, permission scope, or domain-admin behavior effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deprecation warning is correctly front-loaded, which is the single most important fact. But the middle clause about request bodies and `body_file` is dead weight for a read-only listing call and dilutes the actionable guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the deprecation pointer covers the main decision an agent must make. Still, a deprecated eight-parameter listing call with no annotations would benefit from a note on pagination and on whether the legacy endpoint still returns results, neither of which is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the eight parameters (q, pageSize, pageToken, useDomainAdminAccess, etc.) is already documented in the schema, making 3 the baseline. The description adds no per-parameter meaning; its only cross-parameter remark — typed flags win over the `params` map — merely restates what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the deprecation and the replacement (`drives.list`), which implies the resource being enumerated, and it names the immediate siblings (create, delete, get, update). But the actual verb-noun statement of what this call does is replaced by generic boilerplate ("Returns the requested resource as JSON"), so an agent learns it is a legacy list-like call mostly from the tool name rather than the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The very first token is an explicit exclusion: "Deprecated: Use `drives.list` instead," naming the exact alternative an agent should pick. It never states the conditions under which, if any, this legacy variant should still be invoked, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive.teamdrives.updateA
Deprecated: Use drives.update instead [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON TeamDrive object accepting backgroundImageFile, backgroundImageLink, capabilities, colorRgb, createdTime, id, kind, name and 3 more fields; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON TeamDrive object. | |
| teamDriveId | Yes | [URL path segment] The ID of the Team Drive | |
| request_body | No | Request body of type TeamDrive: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| useDomainAdminAccess | No | [query parameter] Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the T | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| name | No | |
| themeId | No | |
| colorRgb | No | |
| orgUnitId | No | |
| createdTime | No | |
| capabilities | No | |
| restrictions | No | |
| backgroundImageFile | No | |
| backgroundImageLink | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the whole burden — and it does disclose the deprecation status, the HTTP method (PATCH, implying partial update), that read-only safety profiles will refuse the call, and that the API response resource is returned as JSON. What's missing is permission/authorization requirements and what happens to fields not supplied on a partial update.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Deprecation is front-loaded in the first three words, and every subsequent clause (method, safety refusal, return shape, body fields, siblings) adds distinct information. Dense em-dash packing, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated 7-parameter mutation with an output schema present, the definition covers the essentials: deprecation redirect, safety-profile refusal, body source options, and sibling operations. Return-value explanation is unnecessary given the output schema, so the remaining gap is only authorization/permission context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents teamDriveId, params, body_file, dry_run, query and useDomainAdminAccess. The description adds only that the body is a TeamDrive object passed via `params` or `body_file` and enumerates its top-level fields, largely duplicating the schema's request_body definition. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the verb and resource ('updates the resource' via HTTP PATCH on TeamDrive) and immediately signals deprecation in favour of `drives.update`. The phrase 'updates the resource' is somewhat circular, relying on the name for the resource identity, but the sibling list (create, delete, get, list) and the PATCH/TeamDrive framing make its scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent away from this tool: 'Deprecated: Use `drives.update` instead', and adds a hard operational constraint ('refused under --readonly safety profiles'). It enumerates sibling operations over the same resource, though it doesn't state whether any scenario still justifies calling this deprecated endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forms.forms.batchUpdateA
Change the form with a batch of updates [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchUpdateFormRequest object accepting includeFormInResponse, requests, writeControl; pass it via params or whole via body_file Siblings over the same resource: create, get, setPublishSettings.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| formId | Yes | [URL path segment] Required. The form ID. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdateFormRequest object. | |
| request_body | No | Request body of type BatchUpdateFormRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| form | No | |
| replies | No | |
| writeControl | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that the call mutates ('creates or triggers a change'), that it is blocked under --readonly safety profiles, and that it returns the API response resource as JSON. It does not mention that batch requests can delete form items or describe ordering/atomicity behavior of the batch, which would matter for a destructive-capable tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and safety caveat, then the return/body contract, then sibling routing. Dense but every clause carries information; the only mild cost is a long run-on middle sentence mixing return value and request format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with rich nested schema and an output schema, the description supplies the missing pieces: it is a write, it is refused in readonly profiles, and how to supply the body. Batch semantics (that individual requests include deleteItem/moveItem and may be partially destructive) are left entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents formId, params, body_file, dry_run, and the nested BatchUpdateFormRequest. The description only restates the body routing ('pass it via params or whole via body_file') and the three top-level body fields — useful reinforcement but not new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb + resource + mechanism: 'Change the form with a batch of updates', and notes it is an HTTP POST mutation. It names the sibling tools over the same resource (create, get, setPublishSettings), so the agent can place it. It stops short of saying which sub-operations the batch supports (add/move/delete/update items, form info, settings), which the schema carries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list at the end implies routing (read with get, create with create), and 'refused under --readonly safety profiles' tells the agent when this call will fail. But there is no explicit 'use this instead of X when Y' condition and no prerequisites stated, leaving selection to inference from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forms.forms.createA
Create a new form using the title given in the provided form message in the request. Important: Only the form.info.title and form.info.document_title fields are copied to the new form. All other fields including the form description, items and settings are disallowed. To create a new form and add items, you must first call forms.create to create an empty form with a title and (optional) document title, and then call forms.update to add the items [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Form object accepting formId, info, items, linkedSheetId, publishSettings, responderUri, revisionId, settings; pass it via params or whole via body_file Siblings over the same resource: batchUpdate, get, setPublishSettings.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Form object. | |
| unpublished | No | [query parameter] Optional. Whether the form is unpublished. If set to `true`, the form doesn't accept responses. If set to `false` or unset, the form is published and accepts re | |
| request_body | No | Request body of type Form: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| info | No | |
| items | No | |
| formId | No | |
| settings | No | |
| revisionId | No | |
| responderUri | No | |
| linkedSheetId | No | |
| publishSettings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses the mutation verb, the read-only refusal condition, the surprising destructive-ish semantics that all other supplied fields (description, items, settings) are silently not applied, and that the API response resource is returned as JSON. It does not cover auth/scopes or error behavior, leaving a small gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The critical restriction and the create-then-update workflow are front-loaded, which is good, but the text is a dense run-on mixing documentation, a bracketed '[HTTP POST]' transport note, a body-delivery explanation, and a sibling list. Several of those clauses are boilerplate that dilutes the two sentences an agent actually needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter, deeply nested body tool with an output schema, the description supplies the decisive context: fields that will be ignored, the two-step creation pattern, and how to pass the body. Only minor gaps remain (auth/permission requirements, and the camelCase mismatch between 'document_title' in prose and 'documentTitle' in the schema).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it enumerates the body fields (formId, info, items, linkedSheetId, publishSettings, responderUri, revisionId, settings) and explains the two delivery paths (`params` vs whole `body_file`). Crucially it warns that items and settings in that body will not take effect — information the schema alone actively misleads on.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new form using the title given in the provided form message') and immediately scopes it: only form.info.title and document_title are used. It also names the sibling tools over the same resource (batchUpdate, get, setPublishSettings), so the agent can place it in the family without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit workflow: create an empty form here, then call forms.update to add items, which is exactly the decision an agent is likely to get wrong. It also flags that the call is refused under --readonly profiles. It stops short of fully routing between the listed siblings (batchUpdate/get/setPublishSettings), which is why this is a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forms.forms.getA
Get a form [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchUpdate, create, setPublishSettings.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| formId | Yes | [URL path segment] Required. The form ID. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| info | No | |
| items | No | |
| formId | No | |
| settings | No | |
| revisionId | No | |
| responderUri | No | |
| linkedSheetId | No | |
| publishSettings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that this is an HTTP GET returning JSON, which implies a safe read, but it omits auth requirements, error behavior, and pagination; the request-body construction detail is largely boilerplate for a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded and reasonably short. The generic request-body clause is somewhat noisy for a GET operation, but the sibling list is useful and the overall structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained in detail, and the schema coverage is complete. The description adequately covers operation type, response format, and sibling scope, though it lacks auth and error context because no annotations are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description's note that typed parameters win over the `params` map and that `body_file` can supply the body largely repeats schema text rather than adding new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Get a form [HTTP GET]" states a specific verb and resource. The sibling list helps distinguish it from create, batchUpdate, and setPublishSettings, though it does not explain each sibling's role, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the retrieval operation by saying "Get a form" and by listing sibling operations over the same resource. However, it gives no explicit when-to-use guidance or selection criteria versus the alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forms.forms.responses.getB
Get one response from the form [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| formId | Yes | [URL path segment] Required. The form ID. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| responseId | Yes | [URL path segment] Required. The response ID within the form. |
Output Schema
| Name | Required | Description |
|---|---|---|
| formId | No | |
| answers | No | |
| createTime | No | |
| responseId | No | |
| totalScore | No | |
| respondentEmail | No | |
| lastSubmittedTime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, yet it spends most of its text on request-body construction ('typed flags win over the params map', 'read whole from body_file') that is meaningless for an HTTP GET with two path parameters. It does confirm [HTTP GET] and JSON return, but discloses nothing about permissions, missing-response errors, or whether submissions are redacted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause, but the majority of the remaining words are generic transport boilerplate about request bodies that does not apply to this read operation. Roughly two-thirds of the description does not earn its place for this specific tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and all six parameters are documented in the schema. However, the description offers no error semantics or auth context for a read that can fail on a bad responseId, and the body-building text adds noise rather than completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents formId, responseId, query, params, dry_run, and body_file. The description re-explains the params/typed-parameter precedence and body_file behavior, which duplicates schema text rather than adding new meaning (e.g., what query keys the responses endpoint accepts). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening clause names a specific verb and resource: 'Get one response from the form.' That is enough to distinguish it from forms.forms.responses.list, which is also named as the sibling over the same resource. It stops short of a 5 because the sibling is only listed, not contrasted by scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Siblings over the same resource: list' signals that an alternative exists, but it never states the condition that selects one over the other (single response by ID vs. enumerate all responses in a form). Usage is implied by the required formId/responseId path params rather than described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forms.forms.responses.listB
List a form's responses [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| filter | No | [query parameter] Which form responses to return. Currently, the only supported filters are: * timestamp > *N* which means to get all form responses submitted after (but not at) | |
| formId | Yes | [URL path segment] Required. ID of the Form whose responses to list. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of responses to return. The service may return fewer than this value. If unspecified or zero, at most 5000 responses are returned. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] A page token returned by a previous list response. If this field is set, the form and the values of the filter must be the same as for the original request. |
Output Schema
| Name | Required | Description |
|---|---|---|
| responses | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It discloses that this is an HTTP GET and returns JSON, which signals a read operation, but it does not cover permissions, rate limits, pagination behavior, or other operational constraints beyond that basic inference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, which is effective. The second sentence, however, includes generic request-body and `body_file` mechanics that are largely irrelevant to a GET list operation and add noise rather than clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description states the operation, HTTP method, and response format, while the schema fully documents the eight parameters and an output schema exists. Given that structured support, it is largely complete for invocation, though the lack of annotations means some behavioral context remains thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the parameters including `filter`, `pageSize`, `pageToken`, and `formId`. The description adds general request-building context about typed parameters and `body_file`, but does not add meaningful semantics for the list-specific parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: "List a form's responses [HTTP GET]". It also names the sibling "get" over the same resource, which helps distinguish this as the collection-listing operation rather than a single-response retrieval. The remaining boilerplate about request bodies slightly dilutes the otherwise clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The HTTP GET label and the phrase "List a form's responses" imply that this tool should be used when enumerating responses, and the description points to the sibling "get" over the same resource. However, it does not explicitly state when to use this tool versus `forms.forms.responses.get`, nor does it give exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forms.forms.setPublishSettingsA
Updates the publish settings of a form. Legacy forms aren't supported because they don't have the publish_settings field [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON SetPublishSettingsRequest object accepting publishSettings, updateMask; pass it via params or whole via body_file Siblings over the same resource: batchUpdate, create, get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| formId | Yes | [URL path segment] Required. The ID of the form. You can get the id from Form.form_id field. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SetPublishSettingsRequest object. | |
| request_body | No | Request body of type SetPublishSettingsRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| formId | No | |
| publishSettings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does so well: it discloses the HTTP method (POST), that this mutates/creates or triggers a change, that it is refused under --readonly safety profiles, and that legacy forms are rejected. These are behavior traits an agent cannot get from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and the most important constraint, and every sentence carries information (constraint, method, safety profile, body shape, siblings). Slightly dense with the bracketed [HTTP POST] and sibling enumeration, but no real filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and an output schema present, the description covers what an agent needs: mutation semantics, the readonly-profile refusal, the legacy-form limitation, and how the request body is constructed. Return values are rightly left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents formId, query, params, dry_run, body_file and the nested request_body. The description reinforces that the body accepts publishSettings and updateMask and how to pass it, but adds little syntax or semantics beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates the publish settings of a form') plus a capability constraint (legacy forms lack publish_settings). It names the sibling set (batchUpdate, create, get) but does not say how this tool differs from them, so differentiation is only partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one clear when-not condition (legacy forms) and explains the body-passing paths (params vs body_file), which is useful context. However, it gives no guidance on when to prefer this over batchUpdate or create, and the sibling list is enumerated without routing rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forms.forms.watches.createA
Create a new watch. If a watch ID is provided, it must be unused. For each invoking project, the per form limit is one watch per Watch.EventType. A watch expires seven days after it is created (see Watch.expire_time) [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CreateWatchRequest object accepting watch, watchId; pass it via params or whole via body_file Siblings over the same resource: delete, list, renew.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| formId | Yes | [URL path segment] Required. ID of the Form to watch. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CreateWatchRequest object. | |
| request_body | No | Request body of type CreateWatchRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| state | No | |
| target | No | |
| errorType | No | |
| eventType | No | |
| createTime | No | |
| expireTime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses that this is a mutating POST, refused under --readonly profiles, subject to quotas, and returns the created resource as JSON. It omits auth requirements and error handling, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, and subsequent sentences add constraints and routing hints. Some details (e.g., repeating body format from the schema) could be trimmed, but the information is organized and generally earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a complex mutation tool with nested objects, an output schema, and no annotations, the description covers purpose, constraints, expiration, safety-profile refusal, and body/return shape. It leaves out permission and error specifics, but it is sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 100%, so a baseline of 3 applies. The description adds meaningful nuance: it specifies that a provided watch ID must be unused and that the request body (CreateWatchRequest with watch, watchId) can be passed via params or body_file, going beyond the schema's field-level descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Create a new watch', a specific verb plus resource, and it names sibling operations (delete, list, renew) at the end. It stops short of explicitly differentiating when to use each sibling, so it earns a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies constraints (unused watch ID, one watch per event type per project, seven-day expiry) and lists sibling tools, which implies context. However, it never states explicitly when to choose create over renew or delete, so the usage guidance remains implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forms.forms.watches.deleteA
Delete a watch [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, list, renew.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| formId | Yes | [URL path segment] Required. The ID of the Form. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| watchId | Yes | [URL path segment] Required. The ID of the Watch to delete. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden and does well: it discloses irreversibility, the trash/undo caveat, refusal under readonly profiles, and the returned post-delete state. Missing only finer auth/permission details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and irreversibility are front-loaded in the first sentence. The latter half (body-building mechanics) is a bit verbose but not wasteful for this generated toolset.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be re-explained; the description nonetheless states the return shape. Combined with irreversibility and safety notes, it gives an agent enough to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so formId/watchId are fully documented in the schema. The description adds general mechanics about typed params winning over `params` and `body_file`, but nothing resource-specific beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Delete) plus specific resource (a watch on a form) and an explicit sibling set (create, list, renew) that disambiguates it within the watches family. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the sibling operations and states irreversibility and the --readonly refusal, giving useful context. It stops short of explicit when-to-use routing (e.g., 'renew to keep notifications vs delete to stop them'), leaving some inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forms.forms.watches.listB
Return a list of the watches owned by the invoking project. The maximum number of watches is two: For each invoker, the limit is one for each event type per form [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, renew.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| formId | Yes | [URL path segment] Required. ID of the Form whose watches to list. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| watches | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden; it usefully discloses the two-watch cap and the one-per-event-type-per-form limit. However, it omits permission/scope requirements and pagination behavior for a list endpoint, and its request-body boilerplate is irrelevant to an HTTP GET read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The scope and watch-limit facts are front-loaded in the first two sentences, which is good. But the trailing explanation of how request bodies are built from typed parameters or body_file is boilerplate noise for a GET-only list operation and dilutes the useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and 100% parameter coverage, return values need not be explained. The description supplies the key domain constraint (two-watch maximum) and siblings, so it is largely complete for a simple list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description only restates the typed-parameters-vs-params-map and body_file mechanics, which duplicate schema text, and adds nothing about formId beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: list the watches owned by the invoking project, scoped to a Form. It names the sibling operations (create, delete, renew) over the same resource, so an agent can distinguish this from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the sibling tools 'create, delete, renew' over the same resource, which helps route the agent, but it never states the condition that selects list versus those siblings or any prerequisites (e.g., which forms support watches). Usage is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forms.forms.watches.renewA
Renew an existing watch for seven days. The state of the watch after renewal is ACTIVE, and the expire_time is seven days from the renewal. Renewing a watch in an error state (e.g. SUSPENDED) succeeds if the error is no longer present, but fail otherwise. After a watch has expired, RenewWatch returns NOT_FOUND [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON RenewWatchRequest object; pass it via params or whole via body_file Siblings over the same resource: create, delete, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| formId | Yes | [URL path segment] Required. The ID of the Form. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| watchId | Yes | [URL path segment] Required. The ID of the Watch to renew. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON RenewWatchRequest object. | |
| request_body | No | Request body of type RenewWatchRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| state | No | |
| target | No | |
| errorType | No | |
| eventType | No | |
| createTime | No | |
| expireTime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden well: it discloses post-renewal state ACTIVE, the seven-day expire_time, behavior in SUSPENDED/error states, NOT_FOUND after expiry, and refusal under --readonly safety profiles. It also describes the HTTP POST effect and that it returns the API response resource as JSON.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key purpose is front-loaded in the first sentence, and most follow-on details are behaviorally useful. The final sentence is a run-on that mixes return format, request-body transport, and sibling names, and some request-body details repeat the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, the description supplies the necessary behavioral context: state after renewal, expiry semantics, error-state handling, expired-watch NOT_FOUND behavior, and readonly safety refusal. An output schema exists, so the description need not explain return values further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters. The description reinforces that the request body is a RenewWatchRequest and may be passed via params or body_file, but it does not add parameter-level meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource: renew an existing watch. It also names sibling operations over the same resource (create, delete, list), so an agent can distinguish this tool without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly frames usage around an existing watch and explains behavior for error-state and expired watches, including NOT_FOUND after expiry. It lists siblings but does not explicitly spell out when to choose create vs delete vs renew in every scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.drafts.createA
Creates a draft with the DRAFT label. For more information, see Create and send draft emails [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Draft object accepting id, message; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, send, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Draft object. | |
| request_body | No | Request body of type Draft: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that this is a mutating POST, that it creates or triggers a change, that it is refused under `--readonly` profiles, and that it returns the API's response resource as JSON. It leaves out auth scope and rate-limit details, but covers the critical write/safety behavior for this operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and stays compact despite covering safety, return format, body handling, and siblings. A few clauses about the request body are redundant with the schema, but the paragraph is still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity, rich schema, and existing output schema, the description supplies the key missing context: mutation behavior, readonly-profile refusal, body-passing alternatives, and sibling operations. It does not cover auth or error handling, but nothing essential for invoking this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parameters thoroughly. The description adds a little body-construction guidance by naming the JSON Draft object, its `id` and `message` fields, and the `params` versus `body_file` alternatives, but that largely repeats schema-level information. Baseline 3 is appropriate when schema coverage is this high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Creates a draft with the `DRAFT` label.' It also names the sibling operations over the same resource (delete, get, list, send, update), so an agent can distinguish this create operation from related draft actions without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by naming sibling operations and notes that the HTTP POST is 'refused under --readonly safety profiles,' which is useful context. However, it does not explicitly say when to use this instead of `gmail.users.drafts.send` or how drafts are intended to be used in a workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.drafts.deleteA
Immediately and permanently deletes the specified draft. Does not simply trash it. For more information, see Create and send draft emails [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, send, update.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the draft to delete. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does disclose the critical traits: permanence, irreversibility, rejection under read-only safety profiles, and the post-delete return shape. The irreversibility phrasing is hedged ("unless the API documents a trash/undo flow"), which slightly weakens it, but the core destructive profile is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are an excellent front-loaded lead, but the remainder is templated boilerplate (HTTP DELETE, request-body construction, sibling enumeration) that repeats generic harness text rather than draft-delete specifics. It is usable but padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description fills the important gaps: it explains the return value and the destructive safety behavior. It never mentions dry_run, which is the natural escape hatch for a permanent delete, leaving one meaningful gap for a 6-parameter mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including userId, id, dry_run, params, and body_file is already documented. The description only adds the precedence rule between typed flags and the params map, which the schema itself already states, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Immediately and permanently deletes the specified draft") and explicitly disambiguates from the soft-delete alternative ("Does not simply trash it"). It also names the sibling set over the same resource (create, get, list, send, update), so an agent can place it without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear about the destructive context and that it is refused under --readonly profiles, and the "does not simply trash it" line nudges toward the trash/untrash alternative. It stops short of naming the exact alternative tool (e.g. gmail.users.messages.trash) or an explicit when-to-use condition, so it is strong context rather than a full routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.drafts.getB
Gets the specified draft. For more information, see Create and send draft emails [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, send, update.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the draft to retrieve. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| format | No | [query parameter] The format to return the draft in. Values: `minimal` = Returns only email message ID and labels; does not return the email headers, body, or payload.; `full` = Returns the full email message data with body content parsed in the `payload` field; the `raw` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.; `raw` = Returns the full email message data with body content in the `raw` field as a base64url encoded string; the `payload` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.; `metadata` = Returns only email message ID, labels, and email headers.. | full |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the HTTP method (GET) and that the result is JSON, which establishes read-only semantics. However, the sentence about building request bodies from typed parameters or `body_file` is inapplicable boilerplate for a GET with no body, and there is no mention of OAuth scope constraints or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose correctly, but the body-construction clause is irrelevant noise for a GET endpoint and the trailing sibling list is a comma-dump. Two of the four sentences do not earn their place for this particular tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and all seven parameters are covered by the schema. What's missing is context an agent would want before invoking: required Gmail OAuth scopes, whether the draft's `raw`/`payload` availability depends on `format`, and the relationship to messages.get.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: id, userId, format (with enum values explained), query, params, dry_run, and body_file are all documented in the schema. The description adds nothing beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Gets the specified draft") and explicitly enumerates the sibling operations over the same resource (create, delete, list, send, update), which lets an agent place it as the single-item read. It stops short of explaining how it differs from gmail.users.messages.get, but for its own family the differentiation is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the verb — retrieve one draft by id. The sibling list hints at alternatives but never says when to use get vs list (e.g. "use list to find ids") or what prerequisites exist (the draft must exist, scope requirements).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.drafts.listB
Lists the drafts in the user's mailbox. For more information, see Create and send draft emails [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, send, update.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | [query parameter] Only return draft messages matching the specified query. Supports the same query format as the Gmail search box. For example, `"from:someuser@example.com rfc822 | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Page token to retrieve a specific page of results in the list. | |
| maxResults | No | [query parameter] Maximum number of drafts to return. This field defaults to 100. The maximum allowed value for this field is 500. | 100 |
| includeSpamTrash | No | [query parameter] Include drafts from `SPAM` and `TRASH` in the results. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| drafts | No | |
| nextPageToken | No | |
| resultSizeEstimate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does carry the safety burden, and it does disclose the HTTP GET verb and that results come back as JSON. However, the bulk of the behavioral text ('request bodies are built from the typed parameters... or read whole from body_file') is generic wrapper boilerplate that is irrelevant to a bodyless GET and adds noise rather than insight. Nothing is said about pagination via nextPageToken or the fact that returned drafts are lightweight id/threadId stubs unless further fetched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose statement is correctly front-loaded in the first sentence, but the middle sentence about typed flags, params maps and body_file is boilerplate that does not earn its place on a GET list tool. The trailing sibling enumeration is a terse fragment rather than a structured sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and the schema fully documents the 9 parameters. For a simple read-only list endpoint the description covers the essentials; the main remaining gap is pagination guidance (how to page through large draft lists), which is a minor omission rather than a blocker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: q, maxResults, pageToken, includeSpamTrash and userId are all documented in the schema, so the baseline of 3 applies. The description adds no parameter meaning beyond the schema and never mentions the filter/paging options it accepts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource ('Lists the drafts in the user's mailbox'), which clearly separates this from the message/thread listing tools. It also enumerates the sibling draft operations (create, delete, get, send, update) so an agent can see this is the read-only list member of the drafts family. It stops short of a 5 because the sibling mention is a bare enumeration with no criteria distinguishing them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to choose this over gmail.users.messages.list or gmail.users.threads.list, nor when to use the q/includeSpamTrash filters. The only guidance is the implicit 'it lists drafts' plus a link to an unrelated draft-creation guide, which does not help tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.drafts.sendA
Sends the specified, existing draft to the recipients in the To, Cc, and Bcc headers. For more information, see Create and send draft emails [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Draft object accepting id, message; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Draft object. | |
| request_body | No | Request body of type Draft: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| raw | No | |
| payload | No | |
| snippet | No | |
| labelIds | No | |
| threadId | No | |
| historyId | No | |
| internalDate | No | |
| sizeEstimate | No | |
| classificationLabelValues | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does well: it flags this as a mutating HTTP POST, discloses that it is refused under --readonly safety profiles, and explains the response shape and two ways to supply the body. It omits that the draft is normally consumed/removed by sending and says nothing about required OAuth scopes or irreversibility, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and its prerequisite are front-loaded in the first clause, and the routing advice and sibling list follow in priority order. It is a single dense paragraph with some tag-like clutter ([HTTP POST], bracket-heavy phrasing) that a tighter edit could trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no annotations and five sibling operations, the description covers action, safety refusal, body mechanics, and return type; an output schema exists so return fields need not be spelled out. The remaining gap is the side effect on the draft itself and authorization requirements, which matter for a send operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so userId, params, body_file, request_body and dry_run are already documented in the schema. The description's note about a JSON Draft body with id/message and the params-vs-body_file routing largely restates the schema's own descriptions, so it sits at the baseline rather than adding new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (sends) and a precise object (the specified, existing draft) plus the recipient headers it targets, which distinguishes it from gmail.users.drafts.create and gmail.users.messages.send. It explicitly enumerates the siblings over the same resource (create, delete, get, list, update), so an agent can place it without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'the specified, existing draft' implies the prerequisite that a draft must already exist, and the readonly-profile caveat effectively states a when-not condition. However, it never explicitly says to use drafts.create first, nor when to prefer this over gmail.users.messages.send, leaving the main selection decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.drafts.updateA
Replaces a draft's content. For more information, see Create and send draft emails [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Draft object accepting id, message; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list, send.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the draft to update. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Draft object. | |
| request_body | No | Request body of type Draft: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses important behavior: the operation is HTTP PUT and replaces draft content, it is refused under --readonly safety profiles, and it returns the API response resource as JSON. It does not cover required scopes or error behavior, but the safety-profile refusal is a meaningful disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and efficiently packs in HTTP method, safety behavior, return format, body handling, and sibling context. It is slightly dense but does not waste space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, a rich input schema, and an output schema, the description covers the key behavioral context: mutation semantics, safety-profile refusal, return format, and body-passing mechanism. It could say more about permissions or usage exclusions, but it is largely complete for calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters thoroughly. The description adds only a brief note that the request body is a Draft object accepting id and message and can be passed via params or body_file, which largely repeats schema-provided information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Replaces a draft's content.' It also lists the sibling operations over the same resource (create, delete, get, list, send), making it easy to distinguish this tool from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Replaces a draft's content,' which suggests this tool is for modifying an existing draft. The sibling list provides context, but there is no explicit guidance on when to choose update versus send, create, or other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.getProfileC
Gets the current user's Gmail profile [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: stop, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| historyId | No | |
| emailAddress | No | |
| threadsTotal | No | |
| messagesTotal | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral load. It discloses that this is an HTTP GET returning JSON, which is useful, but the entire middle sentence about building request bodies from typed parameters or `body_file` is boilerplate that does not apply to a bodyless profile read and could send an agent down a wrong path. Nothing is said about auth/scope requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the text is short, but the middle sentence about request-body construction is dead weight for a GET and dilutes the signal. Two of three sentences earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description correctly identifies the operation as a read. However, for a user-scoped Gmail endpoint it should at least say the call acts on the authenticated account and what access it needs, rather than spending space on irrelevant body-building mechanics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so userId, params, query, dry_run and body_file are already documented. The description's note that "typed flags win over the `params` map" merely restates the schema wording, adding no new meaning; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first clause gives a specific verb and resource: "Gets the current user's Gmail profile," plus the HTTP method. It names the co-located siblings (stop, watch) but does not explain what distinguishes them, so the agent knows the resource but not the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this instead of gmail.users.watch or gmail.users.stop, nor any prerequisite (e.g. an authenticated user, profile scope). Naming siblings without a selection condition gives no real routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.history.listA
Lists the history of all changes to the given mailbox. History results are returned in chronological order (increasing historyId). For more information, see Synchronize clients with Gmail [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| labelId | No | [query parameter] Only return messages with a label matching the ID. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Page token to retrieve a specific page of results in the list. | |
| maxResults | No | [query parameter] Maximum number of history records to return. This field defaults to 100. The maximum allowed value for this field is 500. | 100 |
| historyTypes | No | ||
| startHistoryId | No | [query parameter] Required. Returns history records after the specified `startHistoryId`. The supplied `startHistoryId` should be obtained from the `historyId` of a message, thre |
Output Schema
| Name | Required | Description |
|---|---|---|
| history | No | |
| historyId | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does carry useful behavioral facts: [HTTP GET] implies read-only, results are chronological by increasing historyId, and the body/params precedence rule is stated. It omits the traits that actually matter for this endpoint — that history records expire and a stale startHistoryId yields an error requiring a full resync, and that results are paginated with pageToken.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and front-loaded, but the trailing sentence about JSON bodies, typed flags beating the params map, and body_file is generic boilerplate repeated across the whole tool family and contributes little here. Acceptable but not lean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter list endpoint this is close to right: output schema exists so return-shape detail is unnecessary, GET semantics and ordering are stated, and the schema covers parameter meaning. The missing history-expiry/pagination caveats cost it a point, but the overall picture an agent needs to call it is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 90%, so the schema already documents startHistoryId, historyTypes, maxResults, labelId, and pageToken well. The description adds nothing parameter-specific, not even a note that startHistoryId is functionally required for meaningful output. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It clearly states the verb (Lists) and the resource (history of all changes to the given mailbox), and adds the incremental-sync framing with ordering by increasing historyId, so an agent knows this is a change-log reader rather than a message reader. It does not explicitly distinguish itself from gmail.users.messages.list or drive.changes.list, so a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the link to the 'Synchronize clients with Gmail' guide, which signals the incremental-sync scenario, but the description never says when to use this versus a full messages.list, or what prerequisite (a recent historyId) makes it valid. No explicit exclusions or alternative-tool routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.labels.createA
Creates a label. For more information, see Manage labels [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Label object accepting color, id, labelListVisibility, messageListVisibility, messagesTotal, messagesUnread, name, threadsTotal and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Label object. | |
| request_body | No | Request body of type Label: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| type | No | |
| color | No | |
| threadsTotal | No | |
| messagesTotal | No | |
| threadsUnread | No | |
| messagesUnread | No | |
| labelListVisibility | No | |
| messageListVisibility | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does a reasonable job: it discloses the HTTP method (POST), that it mutates state ("creates or triggers a change"), that it is blocked under --readonly profiles, and that the response is the API resource as JSON. It omits permission/scope requirements and whether a duplicate label name errors, which keeps it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb+resource, then safety, then body mechanics, then siblings — a sound ordering with no filler sentences. It is dense and slightly repetitive (the params/body_file instruction appears near-verbatim twice), which is the only drag.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description still notes the JSON resource response. Combined with mutation/safety disclosure and body-construction options, an agent has enough to invoke it correctly; only auth/scope and duplicate-name behavior are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema baseline is 3; the description goes beyond it by enumerating accepted Label fields (color, id, labelListVisibility, messageListVisibility, name, etc.) and explaining the two body paths — merged via `params` or whole via `body_file`. The repeated pass-via instructions duplicate the schema text, but the routing guidance between params and body_file adds genuine value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource ("Creates a label") and explicitly names the sibling set (delete, get, list, patch, update) over the same resource, so the agent can place it in the CRUD family. It stops short of saying how creating differs from patch/update in outcome, so it is clear but not fully differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Siblings are listed, which implies the create-vs-patch-vs-update choice, but no condition is given for when to pick one over the other. The only real usage cue is the safety-profile note ("refused under --readonly safety profiles"), which is useful but is a guardrail rather than a when-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.labels.deleteA
Immediately and permanently deletes the specified label and removes it from any messages and threads that it's applied to. For more information, see Manage labels [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the label to delete. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so well: it discloses permanence, immediate irreversibility, cascade removal from messages/threads, refusal under read-only safety profiles, and the returned post-delete state. These are exactly the traits an agent must weigh before calling a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and consequences are correctly front-loaded in the first sentence, but the boilerplate trailer about request bodies, body_file, and '--readonly safety profiles' is generic template text that is largely irrelevant to a bodiless DELETE and dilutes the signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers what is destroyed, irreversibility, side effects, and the return value, which is sufficient given no output schema exists. It stops short of permission/scope requirements and the constraint that built-in system labels are not deletable, both of which materially affect a delete call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description restates the params-map/body_file precedence but adds nothing about the two required path parameters (id, userId) beyond what the schema already documents, and there is no meaningful body for a DELETE anyway.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Immediately and permanently deletes the specified label') plus the consequential side effect ('removes it from any messages and threads that it's applied to'). This distinguishes it clearly from gmail.users.labels.get/update/patch and from label-removal-on-a-message tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trailing 'Siblings over the same resource: create, get, list, patch, update' tells the agent which tools share the resource, which implies when this one applies. But there is no explicit when-to-use guidance, no note that system labels cannot be deleted, and no pointer to alternatives like messages.modify for removing a label from a message without deleting the label itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.labels.getA
Gets the specified label. For more information, see Manage labels [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the label to retrieve. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| type | No | |
| color | No | |
| threadsTotal | No | |
| messagesTotal | No | |
| threadsUnread | No | |
| messagesUnread | No | |
| labelListVisibility | No | |
| messageListVisibility | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does indicate a safe read via 'Gets' and '[HTTP GET]', and states that the resource is returned as JSON. It does not mention authentication requirements or error behavior, and the body_file/body-building sentence is generic boilerplate for a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the purpose and sibling context. The sentence about request bodies being built from typed parameters or body_file is largely irrelevant for a GET and slightly distracts, but the rest is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with an output schema and full parameter descriptions, the description is largely complete: it explains retrieval, confirms JSON output, and distinguishes related operations. It could be improved by noting that a label ID is required and how to obtain it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents userId, id, query, params, dry_run, and body_file. The description adds no parameter-specific semantics beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Gets the specified label.' It also names the sibling operations over the same resource (create, delete, list, patch, update), making the retrieval purpose clear without opening other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description distinguishes this tool from its direct siblings by listing create, delete, list, patch, and update, so the agent can infer this is the read-one operation. However, it does not explicitly say when to use get versus list, such as using list to discover label IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.labels.listB
Lists all labels in the user's mailbox. For more information, see Manage labels [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| labels | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It does disclose that this is an HTTP GET returning JSON, which establishes read-only semantics, but the generic paragraph about request bodies, typed parameters and body_file is boilerplate that describes a capability a list call does not use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded correctly in the first sentence, but the follow-on boilerplate about request-body construction and body_file is irrelevant to a parameterless GET and dilutes the signal. Roughly half the text does not earn its place for this specific tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and an output schema exists, so return-value detail is not needed. However, with no annotations and a generic wrapper boilerplate section, the description omits anything about auth/user scoping beyond the schema's `me` default and says nothing about how many labels or ordering are returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents userId, params, query, dry_run and body_file; baseline 3 applies. The description adds only the precedence rule that typed flags win over the params map, which is marginal beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Lists all labels in the user's mailbox') and enumerates the sibling operations over the same resource. An agent can distinguish it from gmail.users.labels.get/create/delete without opening schemas, though the sibling list is a bare enumeration rather than a routing statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling enumeration ('create, delete, get, patch, update') implies this is the read-all variant, but there is no explicit when-to-use condition, no prerequisite/scope note, and no mention of paging behavior for large label sets. Usage is inferable from the name and sibling listing only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.labels.patchA
Patch the specified label. For more information, see Manage labels [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Label object accepting color, id, labelListVisibility, messageListVisibility, messagesTotal, messagesUnread, name, threadsTotal and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the label to update. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Label object. | |
| request_body | No | Request body of type Label: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| type | No | |
| color | No | |
| threadsTotal | No | |
| messagesTotal | No | |
| threadsUnread | No | |
| messagesUnread | No | |
| labelListVisibility | No | |
| messageListVisibility | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it delivers: it declares the operation mutates the resource, that it is blocked under readonly safety profiles, and that the response is the API's Label resource as JSON. It omits permission/auth requirements and what happens to fields not included in the patch, but the core behavioral profile is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and sibling routing are front-loaded, but the middle is a dense run-on that enumerates body fields already present in the schema ('and 2 more fields'), which is wasted text. Length is defensible for a mutation tool but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, the description covers safety-profile refusal, body construction paths, and return shape, which is most of what an agent needs. The patch-vs-update distinction and any permission requirements are the remaining gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter and the nested Label body. The description restates the body field list and the params/body_file mechanism, adding no meaning beyond the structured data; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (patch) and resource (label), notes the HTTP PATCH method, and enumerates the sibling operations (create, delete, get, list, update). It stops short of explaining how patch semantics differ from update (partial vs. full replacement), which is the one distinction an agent most needs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one concrete usage constraint — refused under --readonly safety profiles — but offers no guidance on when to choose patch over update, or any prerequisites. Listing sibling names without selection criteria implies usage rather than stating it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.labels.updateA
Updates the specified label. For more information, see Manage labels [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Label object accepting color, id, labelListVisibility, messageListVisibility, messagesTotal, messagesUnread, name, threadsTotal and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the label to update. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Label object. | |
| request_body | No | Request body of type Label: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| type | No | |
| color | No | |
| threadsTotal | No | |
| messagesTotal | No | |
| threadsUnread | No | |
| messagesUnread | No | |
| labelListVisibility | No | |
| messageListVisibility | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the mutation is a PUT that replaces the resource, that it is refused under --readonly safety profiles, and that the API response resource is returned as JSON. Missing are permission scopes and any warning about fields omitted from the body being cleared by the full replacement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and HTTP verb are front-loaded, and the whole definition is a single dense paragraph with no filler. The body-field enumeration and return-value clause are slightly redundant given the rich schema and output schema, costing a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers mutation semantics, readonly refusal, body construction paths and sibling alternatives; the return value is already covered by the output schema, so restating it is harmless. Nothing essential for a correct call is missing, though permission requirements would round it out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds only the routing distinction between building the body through `params` and passing it whole via `body_file`, while the enumerated Label fields largely restate the request_body schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Updates the specified label") and immediately distinguishes itself from the sibling patch by declaring HTTP PUT full-replacement semantics plus an explicit sibling list (create, delete, get, list, patch). An agent can tell update from patch without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names all siblings over the same resource and flags PUT/whole-resource semantics, which is the decisive signal for choosing update over patch. It stops short of saying explicitly "use patch for partial changes," so the routing guidance is strongly implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.messages.attachments.getC
Gets the specified message attachment [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the attachment. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| messageId | Yes | [URL path segment] The ID of the message containing the attachment. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| size | No | |
| attachmentId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full burden. The '[HTTP GET]' tag usefully signals a read operation, but the rest is generic template prose about request bodies and body_file that is meaningless for a GET attachment download; nothing is said about the base64 encoding of Gmail attachment data or size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose clause is front-loaded and fine, but the trailing sentence about building request bodies is irrelevant boilerplate for a GET endpoint and adds noise rather than signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation isn't required. But for a binary/attachment retrieval tool with no annotations, the description omits behavioral essentials (encoding, size limits) that an agent would want before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents userId, messageId, id, query, params, dry_run, and body_file. The description only clarifies precedence ('typed flags win over the params map') and body_file behavior, adding marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Gets) and resource (the specified message attachment), which maps cleanly to the name. It does not differentiate from close siblings such as gmail.users.messages.get (retrieves the message, not the binary attachment) or chat.spaces.messages.attachments.get, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus gmail.users.messages.get or the Chat equivalent, nor any prerequisite (auth scopes, attachment size limits). The agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.messages.batchDeleteA
Deletes many messages by message ID. Provides no guarantees that messages were not already deleted or even existed at all [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchDeleteMessagesRequest object accepting ids; pass it via params or whole via body_file Siblings over the same resource: batchModify, delete, get, import, insert, list, modify, send, trash, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchDeleteMessagesRequest object. | |
| request_body | No | Request body of type BatchDeleteMessagesRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses that it is a mutating POST, that deletion is not verified against prior existence (idempotency caveat), that readonly profiles reject it, and that the response is the raw API resource. It stops short of naming required OAuth scopes or confirming permanence vs. trash semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the destructive action and the non-existence caveat, then the failure mode, then the body contract. The [HTTP POST] tag and full sibling roster are low-value boilerplate but do not obscure the essentials.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter destructive mutation with no annotations and no output schema, the description covers mutation semantics, failure conditions, body shape and return type. Only scope/permission requirements and permanence are unaddressed, which is a minor gap given the 100% schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents userId, params, body_file and the nested ids body. The description restates the body type and the params/body_file routing rather than adding new meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource+scale: "Deletes many messages by message ID", which distinguishes it from single-message delete. The sibling roster names delete/trash/batchModify so an agent can orient, but the description never explicitly contrasts itself with those alternatives beyond listing them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one useful conditional -- "refused under --readonly safety profiles" -- which tells the agent when the call will fail. It does not say when to pick this over messages.delete or messages.trash, leaving that inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.messages.batchModifyA
Modifies the labels and the Classification Label values on the specified messages. For administrators modifying messages for users in their organization, requests require authorization with a service account that has domain-wide delegation authority to impersonate users with the https://www.googleapis.com/auth/gmail.modify.restricted scope [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchModifyMessagesRequest object accepting addClassificationLabels, addLabelIds, ids, removeClassificationLabelIds, removeLabelIds; pass it via params or whole via body_file Siblings over the same resource: batchDelete, delete, get, import, insert, list, modify, send, trash, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchModifyMessagesRequest object. | |
| request_body | No | Request body of type BatchModifyMessagesRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does substantial work: it discloses that this is a mutating POST ('creates or triggers a change'), the exact OAuth scope and domain-wide delegation requirement for impersonation, behavior under --readonly safety profiles, and that a JSON response resource is returned. Remaining gaps (limits on ids array size, whether label IDs must pre-exist, reversibility) keep it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The mutating purpose and the auth requirement are front-loaded, and the sentence about the response and body mechanism earns its place. The bracketed tags ([HTTP POST], the em-dash clause) make it slightly dense and run-on, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating, nested-body tool with no annotations and no output schema, the description covers the essential behavior: mutation semantics, authorization/delegation needs, response format, and body-passing mechanism. It stops short of operational limits (max ids per request) and error conditions, which an agent would still benefit from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already documented, and the description simply restates the BatchModifyMessagesRequest field names (addLabelIds, removeLabelIds, ids, addClassificationLabels, removeClassificationLabelIds). It adds the useful note about passing the body via `params` or `body_file`, but no semantics beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Modifies the labels and the Classification Label values on the specified messages') and makes the batch scope clear via 'specified messages' plural. It lists sibling tools but never explicitly contrasts batchModify with the single-message modify or batchDelete, so the differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a real usage condition for the admin/delegation case ('For administrators modifying messages for users in their organization...') and flags refusal under --readonly profiles. However there is no guidance on choosing this over gmail.users.messages.modify or batchDelete beyond a bare sibling enumeration, so when-to-use is only partially implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.messages.deleteA
Immediately and permanently deletes the specified message. This operation cannot be undone. Prefer messages.trash instead [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchDelete, batchModify, get, import, insert, list, modify, send, trash, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the message to delete. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses permanent deletion, no undo, refusal under `--readonly` profiles, and the post-delete return shape. It does not cover authentication or rate-limit behavior, but the critical destructive semantics are clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The most important information—permanent deletion and preferring `messages.trash`—is front-loaded. The later boilerplate about request bodies and the full sibling list are somewhat verbose, but they remain relevant to an agent selecting and invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There are no annotations or output schema, so the description must cover safety and return behavior; it does so by noting irreversibility and the post-delete resource state. It omits permission and quota details, but is otherwise complete for a destructive single-message delete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all six parameters in detail. The description adds generic request-body and parameter-map precedence context, but no additional meaning for `userId` or `id` beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it permanently deletes a specified Gmail message. It clearly distinguishes the action from its sibling `messages.trash` by emphasizing that this operation is immediate and irreversible.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly recommends `messages.trash` instead, giving the agent a clear safer alternative. It also lists sibling tools over the same resource, so the agent can route between delete, trash, batchDelete, get, and others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.messages.getC
Gets the specified message [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchDelete, batchModify, delete, import, insert, list, modify, send, trash, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the message to retrieve. This ID is usually retrieved using `messages.list`. The ID is also contained in the result when a message is inserted (`messa | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| format | No | [query parameter] The format to return the message in. Values: `minimal` = Returns only email message ID and labels; does not return the email headers, body, or payload.; `full` = Returns the full email message data with body content parsed in the `payload` field; the `raw` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.; `raw` = Returns the full email message data with body content in the `raw` field as a base64url encoded string; the `payload` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.; `metadata` = Returns only email message ID, labels, and email headers.. | full |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| metadataHeaders | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| raw | No | |
| payload | No | |
| snippet | No | |
| labelIds | No | |
| threadId | No | |
| historyId | No | |
| internalDate | No | |
| sizeEstimate | No | |
| classificationLabelValues | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses 'HTTP GET' and that it returns JSON, but then spends space describing request-body construction and body_file, which are irrelevant for a GET endpoint and add confusing noise rather than clarity about side effects, auth scopes, or format-specific constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the middle clause about request bodies and body_file is boilerplate that does not apply to a GET operation and distracts from the tool's actual behavior. The long sibling list is arguably useful for routing, but the overall composition wastes attention on irrelevant mechanics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema and 88% schema coverage, the description need not explain return values. However, with no annotations, it should do more to disclose read-only behavior, auth scope constraints, and format-specific caveats; it is minimally adequate but leaves important behavioral context unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 88%, so the schema already documents the key parameters thoroughly. The description adds generic precedence semantics for the params map and body_file, but nothing specific about the message id, format enum, or metadataHeaders that would supplement the schema meaningfully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: 'Gets the specified message', which makes the operation immediately clear. It also names the sibling operations on the same resource, though it does not explain how the purpose differs from adjacent reads like threads.get or messages.list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as messages.list, threads.get, or attachments.get. The sibling list provides awareness but no selection criteria, so the agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.messages.importA
Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. This method doesn't perform SPF checks, so it might not work for some spam messages, such as those attempting to perform domain spoofing. This method does not send a message. Note that the maximum size of the message is 150 MB [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Message object accepting classificationLabelValues, historyId, id, internalDate, labelIds, payload, raw, sizeEstimate and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: batchDelete, batchModify, delete, get, insert, list, modify, send, trash, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| deleted | No | [query parameter] Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for Google Workspace accounts. | false |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Message object. | |
| request_body | No | Request body of type Message: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| neverMarkSpam | No | [query parameter] Ignore the Gmail spam classifier decision and never mark this email as SPAM in the mailbox. | false |
| internalDateSource | No | [query parameter] Source for Gmail's internal date of the message. Values: `receivedTime` = Internal message date set to current time when received by Gmail.; `dateHeader` = Internal message time based on 'Date' header in email, when valid.. | dateHeader |
| processForCalendar | No | [query parameter] Process calendar invites in the email and add any extracted meetings to the Google Calendar for this user. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| raw | No | |
| payload | No | |
| snippet | No | |
| labelIds | No | |
| threadId | No | |
| historyId | No | |
| internalDate | No | |
| sizeEstimate | No | |
| classificationLabelValues | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden and does a solid job: it discloses the 150 MB size ceiling, that the message is scanned and classified like SMTP receipt, that SPF checks are skipped so some messages will be rejected, and notably that the call is refused under --readonly safety profiles. Gaps remain around required OAuth scopes / delegation and quota behavior, which matter for a mailbox-mutating call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the actual purpose and the most decision-relevant facts (no send, no SPF, 150 MB cap) before the generic transport notes. Slightly weakened by boilerplate about HTTP POST and the 'and 2 more fields' enumeration, which add little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return-value explanation is unnecessary, and the description covers the key behavioral caveats (scanning, SPF gap, size limit, readonly refusal) for a mutation tool with a nested request body. More detail on permissions/scope requirements would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents userId, deleted, neverMarkSpam, internalDateSource, processForCalendar, body_file and the full Message body. The description echoes that the body accepts classificationLabelValues, raw, labelIds, etc. and notes '2 more fields', adding little beyond the schema except emphasis on the size limit for the raw message.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (imports) and resource (a message) with explicit scope: 'only this user's mailbox'. It is clearly distinguishable from the sibling 'send' because the description says 'This method does not send a message', and from 'insert' through the SMTP-like delivery scanning framing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage context (SMTP-like delivery scanning, no SPF checks so some spoofed spam may fail, no actual sending) and enumerates the sibling operations over the same resource. However, it never states explicitly when to choose import over insert or send, leaving the agent to infer the routing decision from those hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.messages.insertA
Directly inserts a message into only this user's mailbox similar to IMAP APPEND, bypassing most scanning and classification. Does not send a message. For more information, see Create and send email messages [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Message object accepting classificationLabelValues, historyId, id, internalDate, labelIds, payload, raw, sizeEstimate and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: batchDelete, batchModify, delete, get, import, list, modify, send, trash, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| deleted | No | [query parameter] Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for Google Workspace accounts. | false |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Message object. | |
| request_body | No | Request body of type Message: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| internalDateSource | No | [query parameter] Source for Gmail's internal date of the message. Values: `receivedTime` = Internal message date set to current time when received by Gmail.; `dateHeader` = Internal message time based on 'Date' header in email, when valid.. | receivedTime |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| raw | No | |
| payload | No | |
| snippet | No | |
| labelIds | No | |
| threadId | No | |
| historyId | No | |
| internalDate | No | |
| sizeEstimate | No | |
| classificationLabelValues | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and discloses important traits: it bypasses most scanning/classification, does not send, performs an HTTP POST that creates or triggers a change, and is refused under --readonly safety profiles. It does not cover auth scopes, size limits, or rate-limit behavior, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentences are front-loaded and useful, but the latter portion becomes a run-on that includes redundant return information despite an output schema and a raw list of sibling tools without selection guidance. The phrase 'and 2 more fields' is imprecise and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex nested request body, full schema coverage, and an output schema, the description provides enough context about purpose, side effects, body handling, and sibling tools. It could be more complete by explicitly routing between insert, import, and send, but the essential information for invocation is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eight parameters, including body fields and the query parameters. The description adds a body-field summary and repeats that the body can be passed via `params` or `body_file`, but this largely duplicates the schema and does not add new parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Directly inserts a message into only this user's mailbox similar to IMAP APPEND.' It also explicitly distinguishes the operation from sending: 'Does not send a message,' which helps separate it from siblings such as gmail.users.messages.send.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes when this tool is appropriate by comparing it to IMAP APPEND and stating it does not send a message. It also hints at the distinction from import by noting it bypasses most scanning and classification, though it does not explicitly say 'use import instead when...' or name the exact alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.messages.listB
Lists the messages in the user's mailbox. For more information, see List Gmail messages [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchDelete, batchModify, delete, get, import, insert, modify, send, trash, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | [query parameter] Only return messages matching the specified query. Supports the same query format as the Gmail search box. For example, `"from:someuser@example.com rfc822msgid: | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| labelIds | No | ||
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Page token to retrieve a specific page of results in the list. | |
| maxResults | No | [query parameter] Maximum number of messages to return. This field defaults to 100. The maximum allowed value for this field is 500. | 100 |
| includeSpamTrash | No | [query parameter] Include messages from `SPAM` and `TRASH` in the results. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| messages | No | |
| nextPageToken | No | |
| resultSizeEstimate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does useful work by flagging the HTTP GET semantics (a read operation) and explaining the request-construction contract — typed parameters override the `params` map, and `body_file` can supply a whole body instead. However, it says nothing about pagination behavior, quota/rate limits, or auth scope expectations, which matter for a 10-parameter list endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and efficient, but the second half is templated boilerplate ('Returns the requested resource as JSON...') and the long undifferentiated sibling dump adds volume without routing value. It is not bloated enough to hurt, but several clauses don't earn their place on a simple list endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the schema documents parameters well, so return-shape explanation is unnecessary. What is missing is the operational context an agent needs to call this correctly: that results are paginated via pageToken, that threads.list is the alternative when thread-level results are wanted, and that messages are returned as stubs needing messages.get for bodies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 90%, so the schema already documents q, labelIds, pageToken, maxResults, includeSpamTrash and userId thoroughly. The description's only parameter-adjacent content is the generic precedence rule for `params` vs typed arguments and `body_file`, which the schema itself also states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Lists the messages in the user's mailbox,' backed by the Gmail list-messages guide link and explicit HTTP GET. It enumerates the sibling operations on the same resource, so an agent can tell it is the read/list arm, though the enumeration itself doesn't explain how it differs from gmail.users.threads.list or messages.get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance. The sibling sentence is a bare enumeration ('batchDelete, batchModify, delete, get, import, insert, modify, send, trash, untrash') with no conditions attached, so the agent must infer that this is the listing counterpart to get/threads.list. Nothing says when to prefer threads.list or how labelIds/q filtering should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.messages.modifyA
Modifies the labels and the Classification Label values on the specified message. For administrators modifying message for users in their organization, requests require authorization with a service account that has domain-wide delegation authority to impersonate users with the https://www.googleapis.com/auth/gmail.modify.restricted scope [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ModifyMessageRequest object accepting addClassificationLabels, addLabelIds, removeClassificationLabelIds, removeLabelIds; pass it via params or whole via body_file Siblings over the same resource: batchDelete, batchModify, delete, get, import, insert, list, send, trash, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the message to modify. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ModifyMessageRequest object. | |
| request_body | No | Request body of type ModifyMessageRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| raw | No | |
| payload | No | |
| snippet | No | |
| labelIds | No | |
| threadId | No | |
| historyId | No | |
| internalDate | No | |
| sizeEstimate | No | |
| classificationLabelValues | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that this mutates state ("creates or triggers a change"), that it is refused under --readonly safety profiles, and the exact OAuth scope/domain-wide delegation requirement for admin impersonation. It does not cover reversibility or rate/limit behavior, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, and the auth and body-passing notes follow logically. It is dense and somewhat run-on with em-dashes, and the trailing sibling inventory is long, but nearly every clause carries usable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and the description still states that the API response resource is returned as JSON. Auth requirements, mutation semantics, and body construction are all covered; only reversibility and side effects on classification labels are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description restates the request-body fields (addLabelIds, removeLabelIds, add/removeClassificationLabels) and explains the params vs body_file passing mechanism, adding only marginal meaning beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: "Modifies the labels and the Classification Label values on the specified message," which is concrete and distinguishable from read/destroy siblings. It enumerates sibling tools but does not explicitly say what makes this one different from batchModify or threads.modify, so sibling differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the name and the mention of modifying a single message; there is no explicit "use this when" or "prefer X instead" guidance. The long sibling list gives context but no routing logic (e.g., batchModify for multiple messages, threads.modify for whole threads).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.messages.sendA
Sends the specified message to the recipients in the To, Cc, and Bcc headers. For more information, see Create and send email messages [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Message object accepting classificationLabelValues, historyId, id, internalDate, labelIds, payload, raw, sizeEstimate and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: batchDelete, batchModify, delete, get, import, insert, list, modify, trash, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Message object. | |
| request_body | No | Request body of type Message: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| raw | No | |
| payload | No | |
| snippet | No | |
| labelIds | No | |
| threadId | No | |
| historyId | No | |
| internalDate | No | |
| sizeEstimate | No | |
| classificationLabelValues | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it declares the write nature, the read-only-profile refusal, the JSON response shape, and the two body-passing routes (`params` merge vs. whole `body_file`). It still omits that the `raw` field must be base64url-encoded RFC 2822 and where the sent message lands (Sent label/threadId), which are common failure and expectation points for this call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded correctly, but the body is padded with an over-long field enumeration that trails into 'and 2 more fields', plus a bare sibling-name dump with no relational information. The HTTP method and readonly-profile note earn their place; the field list mostly does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Return values are covered by an output schema, so the description needn't explain them, and the mutation/readonly semantics are addressed. What remains missing for a nested-body write tool is the send-vs-insert distinction and the raw-message encoding requirement — both directly determine whether a call succeeds.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents userId, params, body_file, dry_run and the Message body. The description restates the body field names ('classificationLabelValues, historyId, id, internalDate, labelIds, payload, raw, sizeEstimate and 2 more fields') and the params/body_file routing, which largely duplicates the schema's own request_body description. The '2 more fields' hedge adds neither precision nor the merge-precedence nuance beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Sends the specified message to the recipients in the To, Cc, and Bcc headers.' An agent knows exactly what the operation does. However, it lists sibling names (insert, import) without distinguishing itself from them, which matters because Gmail's insert vs. send semantics differ in ways that affect tool choice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The '[HTTP POST] — creates or triggers a change; refused under --readonly safety profiles' clause gives a real usage gate for restricted environments, and the sibling list hints at the alternative surface. But there is no explicit when-to-use-this-vs-insert/import guidance, leaving the most consequential routing decision (send vs. insert vs. drafts.send) to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.messages.trashA
Moves the specified message to the trash [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchDelete, batchModify, delete, get, import, insert, list, modify, send, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the message to Trash. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| raw | No | |
| payload | No | |
| snippet | No | |
| labelIds | No | |
| threadId | No | |
| historyId | No | |
| internalDate | No | |
| sizeEstimate | No | |
| classificationLabelValues | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the safety burden itself and does well: it discloses that this creates/triggers a change and is refused under --readonly safety profiles, and it explains how the request body is assembled (typed flags beat `params`, or `body_file`). It omits what happens when the message is already trashed and whether the action is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the body-construction clause is dense and largely restates schema descriptions, and the trailing enumeration of ten siblings is noise that doesn't help select this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation isn't needed, and the description covers the mutation and safety-profile behavior for a 6-parameter write tool. Remaining gaps (already-trashed behavior, reversibility, required scopes) are modest rather than disqualifying.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is already documented, including the `me` default for userId and the `params` merge precedence. The description adds no parameter detail beyond what the schema already states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Moves the specified message to the trash', which an agent can distinguish from delete/untrash by name. It stops short of explicitly contrasting the semantics with gmail.users.messages.delete or batchDelete, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The name and the sibling list imply this is the reversible removal option versus delete, but the description never says when to pick trash over delete, batchDelete, or modify. The readonly-profile note is environmental context, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.messages.untrashA
Removes the specified message from the trash [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchDelete, batchModify, delete, get, import, insert, list, modify, send, trash.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the message to remove from Trash. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| raw | No | |
| payload | No | |
| snippet | No | |
| labelIds | No | |
| threadId | No | |
| historyId | No | |
| internalDate | No | |
| sizeEstimate | No | |
| classificationLabelValues | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does meaningful work: it discloses that this is an HTTP POST that 'creates or triggers a change,' notes refusal under read-only safety profiles, and explains that request bodies come from typed parameters or `body_file`. It stops short of describing side effects such as what happens to labels or whether the message returns to the inbox.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause, and the rest is reasonably dense but mostly useful context about mutation, safety profiles, and request construction. The long sibling list adds bulk but aids disambiguation, so it is not wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema and 100% schema coverage, the description needn't explain return fields, and it correctly focuses on mutation behavior and request construction. For a no-annotation mutation tool, it is fairly complete, though it could mention permissions or label side effects for full confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds useful integration semantics beyond the schema: typed parameters take precedence over the `params` map, and `body_file` can supply a whole body instead, which helps an agent understand how the six parameters interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Removes the specified message from the trash.' It also lists the sibling operations over the same resource, but that list does not explain how this tool differs behaviorally from `trash` or `delete`, so sibling differentiation is present only as naming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the operation name and the sibling list, and the note that it is 'refused under --readonly safety profiles' gives one relevant precondition. However, there is no explicit guidance on when to use this versus `trash` (moving to trash) or `delete` (permanent deletion).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.cse.identities.createA
Creates and configures a client-side encryption identity that's authorized to send mail from the user account. Google publishes the S/MIME certificate to a shared domain-wide directory so that people within a Google Workspace organization can encrypt and send mail to the identity. For administrators managing identities and keypairs for users in their organization, requests require authorization with a service account that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2Service [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CseIdentity object accepting emailAddress, primaryKeyPairId, signAndEncryptKeyPairs; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CseIdentity object. | |
| request_body | No | Request body of type CseIdentity: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| emailAddress | No | |
| primaryKeyPairId | No | |
| signAndEncryptKeyPairs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does a good job: it discloses that this is an HTTP POST that 'creates or triggers a change,' that it is refused under --readonly safety profiles, and that it requires a service account with domain-wide delegation authority. It also warns of a side effect (publishing the certificate to a domain-wide directory). It does not cover idempotency or what happens if the identity already exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then layers authorization, HTTP behavior, body details and sibling coverage. Sentences are dense but purposeful; the bracket-link authorizations and '[HTTP POST]' insertion make it slightly clunky without wasting space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex admin-facing CSE identity creation tool, the description covers purpose, authorization requirements, side effects and request-body construction. With an output schema present, it needn't explain the return resource in detail, so the remaining gap (idempotency/duplicate handling) is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents userId, params, body_file, request_body and its CseIdentity fields. The description restates the body shape (emailAddress, primaryKeyPairId, signAndEncryptKeyPairs) and the params/body_file passing mechanism, but adds little meaning beyond the structured fields, making the 3 baseline appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Creates and configures a client-side encryption identity that's authorized to send mail.' It even explains the downstream effect (S/MIME certificate published to a domain-wide directory) and names the sibling operations over the same resource (delete, get, list, patch), so an agent can distinguish this create from related calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear contextual guidance: 'For administrators managing identities and keypairs for users in their organization' and notes the service-account/domain-wide-delegation prerequisite. It names the sibling operations but does not explicitly say when to choose create vs patch (e.g., modifying an existing identity), leaving that inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.cse.identities.deleteA
Deletes a client-side encryption identity. The authenticated user can no longer use the identity to send encrypted messages. You cannot restore the identity after you delete it. Instead, use the CreateCseIdentity method to create another identity with the same configuration. For administrators managing identities and keypairs for users in their organization, requests require authorization with a service account that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccoun [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| cseEmailAddress | Yes | [URL path segment] The primary email address associated with the client-side encryption identity configuration that's removed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden — and it does: irreversibility ('You cannot restore the identity'), the post-condition on sending, the domain-wide-delegation service-account auth requirement, and the return shape are all disclosed. The appended generic '[HTTP DELETE]' boilerplate adds little but does not hurt.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and irreversibility are front-loaded, which is good, but the tail contains generic scaffolding ('request bodies are built from the typed parameters ... or read whole from body_file') that is irrelevant to a bodyless DELETE, plus a truncated URL. Roughly a third of the text does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does supply the return value ('post-delete resource state (or empty) as JSON'), the irreversibility, and the auth model — enough for an agent to call correctly. Only the credential-delegation framing for non-admin callers is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so userId and cseEmailAddress are already documented in the schema. The description adds no parameter-level detail of its own beyond the auth note, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: 'Deletes a client-side encryption identity.' It even names the sibling set over the same resource (create, get, list, patch), making the operation unmistakable without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the consequence ('can no longer use the identity to send encrypted messages') and the alternative ('use the CreateCseIdentity method to create another identity'). It stops short of contrasting delete against non-destructive options like patch, but the exclusion logic is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.cse.identities.getB
Retrieves a client-side encryption identity configuration. For administrators managing identities and keypairs for users in their organization, requests require authorization with a service account that has domain-wide delegation authority to impersonate users with the https://www.googleapis.com/auth/gmail.settings.basic scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| cseEmailAddress | Yes | [URL path segment] The primary email address associated with the client-side encryption identity configuration that's retrieved. |
Output Schema
| Name | Required | Description |
|---|---|---|
| emailAddress | No | |
| primaryKeyPairId | No | |
| signAndEncryptKeyPairs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full load, and it does add real behavioral value: it discloses the two authorization models and the scope required. However, the second paragraph is truncated mid-link ('hardware key encryption (https [HTTP GET]'), so the user-managed path is left incomplete and the sentence splices confusingly into HTTP metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, which is good, but the body is padded with two verbose auth paragraphs, a mangled link fragment, and a request-body paragraph that does not apply to a read operation. Several sentences do not earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the auth model is covered. But the truncation leaves one authorization path unusable, and there is no mention of error behavior or scope-denied outcomes for an operation whose main risk is authorization failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (userId, cseEmailAddress, params, body_file, query, dry_run all documented), so the baseline is 3. The description adds nothing parameter-specific — its 'typed flags win over the params map' / 'body_file' text is generic boilerplate, and is especially irrelevant for a GET with no request body.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: 'Retrieves a client-side encryption identity configuration.' The closing sentence names the sibling operations over the same resource (create, delete, list, patch), so an agent can place this as the single-identity read in that family, though the differentiation is a bare enumeration rather than an explicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied — retrieve when you have a specific cseEmailAddress. The two long paragraphs describe authorization prerequisites (service-account delegation with gmail.settings.basic, or hardware key encryption for self-managed users), which is context, but there is no explicit statement of when to pick this over list or patch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.cse.identities.listB
Lists the client-side encrypted identities for an authenticated user. For administrators managing identities and keypairs for users in their organization, requests require authorization with a service account that has domain-wide delegation authority to impersonate users with the https://www.googleapis.com/auth/gmail.settings.basic scope. For users managing their own identities and keypairs, requests require [hardware key encryp [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The number of identities to return. If not provided, the page size will default to 20 entries. | 20 |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Pagination token indicating which page of identities to return. If the token is not supplied, then the API will return the first page of results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cseIdentities | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose real behavioral detail: required service-account delegation and the gmail.settings.basic scope for admin flows, plus a hardware-key path for self-managed users. However, the sentence is cut off mid-word ('hardware key encryp'), and it says nothing about pagination behavior, result caps, or what an empty result means—gaps that matter for a collection endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose statement is correctly front-loaded, but the body is padded with full documentation URLs and a generic tail—'Returns the requested resource as JSON — request bodies are built from the typed parameters...'—that is boilerplate irrelevant to a GET list. The text is also visibly truncated mid-sentence, which reads as unpolished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape needn't be explained, and the authorization story is covered. Still, for a paginated settings endpoint the description omits paging guidance and gets truncated exactly where the less-common auth path was being described, leaving a hole an agent may need to fill from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so `userId`, `pageSize`, `pageToken`, `query`, `params`, `body_file`, and `dry_run` are all documented in the schema already. The description adds no parameter-level meaning beyond that, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource: 'Lists the client-side encrypted identities for an authenticated user.' The trailing 'Siblings over the same resource: create, delete, get, patch' signals that this returns a collection rather than a single identity, though it stops short of an explicit contrast with `get`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives substantial context on which authorization path applies (admin with domain-wide delegation vs. a user managing their own identities), which helps an agent decide if it can call this at all. But it never says when to use list versus the sibling `get`, or how to page through results, so the when-to-use guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.cse.identities.patchA
Associates a different key pair with an existing client-side encryption identity. The updated key pair must validate against Google's S/MIME certificate profiles. For administrators managing identities and keypairs for users in their organization, requests require authorization with a service account that has domain-wide delegation authority to impersonate users with the https://www [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CseIdentity object accepting emailAddress, primaryKeyPairId, signAndEncryptKeyPairs; pass it via paramsor whole viabody_file` Siblings over the same resource: create, delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CseIdentity object. | |
| emailAddress | Yes | [URL path segment] The email address of the client-side encryption identity to update. | |
| request_body | No | Request body of type CseIdentity: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| emailAddress | No | |
| primaryKeyPairId | No | |
| signAndEncryptKeyPairs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does it well: it discloses that this is a PATCH mutation, that it is 'refused under --readonly safety profiles,' the authorization model (service account + domain-wide delegation), and that it returns the API response resource as JSON. It stops short of explaining PATCH partial-update semantics for unmentioned fields, which is the one meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the text contains a malformed/truncated fragment ('`https://www [HTTP PATCH]') and crams PATCH semantics, safety-profile behavior, return format, and body-delivery mechanics into one run-on paragraph. The information is useful but the structure is messy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, yet auth model, mutation semantics, body field list, and sibling enumeration are all covered. It is nearly complete for a mutation tool; only explicit partial-update behavior for omitted fields is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds value by naming the CseIdentity body fields (emailAddress, primaryKeyPairId, signAndEncryptKeyPairs) and explaining the params-vs-body_file delivery mechanism, which the schema alone does not make operationally obvious.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Associates a different key pair with an existing client-side encryption identity,' and explicitly frames the operation as a PATCH that updates the resource. It also enumerates the sibling operations (create, delete, get, list) over the same resource, so the agent can distinguish it without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: the new key pair must validate against Google's S/MIME certificate profiles, and administrators need a service account with domain-wide delegation. It names the sibling operations but does not explicitly state when to prefer create vs patch (e.g., new identity vs changing keypair); the routing is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.cse.keypairs.createA
Creates and uploads a client-side encryption S/MIME public key certificate chain and private key metadata for the authenticated user. For administrators managing identities and keypairs for users in their organization, requests require authorization with a service account that has domain-wide delegation authority to impersonate users with the https://www.googleapis.com/auth/gmail.settings.basic scope. For users managing their ow [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CseKeyPair object accepting disableTime, enablementState, keyPairId, pem, pkcs7, privateKeyMetadata, subjectEmailAddresses; pass it via params or whole via body_file Siblings over the same resource: disable, enable, get, list, obliterate.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CseKeyPair object. | |
| request_body | No | Request body of type CseKeyPair: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| chainValidation | No | [query parameter] The type of certificate chain validation to perform at creation. The request will be rejected if the uploaded chain fails to satisfy the requested validation ch Values: `all` = Enable all certificate chain validation and certificate revocation checks. Recommended for normal use.; `none` = Disable all certificate chain validation and certificate revocation checks. This may be useful when deliberately creating key pairs with invalid, out-of-use certificate chains to be used only for decryption of historical S/MIME messages. Key pairs created with invalid or revoked certificates cannot be used in a CseIdentity object.. | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| pem | No | |
| pkcs7 | No | |
| keyPairId | No | |
| disableTime | No | |
| enablementState | No | |
| privateKeyMetadata | No | |
| subjectEmailAddresses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does real work: it declares the HTTP method, that it creates/triggers a change, that it is refused under --readonly profiles, the required service-account domain-wide delegation and gmail.settings.basic scope, and that the API response resource is returned as JSON. Beyond that it says nothing about preconditions (duplicate keypairId, chain validation failure handling) beyond what chainValidation's schema text already covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the text is a dense run-on that mixes an authorization paragraph, a bracketed transport note, a body-field inventory, and a sibling list, and it contains a visibly truncated clause. Several sentences could be dropped given the schema already carries the field inventory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-body write tool the description covers auth, transport behavior, body construction routes, and sibling alternatives, and an output schema exists so return values need not be spelled out (it mentions them anyway). The main gap is the truncated audience sentence and no note on failure/duplicate behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter including the chainValidation enum and the nested CseKeyPair body. The description only restates the body field list and the params/body_file routing, adding no semantics not already present in structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a precise verb and resource: creates and uploads a CSE S/MIME public key certificate chain plus private key metadata. It then names the sibling operations over the same resource (disable, enable, get, list, obliterate), so an agent can place it correctly without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It sketches two audiences (administrators acting for users vs. users acting on their own), but the second path is cut off mid-sentence ("For users managing their ow"), so the guidance is incomplete. Naming the siblings implies when not to use this tool, but there is no explicit "use create when creating a new keypair, not when toggling one" statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.cse.keypairs.disableA
Turns off a client-side encryption key pair. The authenticated user can no longer use the key pair to decrypt incoming CSE message texts or sign outgoing CSE mail. To regain access, use the EnableCseKeyPair to turn on the key pair. After 30 days, you can permanently delete the key pair by using the ObliterateCseKeyPair method. For administrators managing identities and keypairs for users in their organization, requests require authorization with a service account that has [domain-wide delegation authority](https://develop [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON DisableCseKeyPairRequest object; pass it via params or whole via body_file Siblings over the same resource: create, enable, get, list, obliterate.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON DisableCseKeyPairRequest object. | |
| keyPairId | Yes | [URL path segment] The identifier of the key pair to turn off. | |
| request_body | No | Request body of type DisableCseKeyPairRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pem | No | |
| pkcs7 | No | |
| keyPairId | No | |
| disableTime | No | |
| enablementState | No | |
| privateKeyMetadata | No | |
| subjectEmailAddresses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so well: it discloses the exact capability lost, that the change is reversible within a 30-day window before obliteration becomes possible, and that administrator use requires a service-account with domain-wide delegation. The appended metadata further notes the HTTP POST mutation profile and that the call is refused under --readonly safety profiles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core effect and the alternative-routing sentences are front-loaded and each earns its place. There is minor noise: a truncated markdown link ('[domain-wide delegation authority](https://develop') and trailing wrapper metadata that reads as bolted-on rather than integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive settings mutation, the description covers consequences, reversibility window, authorization prerequisites, request-body shape, and the sibling set. An output schema exists, so the absence of return-value detail is not a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the input schema, giving a baseline of 3. The description restates that the body is a DisableCseKeyPairRequest passed via `params` or `body_file`, but adds no new semantics for userId or keyPairId beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Turns off a client-side encryption key pair.' It immediately states the concrete effect (no longer able to decrypt incoming CSE texts or sign outgoing CSE mail), which distinguishes it unambiguously from sibling operations like enable, obliterate, and get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes to alternatives and the conditions selecting them: 'To regain access, use the EnableCseKeyPair' and 'After 30 days, you can permanently delete the key pair by using the ObliterateCseKeyPair method.' It also states who the tool is for when it requires elevated authorization (administrators using a service account with domain-wide delegation).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.cse.keypairs.enableA
Turns on a client-side encryption key pair that was turned off. The key pair becomes active again for any associated client-side encryption identities. For administrators managing identities and keypairs for users in their organization, requests require authorization with a service account that has domain-wide delegation authority to impersonate users with the https://www.googleapis.com/auth/gmail.settings.basic scope. For users [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON EnableCseKeyPairRequest object; pass it via params or whole via body_file Siblings over the same resource: create, disable, get, list, obliterate.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON EnableCseKeyPairRequest object. | |
| keyPairId | Yes | [URL path segment] The identifier of the key pair to turn on. | |
| request_body | No | Request body of type EnableCseKeyPairRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pem | No | |
| pkcs7 | No | |
| keyPairId | No | |
| disableTime | No | |
| enablementState | No | |
| privateKeyMetadata | No | |
| subjectEmailAddresses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the required service-account/domain-wide-delegation auth and scope, the HTTP POST semantics, that it is refused under --readonly profiles, and the JSON response format. Idempotency and rate-limit behavior are not addressed, keeping it below top marks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and every element is substantive, but the text is a run-on that splices auth, HTTP-POST notes, return format, and siblings together, and contains a broken fragment ('For users [HTTP POST]') that hurts readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be detailed, yet the description still notes the response format. Combined with full auth and safety disclosure for a 7-parameter mutation tool, it is nearly complete, missing only idempotency/error context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description reinforces how the body is passed (params or body_file) and names the EnableCseKeyPairRequest type, but this largely repeats what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Turns on a client-side encryption key pair that was turned off,' plus the resulting effect (becomes active again for associated identities). This clearly distinguishes it from the sibling verbs create, disable, get, list, and obliterate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'that was turned off' implicitly routes agents here as the reversal of the disable sibling, and the sibling list is provided. However, it never explicitly states when to choose this over disable/obliterate, leaving the comparison to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.cse.keypairs.getA
Retrieves an existing client-side encryption key pair. For administrators managing identities and keypairs for users in their organization, requests require authorization with a service account that has domain-wide delegation authority to impersonate users with the https://www.googleapis.com/auth/gmail.settings.basic scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://s [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, disable, enable, list, obliterate.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| keyPairId | Yes | [URL path segment] The identifier of the key pair to retrieve. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pem | No | |
| pkcs7 | No | |
| keyPairId | No | |
| disableTime | No | |
| enablementState | No | |
| privateKeyMetadata | No | |
| subjectEmailAddresses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden well: it discloses the HTTP GET method, the returned JSON resource, and detailed authorization requirements (service account with domain-wide delegation for admins vs. hardware key encryption for self-managing users). It does not cover error or rate-limit behavior, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded and the sibling list is a useful, compact close. However, it includes lengthy auth URLs and a request-body-building sentence ('body_file', 'typed flags win') that is irrelevant and potentially confusing for a bodyless GET request.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only GET tool with an output schema already present, the description covers what matters: the operation, HTTP method, and the two distinct authorization paths. Only the missing acknowledgment of the output-schema return shape and irrelevant body-file boilerplate keep it below a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents userId, keyPairId, and the generic params/body_file/query fields. The description adds only a generic note that typed parameters override the params map, which is boilerplate rather than resource-specific meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieves an existing client-side encryption key pair') and explicitly enumerates the sibling operations on the same resource (create, disable, enable, list, obliterate), so an agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming the siblings implies how this tool relates to them, but there is no explicit when-to-use guidance (e.g. 'use get for a single keypair, list to enumerate'). The routing is left to inference from the 'get' naming convention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.cse.keypairs.listA
Lists client-side encryption key pairs for an authenticated user. For administrators managing identities and keypairs for users in their organization, requests require authorization with a service account that has domain-wide delegation authority to impersonate users with the https://www.googleapis.com/auth/gmail.settings.basic scope. For users managing their own identities and keypairs, requests require [hardware key encryption [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, disable, enable, get, obliterate.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The number of key pairs to return. If not provided, the page size will default to 20 entries. | 20 |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Pagination token indicating which page of key pairs to return. If the token is not supplied, then the API will return the first page of results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cseKeyPairs | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and discloses useful behavior: authorization requirements, HTTP GET, JSON response, and how request bodies relate to typed parameters or body_file. The user-managed auth clause is garbled/truncated, so the disclosure is not fully complete, but the read-only nature is clear from 'Lists' and 'HTTP GET'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the sibling list is useful. However, the middle authorization sentence is malformed and includes generic request-body details that are awkward for a GET list operation, reducing clarity and conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. The description covers purpose, auth context, HTTP method, and response format, but the garbled non-admin authorization clause leaves a completeness gap for one important usage path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains userId, pageSize, and pageToken. The description adds generic context about typed parameters winning over the params map and body_file behavior, but it does not add list-specific parameter guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Lists client-side encryption key pairs for an authenticated user.' It also names the sibling operations on the same resource, making the operation distinguishable from create/disable/enable/get/obliterate, though it does not explicitly contrast list with get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides authorization context for administrators versus users managing their own keypairs, which helps frame usage. However, it does not explicitly say when to choose this list operation over get or the other sibling operations, so usage guidance is mostly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.cse.keypairs.obliterateA
Deletes a client-side encryption key pair permanently and immediately. You can only permanently delete key pairs that have been turned off for more than 30 days. To turn off a key pair, use the DisableCseKeyPair method. Gmail can't restore or decrypt any messages that were encrypted by an obliterated key. Authenticated users and Google Workspace administrators lose access to reading the encrypted messages. For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/ [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ObliterateCseKeyPairRequest object; pass it via params or whole via body_file Siblings over the same resource: create, disable, enable, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ObliterateCseKeyPairRequest object. | |
| keyPairId | Yes | [URL path segment] The identifier of the key pair to obliterate. | |
| request_body | No | Request body of type ObliterateCseKeyPairRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral burden: it declares irreversibility ('can't restore or decrypt any messages'), the blast radius (users and Workspace admins lose read access), an auth requirement (service account for admin-managed cases), and a readonly-safety refusal. This is exactly the consequence disclosure a mutation tool needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and precondition are front-loaded in the first two sentences, which is well-structured. However, the trailing service-account sentence is garbled (broken markdown link bleeding into '[HTTP POST] — creates or triggers...'), injecting noise that interrupts an otherwise clean flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description states the return (API response resource as JSON) and covers the mutation's consequences and auth, while the rich schema covers params. Nothing an agent needs to invoke this destructive tool safely is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so userId, keyPairId, params, body_file and request_body are already documented. The description only restates the body-passing mechanism (ObliterateCseKeyPairRequest via `params` or `body_file`) that the schema already spells out, adding no new semantics — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Deletes a client-side encryption key pair permanently and immediately') and explicitly distinguishes it from siblings by name (DisableCseKeyPair) and by the closing list (create, disable, enable, get, list). An agent can route to it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition (key pair must have been turned off for >30 days) and names the alternative action that must precede it ('To turn off a key pair, use the DisableCseKeyPair method'). This is textbook when-to-use / prerequisite routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.delegates.createA
Adds a delegate with its verification status set directly to accepted, without sending any verification email. The delegate user must be a member of the same Google Workspace organization as the delegator user. For more information, see Manage delegates. Gmail imposes limitations on the number of delegates and delegators each user in a Google Workspace organization can have. These limits depend on your organization, but in general each user can have up to 25 delegates and up to 10 delegators. A delegate user must b [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Delegate object accepting delegateEmail, verificationStatus; pass it via params or whole via body_file Siblings over the same resource: delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Delegate object. | |
| request_body | No | Request body of type Delegate: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| delegateEmail | No | |
| verificationStatus | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses that this bypasses verification email, that it's an HTTP POST mutation refused under --readonly safety profiles, the org-membership and quota constraints, and the response format. The only blemish is the truncated sentence 'A delegate user must b', but the behavioral picture is otherwise rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The point about no verification email is front-loaded, which is good, but the text becomes a dense run-on and includes a truncated, incomplete sentence ('A delegate user must b'). Content earns its place but the structure and grammar defects cost it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation tool with an output schema, a fully-covered input schema, and nested body, the description provides everything an agent needs: mutation semantics, auth/org preconditions, quota context, and body-passing guidance. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3, but the description adds real value by naming the body fields (delegateEmail, verificationStatus) and explaining how to supply them via `params` or `body_file`. That goes beyond what the schema alone conveys about body construction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (adds a delegate) with the key differentiator: verification status set directly to `accepted` without sending a verification email. It also names the sibling operations (delete, get, list) over the same resource, so an agent can distinguish it immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the precondition (delegate must be in the same Google Workspace organization) and the organizational limit context (25 delegates / 10 delegators per user), which frames when this is appropriate. It lists siblings but doesn't explicitly say when to prefer an alternative verification flow, leaving a small inference gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.delegates.deleteA
Removes the specified delegate (which can be of any verification status), and revokes any verification that may have been required for using it. For more information, see Manage delegates. A delegate user must be referred to by their primary email address, and not an email alias. This method is only available to service account clients that have been delegated domain-wide authority [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| delegateEmail | Yes | [URL path segment] The email address of the user to be removed as a delegate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden, and it discloses key traits: irreversibility, that verification is revoked as a side effect, the domain-wide auth requirement, and that it is refused under readonly safety profiles. Some of this is generic wrapper text (the '[HTTP DELETE]' and body_file wording) rather than tool-specific detail, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The tool-specific content is front-loaded and efficient in the first three sentences, but it then appends generic wrapper boilerplate about request bodies, typed flags versus the params map, and the body_file parameter that is not specific to this operation and somewhat dilutes the signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully states the return value (the post-delete resource state or empty as JSON) and covers the critical auth prerequisite and destructive nature. Given two required parameters and full schema coverage, this is essentially complete for a delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning beyond the schema by constraining delegateEmail to the primary email address rather than an alias. The remaining parameters (userId, dry_run, body_file, params) are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Removes the specified delegate'), clarifies the scope ('any verification status') and the side effect (revoking verification). It also names the sibling operations on the same resource (create, get, list), so an agent can distinguish it without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete eligibility context: only available to service account clients with delegated domain-wide authority, and the delegate must be specified by primary email, not an alias. It names sibling alternatives but does not explicitly state the conditions for choosing between them, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.delegates.getA
Gets the specified delegate. For more information, see Manage delegates. A delegate user must be referred to by their primary email address, and not an email alias. This method is only available to service account clients that have been delegated domain-wide authority [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| delegateEmail | Yes | [URL path segment] The email address of the user whose delegate relationship is to be retrieved. |
Output Schema
| Name | Required | Description |
|---|---|---|
| delegateEmail | No | |
| verificationStatus | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does so well: it discloses the HTTP method, the domain-wide authority auth requirement, and the primary-email identification rule. It stops short of describing failure modes or response shape details, but the auth disclosure is the highest-value piece.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core scoping and auth constraints are front-loaded, but the trailing sentence about request bodies, typed flags vs params, and body_file is generic boilerplate irrelevant to a GET method, which dilutes the description for this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description covers the remaining essentials: auth scope, identifier format, method, and sibling relationship. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuinely useful semantics the schema lacks: the delegate identifier must be a primary email address and not an alias. That constraint meaningfully affects how the agent fills delegateEmail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Gets the specified delegate") and explicitly names its siblings (create, delete, list), so an agent can distinguish it from the other delegate tools without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a strong usage precondition — only available to service account clients with domain-wide delegated authority — plus the caveat that delegates must be referenced by primary email, not alias. It does not explicitly say when to prefer this over delegates.list, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.delegates.listA
Lists the delegates for the specified account. For more information, see Manage delegates. This method is only available to service account clients that have been delegated domain-wide authority [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| delegates | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does flag the critical behavioral gate: domain-wide delegation via service account, which is the main failure mode for this endpoint. It also notes the HTTP method and that the call builds a request from typed params or a body file, though it doesn't say anything about pagination or result ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the decisive auth constraint are front-loaded, and the sibling list is compact. The mid-section boilerplate ('Returns the requested resource as JSON', explaining body construction) is generic across this server and is the least earned part of the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-required-param list operation with full schema coverage and an output schema, the definition covers purpose, access prerequisite, and alternatives — enough to call it correctly. Output shape need not be described since the output schema exists, and there is little else an agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so userId, query, params, dry_run and body_file are already documented. The description only adds the precedence rule (typed flags win over the params map) and the body_file alternative, which largely restates what the schema descriptions already say — the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with a specific verb+resource ('Lists the delegates for the specified account') and explicitly names the sibling operations on the same resource (create, delete, get), so an agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a hard applicability constraint — only usable by service account clients with domain-wide delegation — and points to the guide, plus names the sibling alternatives. It stops short of stating an explicit selection rule (e.g. use get for a single delegate), so it is clear context rather than full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.filters.createA
Creates a filter. Note: you can only create a maximum of 1,000 filters. For more information, see Manage Gmail filters [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Filter object accepting action, criteria, id; pass it via params or whole via body_file Siblings over the same resource: delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Filter object. | |
| request_body | No | Request body of type Filter: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| action | No | |
| criteria | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the mutation nature ('creates or triggers a change'), the 1,000-filter cap, the readonly-profile refusal, and the return shape (API response resource as JSON). It omits auth requirements and what happens on validation failure, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then constraints, return shape, and sibling routing. Some bracket notation ('[HTTP POST]', '—') adds visual noise, but every sentence contributes information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, an output schema present, and fully described parameters, the description covers the mutation semantics, limits, and payload format. Minor gaps remain around auth and error behavior, but an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents userId, dry_run, params, body_file and the nested Filter body. The description restates the body fields (action, criteria, id) and the params/body_file passthrough, adding little beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates a filter') and explicitly differentiates from siblings over the same resource (delete, get, list). An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes a hard constraint (max 1,000 filters) and a safety-profile condition (refused under --readonly), but never says when to choose create versus list/get to inspect existing filters, nor what criteria make a valid filter. Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.filters.deleteA
Immediately and permanently deletes the specified filter. For more information, see Manage Gmail filters [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the filter to be deleted. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load well: it discloses permanence/irreversibility, the read-only-profile refusal, and the expected return payload. The generic body-construction sentence (typed flags vs `params`, `body_file`) is boilerplate for a DELETE that sends no body and slightly muddies the picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the destructive action and its irreversibility before the docs link and sibling routing. No wasted preamble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description fills that gap by stating the post-delete return shape (or empty). Combined with 100% schema coverage and the irreversibility warning, an agent has enough to call it correctly; only explicit preconditions are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so `userId` (with 'me' default) and `id` are already documented; the description adds nothing specific about them. It only explains the generic precedence of typed flags over `params` and the `body_file` alternative, which is marginal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Immediately and permanently deletes the specified filter") and names the sibling operations on the same resource (create, get, list), so the agent can place it precisely in the Gmail filter toolset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It identifies the sibling operations but never says when to prefer this over them or what prerequisites (ownership/admin rights, filter existing) apply. The only real routing signal is that it is refused under --readonly profiles, which is a constraint rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.filters.getB
Gets a filter. For more information, see Manage Gmail filters [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the filter to be fetched. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| action | No | |
| criteria | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose that the call is an HTTP GET returning the resource as JSON, which establishes read-only semantics. It omits auth/scope requirements and error behavior, and the body-building/`body_file` prose is irrelevant and potentially confusing for a GET that sends no body.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence is correctly front-loaded, but the middle sentence about building request bodies from typed parameters or `body_file` is dead weight for a GET with no body, consuming roughly half the text without helping the caller.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the doc link covers the resource shape. However, for a settings read in a family with many shield/scope-sensitive siblings, the absence of any access or scope note leaves a gap the boilerplate does not fill.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so `id` and `userId` (including the "me" default) are already fully documented. The description adds only a generic note that typed flags override the `params` map and that `body_file` can supply a body, neither of which is meaningful for this endpoint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Gets a filter" states a specific verb and resource, and the closing line enumerates the sibling operations (create, delete, list) over the same resource, so the agent can place it in the family. It falls short of 5 because the follow-on boilerplate about request bodies muddies what is otherwise a clean read-only fetch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming create/delete/list implies the routing (use list to discover filter IDs, get to fetch one), but no sentence states when to prefer this over `filters.list` or what prerequisites exist. Usage must be inferred from the sibling roster rather than read.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.filters.listA
Lists the message filters of a Gmail user. For more information, see Manage Gmail filters [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| filter | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It helpfully discloses the HTTP GET verb (implying a read-only, safe operation) and points to Google's filter-management guide, but the rest of the text is generic request-body plumbing that is irrelevant for a GET endpoint and says nothing about scopes, permissions, or whether the full set of filters is returned in one shot.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and the sibling pointer is efficient, but the middle sentence about building request bodies from typed parameters or body_file is boilerplate that does not apply to a GET list call and dilutes the definition. Roughly half the text fails the 'every sentence earns its place' test.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema coverage, an output schema (so return shape needn't be described), a doc link, and explicit sibling operations, an agent has what it needs to call this correctly. The only shortfall is the absence of permission/scope context, which matters little for a read-only list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters, including userId with its 'me' default and the dry_run/body_file escape hatches, are already documented. The description adds a small amount of framework-level semantics (typed flags win over the params map; body_file bypasses parameter building), which is more than the baseline for a fully-described schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Lists the message filters of a Gmail user') plus the operating scope (a single Gmail user), and it names the sibling operations over the same resource (create, delete, get). An agent can immediately tell this is the enumerating operation and distinguish it from the single-item get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Siblings over the same resource: create, delete, get' line implicitly tells the agent this is the enumeration variant, but it never states when to prefer list over get or what preconditions exist. Usage is inferable from the name plus the sibling mention rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.forwardingAddresses.createA
Creates a forwarding address. If ownership verification is required, a message will be sent to the recipient and the resource's verification status will be set to pending; otherwise, the resource will be created with verification status set to accepted. For more information, see Manage email forwarding. This method is only available to service account clients that have been delegated domain-wide authority [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ForwardingAddress object accepting forwardingEmail, verificationStatus; pass it via params or whole via body_file Siblings over the same resource: delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ForwardingAddress object. | |
| request_body | No | Request body of type ForwardingAddress: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| forwardingEmail | No | |
| verificationStatus | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the ownership-verification side effect (a message is sent to the recipient), the resulting status transitions (pending vs accepted), that it is an HTTP POST mutation, and the service-account/delegation prerequisite.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose and verification behavior, then prerequisites, then technical body details and sibling orientation. Dense but every sentence contributes; slightly long with minor redundancy around the body shape already covered by the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and an output schema that handles return values, the description covers side effects, status outcomes, auth prerequisites, and body wiring. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents userId, forwardingEmail, verificationStatus, params, and body_file. The description restates the body fields and the params-vs-body_file routing but adds no format constraints or edge cases beyond structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates a forwarding address') and names the sibling operations over the same resource (delete, get, list), so an agent can distinguish it without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides critical usage constraints: only available to service-account clients with domain-wide delegation, and refused under --readonly safety profiles. It names the sibling alternatives (delete/get/list) for orientation but does not explicitly spell out when to prefer create over them, keeping it just below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.forwardingAddresses.deleteA
Deletes the specified forwarding address and revokes any verification that may have been required. For more information, see Manage email forwarding. This method is only available to service account clients that have been delegated domain-wide authority [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| forwardingEmail | Yes | [URL path segment] The forwarding address to be deleted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly: it discloses irreversibility, revocation of verification, the service-account auth requirement, the HTTP DELETE method, behavior under --readonly safety profiles, and the return format (post-delete state or empty JSON). It also explains how request bodies are constructed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and side effects. It is somewhat dense and includes a slightly awkward sentence about request bodies, but the length is justified by the tool's destructive nature and auth constraints. Minor tightening would help, but it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructive nature, service-account restriction, six parameters, and no output schema, the description covers everything needed: side effects, auth requirements, irreversibility, return format, body construction, and sibling context. An agent has sufficient information to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaningful detail beyond the schema by clarifying that typed parameters take precedence over the `params` map and that `body_file` can be used to supply a raw body, which aids correct usage of these advanced parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Deletes the specified forwarding address') and adds the side effect of revoking verification. It also names the sibling operations (create, get, list) over the same resource, so an agent can distinguish this delete from the others without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context by stating this method is only available to service account clients with domain-wide delegation, which is critical for correct invocation. However, it does not explicitly say when to use this vs. the sibling operations beyond naming them; no exclusions or alternative routing are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.forwardingAddresses.getB
Gets the specified forwarding address. For more information, see Manage email forwarding [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| forwardingEmail | Yes | [URL path segment] The forwarding address to be retrieved. |
Output Schema
| Name | Required | Description |
|---|---|---|
| forwardingEmail | No | |
| verificationStatus | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does carry some weight: it discloses the HTTP GET verb, that the response is JSON, and links the forwarding-settings guide. However, a large chunk of the text describes request-body construction from `params`/`body_file`, which is irrelevant to a GET, and it says nothing about auth/permission requirements or whether the caller must be an admin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and efficient, but the boilerplate sentence about request bodies, typed parameters versus the `params` map, and `body_file` is dead weight for a GET and dilutes the useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation isn't required, and the doc link plus the sibling list give reasonable orientation. Still, for a settings read with zero annotations, it leaves out permission context and error behavior (what happens for a non-existent or unverified forwarding address).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so userId and forwardingEmail are already documented in the schema; the description adds no extra meaning such as format constraints or behavior when the address is unregistered. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Gets the specified forwarding address") and lists the sibling operations over the same resource (create, delete, list), so an agent can place it in the CRUD family. It stops short of saying how it differs functionally from the list sibling beyond the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling enumeration implies when this tool is the right pick (single address retrieval rather than enumeration), but there is no explicit when-to-use or when-not-to-use statement and no prerequisites (e.g. that the address must already exist and be verified).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.forwardingAddresses.listA
Lists the forwarding addresses for the specified account. For more information, see Manage email forwarding [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| forwardingAddresses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose the HTTP verb ([HTTP GET]) and the JSON return shape, which tells the agent this is a non-mutating read. It omits auth/scope requirements, whether results are paginated or capped, and whether the returned addresses include verification status — meaningful gaps for a settings-listing call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose statement and sibling list are front-loaded and earn their place. The middle sentence about request bodies being built from typed parameters or read from `body_file` is dead weight for a GET endpoint and dilutes an otherwise tight definition, and the documentation link plus [HTTP GET] tag add clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is unnecessary, and the 100%-covered input schema handles parameters. What remains missing is auth scope and result-size/pagination behavior, which matters for a settings enumeration but is a modest gap given the rich schema and sibling list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the schema already documents userId (default "me"), query, params, dry_run, and body_file in detail. The description adds only "specified account," echoing the userId semantics without new detail, and the generic request-body/body_file sentence merely restates the schema. No compensation is needed but no extra meaning is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource ("Lists the forwarding addresses") scoped to "the specified account," and the closing sentence enumerates the sibling operations (create, delete, get) on the same resource. An agent can distinguish this from get/create/delete without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming the siblings "create, delete, get" implicitly establishes that this tool is the enumeration path rather than the single-resource fetch or mutation path. However, it never states an explicit condition like "use get when you know the address" or any prerequisite such as required OAuth scope, so the routing signal is clear but not fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.getAutoForwardingA
Gets the auto-forwarding setting for the specified account. For more information, see Manage email forwarding [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: getImap, getLanguage, getPop, getVacation, updateAutoForwarding, updateImap, updateLanguage, updatePop, updateVacation.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| enabled | No | |
| disposition | No | |
| emailAddress | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries more burden, but it does disclose HTTP GET and that the resource is returned as JSON, indicating a read-only operation. It does not mention permissions, authorization requirements, or what the response contains beyond JSON, though the output schema covers return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and clear, but the description includes generic request-body construction boilerplate that is irrelevant for a GET with no request body. The sibling list is long and adds bulk without much routing value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only settings GET, the description provides the resource, method, and related siblings, and an output schema exists for return values. Missing authorization or permission context keeps it from being fully complete, but the essential calling information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented. The description adds only generic boilerplate about typed parameters winning over the params map and body_file, which does not add meaningful semantics for this GET endpoint beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it gets the auto-forwarding setting for the specified account. It also names the sibling settings tools over the same resource, making the scope distinguishable without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool name and the sibling list, but there is no explicit guidance on when to call this versus getImap, getPop, or updateAutoForwarding. An agent can infer it reads the current forwarding configuration, but the description does not spell out conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.getImapB
Gets IMAP settings. For more information, see Configure POP and IMAP settings with the Gmail API [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: getAutoForwarding, getLanguage, getPop, getVacation, updateAutoForwarding, updateImap, updateLanguage, updatePop, updateVacation.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| enabled | No | |
| autoExpunge | No | |
| maxFolderSize | No | |
| expungeBehavior | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the HTTP GET verb (signalling a read) and that a JSON resource is returned. It omits anything about required OAuth scopes/permissions or whether the response exposes enabled/auto-expunge/expunge-behavior fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, but the remainder mixes a docs link, an HTTP verb tag, generic request-building boilerplate, and a long comma-separated sibling list that dilutes the signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the core read semantics are covered. Still, the body/body_file discussion adds confusion rather than completeness, and nothing about auth or result shape leaves an agent partially uninformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description spends its parameter-related text on request-body construction (typed params vs `params` map, `body_file`), which is irrelevant and potentially misleading for a bodyless GET. It never mentions `userId` semantics ('me') or the `query` escape hatch.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource ("Gets IMAP settings"), which is unambiguous for this Gmail settings endpoint. It does not, however, contrast itself directly with updateImap or getPop beyond an undifferentiated list of siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool is implicitly a read used when you need current IMAP configuration, and the sibling list implies updateImap exists for writes. But nothing states when to choose this over getPop/getAutoForwarding, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.getLanguageB
Gets language settings. For more information, see Manage language settings [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: getAutoForwarding, getImap, getPop, getVacation, updateAutoForwarding, updateImap, updateLanguage, updatePop, updateVacation.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| displayLanguage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses '[HTTP GET]' (read-only) and that JSON is returned, which is useful. But it omits anything about scope, permissions, or what the language settings actually represent, and the body-construction boilerplate is irrelevant for a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The leading sentence is front-loaded and clear, but the description then spends most of its length on request-body construction that a GET never uses, plus a long sibling roster. Those sentences don't fully earn their place for this operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and full parameter coverage mean return values and argument details are covered elsewhere. However, the description never explains what language settings are or when an agent would need them, and the body_file/params boilerplate is noise for a read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds only that typed flags override the `params` map and `body_file` can supply the request body — generic construction semantics, and largely inapplicable to a bodyless GET request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Gets language settings'. The trailing sibling list clarifies that this is one of several settings getters (getImap, getPop, getVacation), so an agent can place it. It doesn't explain what 'language settings' contains, but the purpose is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not. The sibling list names getAutoForwarding/getImap/getPop/getVacation/updateLanguage but never says which to choose for a given intent, so the agent must infer that 'getLanguage' reads language settings while 'updateLanguage' writes them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.getPopB
Gets POP settings. For more information, see Configure POP and IMAP settings with the Gmail API [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: getAutoForwarding, getImap, getLanguage, getVacation, updateAutoForwarding, updateImap, updateLanguage, updatePop, updateVacation.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| disposition | No | |
| accessWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It notes '[HTTP GET]' and JSON return, but the remaining text about request bodies, typed-parameter precedence, and body_file is generic boilerplate irrelevant to a read-only settings fetch, and it says nothing about required OAuth scopes or exactly what POP settings are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and sibling list are front-loaded and useful, but the middle sentence about request-body construction and body_file is wasted space for a GET tool and dilutes the actionable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the core purpose is stated. However, for a settings read a few more specifics (e.g. that it returns enable/disable state and access window) or a hint on comparison with getImap would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents userId, query, params, dry_run, and body_file. The description's mention that 'typed flags win over the params map' and 'read whole from body_file' merely repeats schema text, adding no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: 'Gets POP settings', and the sibling list makes clear this is the read counterpart to updatePop. This is clear enough to distinguish from siblings, but the sibling names are listed without stating how it differs functionally from getImap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Listing the sibling tools gives context, but the description never says when to use getPop vs updatePop, nor that it requires an authenticated userId with the settings scope. Usage is only implied by the get/update naming convention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.getVacationB
Gets vacation responder settings. For more information, see Manage vacation settings with the Gmail API [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: getAutoForwarding, getImap, getLanguage, getPop, updateAutoForwarding, updateImap, updateLanguage, updatePop, updateVacation.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| endTime | No | |
| startTime | No | |
| enableAutoReply | No | |
| responseSubject | No | |
| responseBodyHtml | No | |
| restrictToDomain | No | |
| restrictToContacts | No | |
| responseBodyPlainText | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the operation is a read ('Gets', '[HTTP GET]') and returns JSON, which is useful. However, it omits auth/scope requirements and instead spends words on a generic request-body/body_file mechanism that is irrelevant to a bodyless GET, which could mislead an agent into supplying a body.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is correctly front-loaded, but the trailing boilerplate about typed parameters and body_file is template filler that does not apply to a GET and dilutes the signal. The sibling enumeration is long and includes this tool itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple single-parameter read and an output schema exists, so return values need not be described. The definition is sufficient to invoke it correctly; the only real gap is the absence of permission/scope context and the slightly confusing body-construction note.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the userId parameter and the generic query/params/dry_run/body_file helpers are already documented in the schema; baseline 3 applies. The description adds no meaning about userId or how the 'me' alias behaves beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: 'Gets vacation responder settings.' It also enumerates the sibling settings tools, so an agent can see this is the read counterpart to updateVacation. It stops short of explicitly contrasting getVacation against e.g. getAutoForwarding or getImap beyond the shared naming pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list implies the get-vs-update distinction, but the description never says when to call this tool versus scanning the other settings endpoints, nor what preconditions (e.g. which account or scope) apply. Usage is inferable from the name rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.sendAs.createA
Creates a custom "from" send-as alias. If an SMTP MSA is specified, Gmail will attempt to connect to the SMTP service to validate the configuration before creating the alias. If ownership verification is required for the alias, a message will be sent to the email address and the resource's verification status will be set to pending; otherwise, the resource will be created with verification status set to accepted. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias. For more information, see [Manage aliases and signatures with the Gmail API](https://deve [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON SendAs object accepting displayName, isDefault, isPrimary, replyToAddress, sendAsEmail, signature, smtpMsa, treatAsAlias and 1 more fields; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, patch, update, verify.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SendAs object. | |
| request_body | No | Request body of type SendAs: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| smtpMsa | No | |
| isDefault | No | |
| isPrimary | No | |
| signature | No | |
| displayName | No | |
| sendAsEmail | No | |
| treatAsAlias | No | |
| replyToAddress | No | |
| verificationStatus | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations were provided, the description must be highly informative. It details several complex behaviors not covered by the schema: attempting SMTP MSA validation, handling verification status (pending vs. accepted), and sanitizing HTML signatures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly detailed but verbose. While every sentence is necessary to convey the complexity of the API call, the overall length could be slightly streamlined for maximum efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a complex, state-changing API endpoint with no annotations, the description provides comprehensive context on the full lifecycle of the operation, including validation and verification steps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema coverage is 100%, the description adds critical functional meaning beyond the schema fields. It explains the mechanics of passing data (via `params` or `body_file`) and details the specific nature of the `smtpMsa` field (validation attempt).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (Creates) and the resource (custom 'from' send-as alias). It differentiates this operation from sibling tools by listing related operations like delete, get, and list within the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies the operational context, noting that this is an HTTP POST request and is 'refused under --readonly safety profiles'. It also provides explicit guidance by listing all relevant siblings (delete, get, list, patch, update, verify), helping the agent route alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.sendAs.deleteA
Deletes the specified send-as alias. Revokes any verification that may have been required for using it. For more information, see Manage aliases and signatures with the Gmail API. This method is only available to service account clients that have been delegated domain-wide authority [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, patch, update, verify.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| sendAsEmail | Yes | [URL path segment] The send-as alias to be deleted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses irreversibility, that verification grants are revoked, the domain-wide-delegation auth requirement, read-only refusal, and the post-delete return payload. These are the traits that determine whether an agent should call it at all, not restatements of the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and the delegation constraint are front-loaded, which is right, but a documentation URL sits between them and the tail spends a sentence on request-body construction (`body_file`, params merge) for a DELETE that sends no body. That boilerplate dilutes an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive settings mutation with no annotations and no output schema, the description covers the permission gate, the irreversibility, the verification side effect, and the return shape. Nothing an agent needs in order to decide and call correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents userId, sendAsEmail, body_file and the params map; the description only echoes the precedence rule (typed flags win over `params`). Baseline applies, with a small bump for clarifying how the generic `params`/`query` escape hatches interact with typed fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource ("Deletes the specified send-as alias") and adds the consequential side effect that verification is revoked. The closing clause enumerates the sibling operations on the same resource (create, get, list, patch, update, verify), so the agent can place it without inspecting other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a hard precondition — only usable by service account clients with domain-wide delegation — and warns the call is refused under read-only safety profiles, which is exactly the kind of when-not guidance agents need. It names alternatives but doesn't route explicitly (e.g. "to disable without removing, use patch"), leaving that inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.sendAs.getA
Gets the specified send-as alias. Fails with an HTTP 404 error if the specified address is not a member of the collection. For more information, see Manage aliases and signatures with the Gmail API [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, patch, update, verify.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| sendAsEmail | Yes | [URL path segment] The send-as alias to be retrieved. |
Output Schema
| Name | Required | Description |
|---|---|---|
| smtpMsa | No | |
| isDefault | No | |
| isPrimary | No | |
| signature | No | |
| displayName | No | |
| sendAsEmail | No | |
| treatAsAlias | No | |
| replyToAddress | No | |
| verificationStatus | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does disclose the key behavioral trait: a 404 failure when the address is not a member of the collection, plus the [HTTP GET] marker establishing read-only semantics. It does not mention OAuth scope requirements or whether the response includes verification status, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and failure mode are front-loaded, which is good, but the sentence about request bodies being built from typed parameters or read from body_file is dead weight for a GET with no request body and dilutes the useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is properly omitted, and the description covers identity, failure mode, and method. What remains missing is whether the caller needs specific scopes or admin privileges to read another user's alias — relevant given the userId path segment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both required path parameters (userId, sendAsEmail) are already documented in the schema; the description adds nothing about them. It only clarifies the wrapper mechanics ('typed flags win over the params map', body_file), which is marginal added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ('Gets the specified send-as alias') and then enumerates the sibling operations on the same resource (create, delete, list, patch, update, verify), so an agent can place it precisely among the sendAs family without inspecting other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list implies this is the single-alias retrieval in contrast to list/patch/update, but the description never states the selection condition explicitly (e.g. 'use list to enumerate aliases, get when you already know the address'). The 404-on-missing note is the only concrete operational cue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.sendAs.listA
Lists the send-as aliases for the specified account. The result includes the primary send-as address associated with the account as well as any custom "from" aliases. For more information, see Manage aliases and signatures with the Gmail API [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, patch, update, verify.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sendAs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It does state '[HTTP GET]' and that the tool 'Returns the requested resource as JSON', which signals a read operation, but it does not mention authorization scopes, rate limits, pagination, or side effects. The body-building note is generic and largely irrelevant for a GET list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the result scope is stated efficiently. However, the sentence about request bodies being built from typed parameters or read from body_file is irrelevant to a GET list operation, and the sibling list, while useful, adds length without mapping when each alternative applies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not explain return values. It covers the tool's purpose, read-only HTTP method, result contents, and relevant siblings. The remaining gap is the absence of authorization or operational context, which is notable given there are no annotations but not severe for a simple listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters including userId, query, params, dry_run, and body_file. The description does not add meaning beyond the schema; its mention of typed parameters winning over the params map and body_file behavior duplicates what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Lists the send-as aliases for the specified account.' It further clarifies the result contents with primary and custom 'from' aliases, and it distinguishes this tool from sibling operations by naming create, delete, get, patch, update, and verify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates a listing operation and lists sibling tools over the same resource, which implicitly tells the agent when to choose this over get/create/delete/patch/update/verify. It does not explicitly state exclusions or prerequisites, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.sendAs.patchA
Patch the specified send-as alias. For more information, see Manage aliases and signatures with the Gmail API [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON SendAs object accepting displayName, isDefault, isPrimary, replyToAddress, sendAsEmail, signature, smtpMsa, treatAsAlias and 1 more fields; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list, update, verify.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SendAs object. | |
| sendAsEmail | Yes | [URL path segment] The send-as alias to be updated. | |
| request_body | No | Request body of type SendAs: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| smtpMsa | No | |
| isDefault | No | |
| isPrimary | No | |
| signature | No | |
| displayName | No | |
| sendAsEmail | No | |
| treatAsAlias | No | |
| replyToAddress | No | |
| verificationStatus | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does reasonably well: it identifies this as an HTTP PATCH mutation, notes read-only profile refusal, states that the response is JSON, and explains body delivery via `params` or `body_file`. It still omits permission/auth requirements and the precise effect of partial updates on unspecified fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loads the core purpose and then adds safety, return, body, and sibling context. Most sentences earn their place, though the documentation link and sibling list add some bulk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a rich schema with 100% description coverage and an output schema, the description supplies the key missing behavioral context: mutation safety refusal, return format, and body construction alternatives. The main remaining gap is authorization or domain-permission requirements for changing send-as settings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reiterates the SendAs body fields and mentions `params`/`body_file`, but adds little syntax or meaning beyond what the rich input schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ("Patch") and resource ("send-as alias") and names the sibling operations on the same resource. It does not explain how this differs semantically from `update`, but the operation and target are still unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It discloses that the call is refused under `--readonly` safety profiles and lists sibling tools, but it does not explicitly say when to choose patch versus update, verify, or create. Usage is implied by the PATCH verb rather than stated with selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.sendAs.smimeInfo.deleteA
Deletes the specified S/MIME config for the specified send-as alias. For more information, see Manage S/MIME certificates with the Gmail API [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get, insert, list, setDefault.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The immutable ID for the SmimeInfo. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| sendAsEmail | Yes | [URL path segment] The email address that appears in the "From:" header for mail sent using this alias. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it declares the operation irreversible, notes it is refused under --readonly safety profiles, and states that the post-delete resource state (or empty) is returned as JSON. The trailing text about request bodies and body_file is irrelevant noise for a bodiless DELETE.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key fact (what is deleted, irreversibility) is front-loaded, but the definition is padded with generic wrapper boilerplate about typed flags, params maps, and body_file that cannot apply to a bodyless DELETE.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description tells the agent what comes back (post-delete resource state or empty) and warns of irreversibility and readonly-profile refusal, which is enough to call it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so userId, sendAsEmail, and id are already documented. The description only restates the resource scoping ('specified S/MIME config', 'specified send-as alias'), adding no format or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (deletes) and a precisely scoped resource (the S/MIME config for a given send-as alias), and lists the sibling operations on the same resource (get, insert, list, setDefault), so an agent can place it immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names sibling alternatives but never states the conditions under which an agent should delete versus use setDefault or get; usage is implied by the word 'delete' rather than explained. The linked S/MIME guide is the only outward pointer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.sendAs.smimeInfo.getA
Gets the specified S/MIME config for the specified send-as alias. For more information, see Manage S/MIME certificates with the Gmail API [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, insert, list, setDefault.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The immutable ID for the SmimeInfo. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| sendAsEmail | Yes | [URL path segment] The email address that appears in the "From:" header for mail sent using this alias. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| pem | No | |
| pkcs12 | No | |
| issuerCn | No | |
| isDefault | No | |
| expiration | No | |
| encryptedKeyPassword | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the burden; it does disclose that this is an HTTP GET returning the resource as JSON and links the S/MIME guide, which helps with auth context. It stops short of stating permission requirements for reading S/MIME certificates or what happens on an unknown ID.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is tight and front-loaded, but the trailing boilerplate about request bodies, typed flags versus the params map, and body_file is irrelevant noise for a bodyless GET and dilutes the signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape need not be explained, and the description says the resource comes back as JSON. However, the body-construction boilerplate describes capabilities this GET does not use, leaving the description slightly misleading rather than simply incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already explains userId ('me'), sendAsEmail, and id as URL path segments. The description adds no parameter-level detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets the specified S/MIME config for the specified send-as alias') and names the sibling operations on the same resource (delete, insert, list, setDefault), so an agent can place it precisely in the smimeInfo family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list signals that this is the single-item read versus list/insert/delete/setDefault, but no explicit condition is given for choosing get over list, nor any prerequisite such as needing the IDs returned by list first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.sendAs.smimeInfo.insertA
Insert (upload) the given S/MIME config for the specified send-as alias. Note that pkcs12 format is required for the key. For more information, see Manage S/MIME certificates with the Gmail API [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON SmimeInfo object accepting encryptedKeyPassword, expiration, id, isDefault, issuerCn, pem, pkcs12; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, setDefault.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SmimeInfo object. | |
| sendAsEmail | Yes | [URL path segment] The email address that appears in the "From:" header for mail sent using this alias. | |
| request_body | No | Request body of type SmimeInfo: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| pem | No | |
| pkcs12 | No | |
| issuerCn | No | |
| isDefault | No | |
| expiration | No | |
| encryptedKeyPassword | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden and does substantial work: it flags an actual mutation ('creates or triggers a change'), states it is refused under --readonly safety profiles, and notes the pkcs12 key requirement. It omits required auth scopes and whether an existing certificate is replaced, which keeps it out of 5 territory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the constraints follow immediately; the doc link and sibling enumeration are appended compactly. The single run-on block mixing HTTP method, safety-profile note, body fields and siblings is dense but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the brief return-value note suffices, and the body format, key constraint, and mutating nature are all covered. Missing: prerequisites that the send-as alias must already exist and be verified, which matters for a nested settings resource.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents userId, sendAsEmail, params, body_file and the encoded body fields. The description restates the SmimeInfo field list and the params/body_file routing that the schema already declares, adding little beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb (Insert/upload), a specific resource (S/MIME config), and its scope (the given send-as alias). An agent can distinguish this from setDefault or list without consulting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming the sibling operations over the same resource (delete, get, list, setDefault) situates this as the create operation, and the pkcs12-required note is an actionable precondition. It stops short of explicitly saying when to pick this over patching an existing alias config, so no full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.sendAs.smimeInfo.listB
Lists S/MIME configs for the specified send-as alias. For more information, see Manage S/MIME certificates with the Gmail API [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, insert, setDefault.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| sendAsEmail | Yes | [URL path segment] The email address that appears in the "From:" header for mail sent using this alias. |
Output Schema
| Name | Required | Description |
|---|---|---|
| smimeInfo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the HTTP method ([HTTP GET]), implying a safe read, and that the resource is returned as JSON. But it omits pagination (pageToken/nextPageToken) behavior and any scoping/permission prerequisites, and it spends a sentence on request-body construction from typed parameters or body_file that is irrelevant to a bodyless GET, which risks steering the agent toward unnecessary parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and the sibling routing are front-loaded in the first and last sentences, which is good structure. The middle sentence, however, bundles a documentation link with generic request-body boilerplate ('typed flags win over the params map', 'read whole from body_file') that is dead weight for a GET with no body and dilutes the signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return shape need not be spelled out, and the two required path parameters are fully covered by the schema. Still missing for a settings-scoped read are pagination behavior and any indication of the OAuth scope or admin rights required to read S/MIME configuration, which is the sort of thing an agent needs before attempting the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents userId (including the 'me' shortcut) and sendAsEmail, which sets the baseline at 3. The description only adds the tie between sendAsEmail and the 'specified send-as alias'; it says nothing about the generic query/params/dry_run/body_file knobs, which the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource with its scope: 'Lists S/MIME configs for the specified send-as alias.' It also enumerates the other operations over the same resource (delete, get, insert, setDefault), so the agent can place this tool relative to its siblings. It stops short of a 5 because 'S/MIME config' itself is not illustrated, an agent must infer what the resource contains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list ('delete, get, insert, setDefault') implies that this tool is the enumeration member of the group, and the guide link offers further context. However, there is no explicit when-to-use/when-not statement, no mention that listing is the prerequisite step before calling setDefault or delete with a certificate ID, so usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.sendAs.smimeInfo.setDefaultB
Sets the default S/MIME config for the specified send-as alias. For more information, see Manage S/MIME certificates with the Gmail API [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, insert, list.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The immutable ID for the SmimeInfo. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| sendAsEmail | Yes | [URL path segment] The email address that appears in the "From:" header for mail sent using this alias. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does disclose meaningful traits: HTTP POST, that it 'creates or triggers a change', that it is refused under --readonly safety profiles, and that it returns the API response resource as JSON. It omits auth/scope requirements and the effect on the currently-default config, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in one clean sentence, but the remainder is generic server-wide boilerplate about body construction and typed-vs-params precedence that adds little for a setDefault call. The trailing sibling enumeration is a fragment appended without context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-param mutation with no annotations and no output schema, the description covers safety-profile behavior and response shape but leaves out what actually changes (the prior default losing default status) and any permission/S-MIME-configuration prerequisites. Adequate, but there are real gaps for a state-changing setting operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all 7 params, including nested `params`, are documented), so the baseline is 3. The description does explain body construction precedence ('typed flags win over the params map', or read from `body_file`), but that same rule is already restated in the schema property descriptions, and the body-building detail is arguably irrelevant for this path-only endpoint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource: 'Sets the default S/MIME config for the specified send-as alias.' It also lists the sibling operations over the same resource (delete, get, insert, list), but only names them without explaining what distinguishes setDefault's role beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use / when-not guidance; the sibling list is a bare enumeration rather than routing logic. The only conditional behavior mentioned ('refused under --readonly safety profiles') is an environment constraint, not a usage rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.sendAs.updateA
Updates a send-as alias. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias. For more information, see Manage aliases and signatures with the Gmail API. Addresses other than the primary address for the account can only be updated by service account clients that have been delegated domain-wide authority [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON SendAs object accepting displayName, isDefault, isPrimary, replyToAddress, sendAsEmail, signature, smtpMsa, treatAsAlias and 1 more fields; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list, patch, verify.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SendAs object. | |
| sendAsEmail | Yes | [URL path segment] The send-as alias to be updated. | |
| request_body | No | Request body of type SendAs: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| smtpMsa | No | |
| isDefault | No | |
| isPrimary | No | |
| signature | No | |
| displayName | No | |
| sendAsEmail | No | |
| treatAsAlias | No | |
| replyToAddress | No | |
| verificationStatus | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral burden and does well: it discloses HTML sanitization of signatures, the delegation requirement, that it is an HTTP PUT refused under readonly profiles, and that it returns the response resource. Remaining gaps are permission scope names and full-replacement semantics, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and most sentences earn their place, but the paragraph is dense, mixing a docs link, HTTP verb annotation, and a sibling dump into one block. The "and 1 more fields" phrasing is slightly imprecise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, an output schema present, and 100% param coverage, the description covers auth, sanitization, safety-profile behavior, and return type adequately. The one notable omission is clarifying how update (PUT replacement) differs from patch, which matters for a mutation endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the seven parameters; the description adds value by enumerating the accepted SendAs fields (displayName, isDefault, signature, smtpMsa, etc.) and clarifying that the body can be supplied via `params` or wholesale via `body_file`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb and resource ("Updates a send-as alias") and the closing line names all siblings on the same resource (create, delete, get, list, patch, verify), so an agent can locate this tool within the family. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear operational context: the delegated domain-wide authority prerequisite for non-primary addresses and the refusal under --readonly safety profiles. However it never states when to prefer patch over update (i.e., partial vs full replacement), so the update/patch boundary is left for the agent to infer from the sibling name list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.sendAs.verifyA
Sends a verification email to the specified send-as alias address. The verification status must be pending. For more information, see Manage aliases and signatures with the Gmail API. This method is only available to service account clients that have been delegated domain-wide authority [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, list, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| sendAsEmail | Yes | [URL path segment] The send-as alias to be verified. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the safety burden well: it identifies this as a POST that creates or triggers a change, says readonly profiles refuse it, specifies auth scope, and describes response/body handling. It stops short of full behavioral detail such as rate limits or exact side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, and the subsequent blocks about auth, mutation safety, and return handling are relevant. The long combined sentence about response/body handling and the sibling list makes it denser than ideal, but there is little outright waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the key operational context: auth scope, pending-status prerequisite, readonly refusal, and response/body handling. It could be more complete about the returned resource fields or post-call effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters like userId, sendAsEmail, params, and body_file are already documented in the schema. The description restates typed-parameter precedence and body_file behavior but adds little parameter meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: sends a verification email to a send-as alias. It also lists sibling tools over the same resource, but does not explicitly explain how verify differs from get/patch/update beyond the verb, so sibling differentiation is implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear prerequisites: the alias's verification status must be pending, and only service-account clients with domain-wide delegation can call it. It also states it is refused under readonly profiles. It does not explicitly say when to choose verify over sibling tools like get/patch/update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.updateAutoForwardingA
Updates the auto-forwarding setting for the specified account. A verified forwarding address must be specified when auto-forwarding is enabled. For more information, see Manage email forwarding. This method is only available to service account clients that have been delegated domain-wide authority [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON AutoForwarding object accepting disposition, emailAddress, enabled; pass it via params or whole via body_file Siblings over the same resource: getAutoForwarding, getImap, getLanguage, getPop, getVacation, updateImap, updateLanguage, updatePop, updateVacation.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON AutoForwarding object. | |
| request_body | No | Request body of type AutoForwarding: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| enabled | No | |
| disposition | No | |
| emailAddress | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so well: it declares this is a mutating HTTP PUT, notes it is 'refused under --readonly safety profiles,' states the domain-wide delegation auth requirement, and discloses the return shape. For a mutation tool these are exactly the traits an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and prerequisites are front-loaded and each sentence is relevant. It is slightly padded by wrapper boilerplate ('Returns the API's response resource as JSON', '[HTTP PUT]') and the long sibling enumeration, but nothing is truly wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema is present, so return values needn't be spelled out, yet the description still notes the JSON response. Combined with auth requirements, forwarding-address prerequisite, body construction options, and sibling routing, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all six parameters and the AutoForwarding fields. The description still adds value by naming the body fields (disposition, emailAddress, enabled) as a single object and clarifying the two delivery paths ('pass it via params or whole via body_file').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Updates the auto-forwarding setting') and scopes it to 'the specified account.' It then names the sibling getters/setters over the same resource, so the agent can place this tool precisely within the forwarding-settings cluster without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies real usage preconditions: 'A verified forwarding address must be specified when auto-forwarding is enabled' and 'only available to service account clients that have been delegated domain-wide authority.' Naming the sibling update*/get* methods implies the read-vs-write split, though it never explicitly says 'use getAutoForwarding to read before updating.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.updateImapA
Updates IMAP settings. For more information, see Configure POP and IMAP settings with the Gmail API [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ImapSettings object accepting autoExpunge, enabled, expungeBehavior, maxFolderSize; pass it via params or whole via body_file Siblings over the same resource: getAutoForwarding, getImap, getLanguage, getPop, getVacation, updateAutoForwarding, updateLanguage, updatePop, updateVacation.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ImapSettings object. | |
| request_body | No | Request body of type ImapSettings: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| enabled | No | |
| autoExpunge | No | |
| maxFolderSize | No | |
| expungeBehavior | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses the HTTP PUT semantics, the refusal under --readonly safety profiles, and that the API response resource is returned as JSON. It leaves out whether changes require admin/owner permissions or are immediately applied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, followed by docs link, safety note, return format, body fields and siblings. Dense and slightly run-on with the long sibling list, but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-resource mutation tool with a 100%-covered schema and an output schema, the description supplies the critical extras: it's a PUT, it can be refused by readonly profiles, and the body shape. Missing only permission/scope expectations, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents userId, params, body_file, request_body and each ImapSettings field. The description restates the body fields and the params-vs-body_file routing in slightly different words, adding little beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Updates IMAP settings') and names the sibling tools over the same resource (getImap, updatePop, getPop, etc.), so an agent can distinguish it immediately. The linked guide and HTTP PUT reinforce what is being changed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear this is the write counterpart to getImap/getPop/updatePop and flags the readonly-profile refusal, which tells the agent when the call will fail. It does not explicitly say 'use updatePop instead when changing POP settings', but the sibling list makes the routing near-obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.updateLanguageA
Updates language settings. For more information, see Manage language settings. If successful, the return object contains the displayLanguage that was saved for the user, which may differ from the value passed into the request. This is because the requested displayLanguage may not be directly supported by Gmail but have a close variant that is, and so the variant may be chosen and saved instead [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON LanguageSettings object accepting displayLanguage; pass it via params or whole via body_file Siblings over the same resource: getAutoForwarding, getImap, getLanguage, getPop, getVacation, updateAutoForwarding, updateImap, updatePop, updateVacation.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON LanguageSettings object. | |
| request_body | No | Request body of type LanguageSettings: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| displayLanguage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it declares HTTP PUT mutation semantics, notes refusal under readonly profiles, and discloses that the saved displayLanguage may be a close variant rather than the requested value. It stops short of permission or idempotency details but covers the non-obvious behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The action and the displayLanguage caveat are front-loaded, and the doc link is compact. The trailing sibling list and duplicated body-passing guidance add some density but remain useful rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still explains the notable return quirk. With 100% schema coverage and only one required parameter, the definition is complete enough for correct invocation, lacking only explicit permission/auth context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, and the description adds real value by explaining the request body is a LanguageSettings object accepting displayLanguage and that it can be passed via params or body_file. That clarifies how the required userId interacts with the body.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Updates language settings') and lists the sibling set over the same resource, which implicitly names the read counterpart getLanguage. Differentiation is present but implicit rather than spelled out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The prefix 'update' versus the sibling 'getLanguage' implies when to read vs when to write, and the note about refusal under --readonly safety profiles is a partial when-not condition. However, nothing explicitly routes the agent between this and the sibling settings methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.updatePopA
Updates POP settings. For more information, see Configure POP and IMAP settings with the Gmail API [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON PopSettings object accepting accessWindow, disposition; pass it via params or whole via body_file Siblings over the same resource: getAutoForwarding, getImap, getLanguage, getPop, getVacation, updateAutoForwarding, updateImap, updateLanguage, updateVacation.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON PopSettings object. | |
| request_body | No | Request body of type PopSettings: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| disposition | No | |
| accessWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden and does well: it discloses the HTTP PUT semantics, that the call is refused under --readonly safety profiles, and that the API response resource is returned as JSON. It does not explain full-replacement vs partial-update behavior or required scopes, which is a real (if minor) gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and there is no filler, but the single paragraph crams the doc link, HTTP verb, safety note, body shape and full sibling list together, making it denser than needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, and the description still covers mutation semantics, safety-profile refusal and body construction. Combined with a fully documented schema, an agent has nearly everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents userId, params, body_file and the nested request_body fields. The description restates accessWindow/disposition and the params-vs-body_file routing, adding only marginal clarity over the schema, which is the baseline 3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Updates POP settings") and explicitly lists the sibling settings tools (getPop, updateImap, updateLanguage, etc.) over the same resource, letting an agent distinguish it without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list plus the note that mutations are refused under --readonly safety profiles gives clear context on when this tool applies versus the read-only getters. It stops short of an explicit "use this when you need to change disposition/accessWindow, use getPop to read" statement, so no full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.settings.updateVacationA
Updates vacation responder settings. For more information, see Manage vacation settings with the Gmail API [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON VacationSettings object accepting enableAutoReply, endTime, responseBodyHtml, responseBodyPlainText, responseSubject, restrictToContacts, restrictToDomain, startTime; pass it via params or whole via body_file Siblings over the same resource: getAutoForwarding, getImap, getLanguage, getPop, getVacation, updateAutoForwarding, updateImap, updateLanguage, updatePop.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] User's email address. The special value "me" can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON VacationSettings object. | |
| request_body | No | Request body of type VacationSettings: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| endTime | No | |
| startTime | No | |
| enableAutoReply | No | |
| responseSubject | No | |
| responseBodyHtml | No | |
| restrictToDomain | No | |
| restrictToContacts | No | |
| responseBodyPlainText | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does reasonably well: it discloses HTTP PUT semantics, that the operation is refused when a readonly safety profile is active, and that the API response resource is returned as JSON. It does not state required body fields or permission requirements, but it gives more than the bare minimum for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is stated first, followed by useful details. It is a single dense paragraph, and the trailing list of nine sibling tools is somewhat verbose, but the overall text is not bloated and every clause is at least tangentially relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not strictly required, yet the description covers write semantics, safety-profile behavior, request body shape, and body transport. It lacks detail on required body fields and permissions, but is sufficient for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description merely enumerates the VacationSettings body fields and repeats the transport options (params vs body_file) already present in the schema's request_body and body_file descriptions, adding little semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Updates vacation responder settings.' It also names the sibling read counterpart (getVacation) and the other settings update tools, so an agent can distinguish this write operation from lookups without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states that the call is refused under '--readonly safety profiles', which is a useful usage constraint. However, it never explicitly says when to choose this tool over getVacation or the other update* siblings; the sibling list provides context but no explicit decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.stopA
Turn off push notification delivery for the given user mailbox. For more information, see Configure push notifications in Gmail API [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: getProfile, watch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and mostly succeeds: it discloses the HTTP POST method, that it is a mutating operation, that it is refused under --readonly safety profiles, and that the API response resource is returned as JSON. It omits auth/scope requirements and whether stopping is idempotent or fails when no watch is active.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is crisp and front-loaded, but the trailing boilerplate about building request bodies from typed parameters or body_file does not earn its place for an endpoint with no request body. The sibling list and method/safety note are useful compression.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations, so the description must cover behavior and it does cover method, mutation nature, safety-profile refusal, and response shape. The remaining gap is what the returned resource actually contains for a stop call and any prerequisite that a watch exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes further by explaining the precedence rule ('typed flags win over the params map') and the body_file alternative, which is real semantics the schema alone doesn't express. The generic body-building sentence is largely moot for a bodyless stop endpoints, limiting the lift.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Turn off push notification delivery for the given user mailbox'), which is precise enough to distinguish it from the sibling 'watch' that does the opposite. No ambiguity about which mailbox is affected.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose makes the trigger condition clear (stop an existing push notification channel), and it names the same-resource siblings getProfile and watch for orientation. It stops short of explicitly saying 'use watch to enable' or noting whether an active watch is required first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.threads.deleteA
Immediately and permanently deletes the specified thread. Any messages that belong to the thread are also deleted. This operation cannot be undone. Prefer threads.trash instead. For more information, see Manage threads [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get, list, modify, trash, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] ID of the Thread to delete. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses cascade destruction ('any messages ... are also deleted'), irreversibility, refusal under --readonly safety profiles, and the shape of the response. The generic claim that it 'returns the post-delete resource state (or empty)' is hedged and partly boilerplate, which keeps it just short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The destructive-scope and prefer-trash guidance is front-loaded in the first three sentences, which is exactly right. The trailing [HTTP DELETE] block and the request-body construction notes are generic boilerplate that adds no value to a bodyless deletion endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-recoverable operation with no annotations and no output schema, the description covers scope, reversibility, sibling alternatives, and the return value — everything an agent needs to decide and invoke safely. It stops short of stating required OAuth scope or quota, which a fully complete definition would mention.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both required path segments (userId, id) are already documented, and the description adds nothing about them. The only added semantics is the precedence rule that typed flags win over the `params` map and that `body_file` overrides body construction — useful but largely irrelevant for a bodyless DELETE.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('permanently deletes the specified thread') and immediately extends the scope to cascading deletion of contained messages. It also names the sibling resource operations (get, list, modify, trash, untrash) at the end, so an agent can distinguish it from threads.trash and messages.delete without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: 'Prefer `threads.trash` instead' names the alternative and the condition (recoverability) that selects it. The irreversibility warning supplies the when-not case, and the readonly-profile note tells the agent under what execution context the call will be refused.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.threads.getB
Gets the specified thread. For more information, see Manage threads [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, list, modify, trash, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the thread to retrieve. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| format | No | [query parameter] The format to return the messages in. Values: `full` = Returns the full email message data with body content parsed in the `payload` field; the `raw` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.; `metadata` = Returns only email message IDs, labels, and email headers.; `minimal` = Returns only email message IDs and labels; does not return the email headers, body, or payload.. | full |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| metadataHeaders | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| snippet | No | |
| messages | No | |
| historyId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose that this is an HTTP GET returning JSON. However, the boilerplate about request bodies and body_file is irrelevant to a GET and adds noise rather than context (scopes, permission needs, or behavior when the thread ID doesn't exist).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, but the middle clause about request bodies/body_file is templated filler for a read tool and dilutes focus. The trailing sibling list is useful but unannotated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained. But with no annotations covering safety or side effects, the description should say more about behavior for this read tool (e.g., scope requirements, error behavior), and instead spends space on irrelevant body-construction boilerplate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 88%, so the schema already documents userId, id, format, metadataHeaders, etc. The description adds only the generic 'typed flags win over params' note and body_file behavior, without clarifying any specific parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets the specified thread') and lists the sibling operations over the same resource (delete, list, modify, trash, untrash), which lets an agent distinguish this from them. It falls short of a 5 because the siblings are only named, not contrasted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling list implies the boundary (get vs list/modify/trash), but the description never explicitly says when to choose this over them or what prerequisites exist. Usage is inferable from the name and the HTTP GET marker rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.threads.listB
Lists the threads in the user's mailbox. For more information, see Manage threads [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, modify, trash, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | [query parameter] Only return threads matching the specified query. Supports the same query format as the Gmail search box. For example, `"from:someuser@example.com rfc822msgid: | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| labelIds | No | ||
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Page token to retrieve a specific page of results in the list. | |
| maxResults | No | [query parameter] Maximum number of threads to return. This field defaults to 100. The maximum allowed value for this field is 500. | 100 |
| includeSpamTrash | No | [query parameter] Include threads from `SPAM` and `TRASH` in the results. | false |
Output Schema
| Name | Required | Description |
|---|---|---|
| threads | No | |
| nextPageToken | No | |
| resultSizeEstimate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden; it does disclose that this is an HTTP GET returning JSON, which implies read-only, and explains how the request body is sourced (typed params vs params map vs body_file). It omits pagination behavior, auth/quota implications, and the odd fit of body_file for a GET is left unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and tight, but the boilerplate about request bodies and body_file is largely irrelevant for a GET endpoint and adds noise. The docs link and HTTP-method tag are fine but the body-building sentence does not earn its place here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward list endpoint with 90% schema coverage and an output schema, the description supplies enough orientation to call it correctly. The remaining gap is that it does not clarify list semantics (pagination/result shape) but the output schema covers returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 90%, so the baseline is 3 and the schema already documents q, labelIds, pageToken, maxResults, includeSpamTrash, and userId thoroughly. The description only adds the typed-params-over-params-map precedence rule, which is a modest increment over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Lists the threads in the user's mailbox" gives a clear verb and resource, and the sibling list (delete, get, modify, trash, untrash) confirms this is the collection-read variant. It stops short of distinguishing itself from the nearby gmail.users.messages.list, so not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never states when to use threads.list versus messages.list, nor when to prefer it over a search, and offers no exclusions. Enumerating sibling names is not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.threads.modifyA
Modifies the labels applied to the thread. This applies to all messages in the thread. For more information, see Manage threads [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ModifyThreadRequest object accepting addLabelIds, removeLabelIds; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, trash, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the thread to modify. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ModifyThreadRequest object. | |
| request_body | No | Request body of type ModifyThreadRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| snippet | No | |
| messages | No | |
| historyId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses that this is a mutation, that it affects every message in the thread, that it is refused under readonly safety profiles, and that it returns the API response resource as JSON. It does not mention required OAuth scopes or error conditions, but the key mutation and safety behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and scope, then adds mutation, return, request-body, and sibling information. It is somewhat dense and includes a documentation link and sibling list, but those details are relevant rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, full parameter description coverage, and a clear mutation-oriented description. Given that structured data already covers parameters and return shape, the description is complete enough for correct invocation, with only auth/scope details missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented by the schema itself. The description adds some useful framing by naming ModifyThreadRequest and its addLabelIds/removeLabelIds fields and by explaining that the body can be passed via params or body_file, but this largely restates schema-provided information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it modifies labels applied to a thread, and explicitly notes that this applies to all messages in the thread. That scope statement distinguishes it clearly from message-level modification and from the listed thread siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names sibling operations over the same resource, which gives some orientation, but it does not explain when to choose thread modification versus message modification or batchModify. Usage is implied by the verb and scope, not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.threads.trashA
Moves the specified thread to the trash. Any messages that belong to the thread are also moved to the trash. For more information, see Manage threads [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, list, modify, untrash.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the thread to Trash. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| snippet | No | |
| messages | No | |
| historyId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does substantial work: it discloses that this is an HTTP POST mutation, that it triggers a change, that it is refused under --readonly safety profiles, and that it returns the API response resource as JSON. It stops short of covering auth/permission requirements or reversibility details, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior is front-loaded in the first two sentences, and the remaining technical metadata about readonly profiles, return format, and request construction is relevant. It is somewhat dense but has little wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a 6-parameter tool with full schema coverage and an output schema, the description is nearly complete: it explains the mutation, safety-profile behavior, request-building mechanics, and sibling operations. It omits permission requirements and reversibility context, which keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3, but the description adds meaningful request-construction semantics: typed parameters win over the params map, and body_file can supply the request body wholesale. That extra interaction guidance makes the description more useful than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: moving a thread to trash, with the added scope that all messages in the thread are also trashed. It names the sibling operations over the same resource at the end, but does not explicitly differentiate when each should be used, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the action itself, and the sibling list (delete, get, list, modify, untrash) gives context, but there is no explicit guidance on when to choose trash versus delete or untrash. The readonly-profile note adds an environmental constraint rather than a usage condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.threads.untrashA
Removes the specified thread from the trash. Any messages that belong to the thread are also removed from the trash. For more information, see Manage threads [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, list, modify, trash.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | [URL path segment] The ID of the thread to remove from Trash. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| snippet | No | |
| messages | No | |
| historyId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and discloses several important traits: HTTP POST mutation, refusal under readonly safety profiles, the side effect of untrashing all messages in the thread, and response/body construction behavior. It does not cover permission requirements or error behavior, but it adds substantial context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and side effect, then adds useful operational context. It is slightly verbose with the documentation link, HTTP verb note, safety-profile note, response construction note, and sibling list, but each piece is relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a full schema and an output schema, so the description need not repeat return values in detail. For an unannotated mutation, the description adequately covers the action, side effect, safety refusal, and body construction, though it omits permissions and error semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the parameters. The description adds value by explaining that request bodies are built from typed parameters, that typed flags win over the params map, and that body_file can supply the whole body, which clarifies parameter relationships beyond the field-level schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Removes the specified thread from the trash.' It also clarifies the side effect on messages in the thread and lists sibling operations over the same resource, so an agent can distinguish untrash from trash, delete, get, list, and modify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for restoring a trashed thread and notes that it is refused under --readonly safety profiles. It also lists sibling tools, but it does not explicitly state when to choose untrash versus trash/delete or what prerequisites apply, leaving selection somewhat implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail.users.watchA
Set up or update a push notification watch on the given user mailbox. For more information, see Configure push notifications in Gmail API [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON WatchRequest object accepting labelFilterAction, labelFilterBehavior, labelIds, topicName; pass it via params or whole via body_file Siblings over the same resource: getProfile, stop.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| userId | Yes | [URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user. | me |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON WatchRequest object. | |
| request_body | No | Request body of type WatchRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| historyId | No | |
| expiration | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses the write nature ('HTTP POST — creates or triggers a change'), notes refusal under --readonly safety profiles, and states the return format. It omits auth scopes and details about what happens to an existing watch on update.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and safety, then covers body passing and siblings. It is slightly long and repeats body fields already present in the schema, but every sentence largely earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation, nested body, output schema), the description covers purpose, mutation, safety gating, body passing, and siblings. Output schema handles returns, and a docs link is provided. Missing auth requirements and update semantics keep it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explaining that the WatchRequest body can be passed via `params` (merged) or whole via `body_file`, and it lists the accepted fields, which clarifies usage beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Set up or update a push notification watch on the given user mailbox.' It also names sibling tools (getProfile, stop) and notes the HTTP POST method, so an agent can distinguish it immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The verb 'set up or update' implies when to use it, and siblings are listed, but there is no explicit statement of when to choose watch vs stop or any prerequisites/exclusions. The usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.contactGroups.batchGetB
Get a list of contact groups owned by the authenticated user by specifying a list of contact group resource names [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| maxMembers | No | [query parameter] Optional. Specifies the maximum number of members to return for each group. Defaults to 0 if not set, which will return zero members. | |
| groupFields | No | [query parameter] Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, `memberCount`, and `name` if not set or set to e | |
| resourceNames | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| responses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load; it does disclose that this is an HTTP GET returning JSON, which establishes read-only semantics, and explains the params-vs-typed-parameter precedence. But the claim that 'request bodies are built from the typed parameters ... or read whole from body_file' is incoherent for a GET endpoint and adds confusion rather than clarity. It also says nothing about auth scopes or the 200-resource cap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, so length is fine and the purpose is front-loaded. The middle clause about request bodies and body_file is boilerplate that does not earn its place on a GET tool and actively distracts, while the genuinely useful sibling routing is buried at the very end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the schema covers most parameters. What is missing for a 7-parameter tool with zero annotations is any statement of auth requirements or the practical constraint that omitting maxMembers returns zero members per group — leaving the agent to infer batching limits from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 86%, so the schema already documents maxMembers, groupFields, and resourceNames in detail; baseline is 3. The description only echoes the resourceNames intent ('a list of contact group resource names') and gives a precedence rule for the generic `params` map versus typed flags, without adding format or default guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: get contact groups owned by the authenticated user, keyed by a list of resource names. It names the sibling family (create, delete, get, list, update), which helps placement. However, it never distinguishes batchGet from the singular `get` sibling on the same resource, and the framing is muddied by generic request-body boilerplate that does not belong to a read call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by specifying a list of contact group resource names' implies this is the bulk-retrieval variant, and the sibling list gives context. But there is no explicit when-to-use rule such as 'use this instead of get when you have multiple group resource names', and no stated prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.contactGroups.createA
Create a new contact group owned by the authenticated user. Created contact group names must be unique to the users contact groups. Attempting to create a group with a duplicate name will return a HTTP 409 error. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CreateContactGroupRequest object accepting contactGroup, readGroupFields; pass it via params or whole via body_file Siblings over the same resource: batchGet, delete, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CreateContactGroupRequest object. | |
| request_body | No | Request body of type CreateContactGroupRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| name | No | |
| metadata | No | |
| groupType | No | |
| clientData | No | |
| memberCount | No | |
| resourceName | No | |
| formattedName | No | |
| memberResourceNames | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the duplicate-name failure mode and its status code, the serialization requirement for concurrent mutations, that the call is refused under --readonly profiles, and that the API response resource is returned as JSON. It stops short of stating auth scopes or that the created group appears in list results afterward.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and the uniqueness constraint, then transitions to mechanics and siblings — a sensible order. The '— creates or triggers a change; refused under --readonly safety profiles' clause is boilerplate that adds bulk but does convey a real behavioral limit, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values needn't be explained, and the description covers the request body type, error behavior, and concurrency caveat. The remaining gap is permission/scope requirements for creating a group on the authenticated user's account, which would close the loop for a mutation tool with zero annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter and request-body fields are already documented structurally. The description adds that the body accepts contactGroup and readGroupFields and how to supply it (params vs body_file), which is useful but largely restates the schema's own body_file and params descriptions; baseline 3 is warranted rather than more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (create), resource (contact group), and ownership scope (owned by the authenticated user) in the first sentence, and enumerates the sibling operations on the same resource so the agent can place it precisely among list/get/update/delete/batchGet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage constraints: names must be unique and duplicates yield HTTP 409, and mutate requests for the same user must be serialized. It names siblings but does not explicitly say when to prefer update over create (e.g., to add members after creation), so routing guidance is strong but not complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.contactGroups.deleteA
Delete an existing contact group owned by the authenticated user by specifying a contact group resource name. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchGet, create, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| resourceName | Yes | [URL path segment] Required. The resource name of the contact group to delete. | |
| deleteContacts | No | [query parameter] Optional. Set to true to also delete the contacts in the specified group. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses key behavior: it is irreversible (no trash/undo flow), it is refused under --readonly safety profiles, and it returns the post-delete resource state. These cover the destructive nature and safety interaction well; only explicit auth-scope requirements are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the description is dense with generic template filler ('[HTTP DELETE]', the typed-flags-win-over-params boilerplate, the hedged 'unless the API documents a trash/undo flow'). Several phrases do not earn their place and reduce crispness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be spelled out, yet the description still notes it returns the post-delete resource state. For a destructive mutation with no annotations and complete param coverage, the description is sufficiently complete; a bit more on sequencing scope or permissions would round it out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters, including resourceName and deleteContacts. The description adds little parameter-specific meaning beyond echoing the resource name and the generic typed-flags-vs-params/body_file mechanics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete an existing contact group owned by the authenticated user by specifying a contact group resource name') and explicitly names the siblings over the same resource (batchGet, create, get, list, update). An agent can distinguish this from update/list/get without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete usage constraint ('Mutate requests for the same user should be sent sequentially to avoid increased latency and failures') and routes to the sibling set, implying update for modification. It does not explicitly state when NOT to use this (e.g., use update to remove contacts while keeping the group), so it stops short of full 5-level coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.contactGroups.getA
Get a specific contact group owned by the authenticated user by specifying a contact group resource name [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchGet, create, delete, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| maxMembers | No | [query parameter] Optional. Specifies the maximum number of members to return. Defaults to 0 if not set, which will return zero members. | |
| groupFields | No | [query parameter] Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, `memberCount`, and `name` if not set or set to e | |
| resourceName | Yes | [URL path segment] Required. The resource name of the contact group to get. |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| name | No | |
| metadata | No | |
| groupType | No | |
| clientData | No | |
| memberCount | No | |
| resourceName | No | |
| formattedName | No | |
| memberResourceNames | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does disclose that this is an HTTP GET, that the resource must be owned by the authenticated user, and that the result is returned as JSON. However, it spends more text on request-body construction (typed params vs. `params` map vs. `body_file`) that is irrelevant for a bodyless GET, and says nothing about permission failures or the fact that members are omitted by default (maxMembers defaults to 0).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first and last sentences earn their place, but the middle sentence about request bodies, typed-parameter precedence, and `body_file` is generic boilerplate that does not apply to a GET and pushes the sibling routing information to the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and parameter coverage is complete, so the core purpose is covered. Still, for a tool with no annotations and a non-obvious default (zero members returned unless maxMembers is set), the description should have flagged that behavior rather than generic body-building mechanics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameter semantics are fully carried by the schema; the description only restates that a contact group resource name is required. Baseline 3 applies since the description adds no format or usage detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a precise verb+resource+scope ('Get a specific contact group owned by the authenticated user by specifying a contact group resource name'), and the closing sentence enumerates the sibling operations on the same resource (batchGet, create, delete, list, update), so an agent can identify this as the single-resource read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming the siblings is a useful routing signal, but the description never states the conditions that select this tool over batchGet (multiple groups) or list (discovery). The when-to-use is only implied by the word 'specific'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.contactGroups.listB
List all contact groups owned by the authenticated user. Members of the contact groups are not populated [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchGet, create, delete, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The maximum number of resources to return. Valid values are between 1 and 1000, inclusive. Defaults to 30 if not set or set to 0. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. The next_page_token value returned from a previous call to [ListContactGroups](/people/api/rest/v1/contactgroups/list). Requests the next page of reso | |
| syncToken | No | [query parameter] Optional. A sync token, returned by a previous call to `contactgroups.list`. Only resources changed since the sync token was created will be returned. | |
| groupFields | No | [query parameter] Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, `memberCount`, and `name` if not set or set to e |
Output Schema
| Name | Required | Description |
|---|---|---|
| totalItems | No | |
| contactGroups | No | |
| nextPageToken | No | |
| nextSyncToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the HTTP GET method, the owned-groups scope, and that members are not populated, but it does not state read-only safety explicitly, auth requirements, pagination behavior, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and member-omission facts are front-loaded, which is good. However, the generic sentence about request bodies, typed flags, and body_file is boilerplate for a GET list operation and makes the definition less concise and potentially confusing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with a rich schema and an output schema, the description covers the key scope and the important caveat that members are not populated. It is mostly complete, though it could clarify pagination and sync behavior at a high level rather than relying entirely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only generic request-building context about typed parameters, params, and body_file, but does not add meaning beyond the schema for pageSize, pageToken, syncToken, or groupFields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: list all contact groups owned by the authenticated user, and notes that members are not populated. It also names sibling operations over the same resource, though it does not explain how to choose among them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by saying it lists all owned contact groups and that members are not populated, but it gives no explicit when-to-use guidance or when-not-to-use exclusions. Siblings such as batchGet and get are named, but the conditions selecting list over them are not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.contactGroups.members.modifyA
Modify the members of a contact group owned by the authenticated user. The only system contact groups that can have members added are contactGroups/myContacts and contactGroups/starred. Other system contact groups are deprecated and can only have contacts removed [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ModifyContactGroupMembersRequest object accepting resourceNamesToAdd, resourceNamesToRemove; pass it via params or whole via body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ModifyContactGroupMembersRequest object. | |
| request_body | No | Request body of type ModifyContactGroupMembersRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| resourceName | Yes | [URL path segment] Required. The resource name of the contact group to modify. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notFoundResourceNames | No | |
| canNotRemoveLastContactGroupResourceNames | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it flags this as an HTTP POST that 'creates or triggers a change' and notes it is 'refused under --readonly safety profiles,' which is exactly the mutation/safety context an agent needs. It also states the return is the API's response resource as JSON. Minor gap: no detail on permission scope beyond the system-group constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, then system-group constraints, then mutability/safety, then body details. Every clause carries information, though the bracketed/dashed run-on phrasing is dense and slightly harder to parse than a cleanly segmented version.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (so return values needn't be detailed) and no annotations, the description fills the important gaps: usage preconditions, mutation safety-profile refusal, and body-passing options. It is complete enough to call correctly; only finer permission/edge-case detail is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3; the description adds practical routing by naming resourceNamesToAdd/resourceNamesToRemove and explaining they can be passed via `params` or whole via `body_file`. This clarifies the body-passing mechanic beyond the schema's field definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Modify') and resource ('the members of a contact group') and clarifies ownership ('owned by the authenticated user'), so it is distinguishable from sibling CRUD operations like contactGroups.update/create/delete. It stops short of explicitly contrasting with those siblings, keeping it at a 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete preconditions: only `contactGroups/myContacts` and `contactGroups/starred` can have members added, and other system groups allow removal only. This is clear usage context. It does not explicitly route the agent among alternatives (e.g., vs. contactGroups.update), so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.contactGroups.updateA
Update the name of an existing contact group owned by the authenticated user. Updated contact group names must be unique to the users contact groups. Attempting to create a group with a duplicate name will return a HTTP 409 error. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON UpdateContactGroupRequest object accepting contactGroup, readGroupFields, updateGroupFields; pass it via params or whole via body_file Siblings over the same resource: batchGet, create, delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON UpdateContactGroupRequest object. | |
| request_body | No | Request body of type UpdateContactGroupRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| resourceName | Yes | [URL path segment] The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| name | No | |
| metadata | No | |
| groupType | No | |
| clientData | No | |
| memberCount | No | |
| resourceName | No | |
| formattedName | No | |
| memberResourceNames | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden and does disclose important behavior: HTTP PUT semantics, refusal under readonly safety profiles, duplicate-name 409 behavior, sequential mutation guidance, and JSON response format. It does not cover permission scopes or etag/field-mask side effects, leaving some mutation behavior implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and constraints are front-loaded, and most sentences earn their place. However, the single dense paragraph mixes HTTP method, readonly safety, body mechanics, and sibling tools, which makes it less clean than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, the description covers uniqueness, sequential mutation behavior, readonly refusal, response format, and request-body transport, while an output schema exists to cover return structure. It is not fully comprehensive because it omits permission scopes and field-mask effects for readGroupFields/updateGroupFields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents resourceName, params, body_file, request_body, and nested body fields. The description restates the body type and transport options but adds little semantic detail beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: update the name of an existing contact group owned by the authenticated user. It also names sibling operations over the same resource, making it easy to distinguish this tool from create, delete, get, list, and batchGet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful usage context: the group must already exist and be owned by the authenticated user, names must be unique, duplicate names return HTTP 409, and mutations for the same user should be sequential. It lists sibling tools but does not explicitly say when to choose update over create/get/delete, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.otherContacts.copyOtherContactToMyContactsGroupA
Copies an "Other contact" to a new contact in the user's "myContacts" group Mutate requests for the same user should be sent sequentially to avoid increased latency and failures [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CopyOtherContactToMyContactsGroupRequest object accepting copyMask, readMask, sources; pass it via params or whole via body_file Siblings over the same resource: list, search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CopyOtherContactToMyContactsGroupRequest object. | |
| request_body | No | Request body of type CopyOtherContactToMyContactsGroupRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| resourceName | Yes | [URL path segment] Required. The resource name of the "Other contact" to copy. |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| urls | No | |
| names | No | |
| events | No | |
| photos | No | |
| skills | No | |
| genders | No | |
| locales | No | |
| ageRange | No | |
| fileAses | No | |
| metadata | No | |
| taglines | No | |
| addresses | No | |
| ageRanges | No | |
| birthdays | No | |
| imClients | No | |
| interests | No | |
| locations | No | |
| nicknames | No | |
| relations | No | |
| clientData | No | |
| residences | No | |
| biographies | No | |
| coverPhotos | No | |
| externalIds | No | |
| memberships | No | |
| occupations | No | |
| userDefined | No | |
| calendarUrls | No | |
| miscKeywords | No | |
| phoneNumbers | No | |
| resourceName | No | |
| sipAddresses | No | |
| organizations | No | |
| braggingRights | No | |
| emailAddresses | No | |
| relationshipStatuses | No | |
| relationshipInterests | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It discloses that this is a mutation, that it is refused under readonly profiles, and that sequential requests are needed, but it omits permissions/auth needs, idempotency, side effects on existing contacts, and error semantics—gaps for a write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then layers on safety and body details. It is dense but every sentence is relevant, though some body-parameter explanation duplicates schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, for a mutation tool with no annotations, the description still leaves out key context like permission scope, idempotency, and handling of duplicate contacts in myContacts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters. The description clarifies that the body accepts copyMask, readMask, and sources and can be passed via params or body_file, but this largely repeats schema content rather than adding new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Copies') and resource ('Other contact' to a new contact in 'myContacts'), making the action unambiguous. It also names sibling operations (list, search) over the same resource, so an agent can distinguish it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides concrete operational guidance: mutate requests for the same user must be sequential to avoid latency/failures, and the operation is refused under --readonly safety profiles. Sibling tools are listed but not explicitly contrasted with when to use them, leaving a minor gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.otherContacts.listA
List all "Other contacts", that is contacts that are not in a contact group. "Other contacts" are typically auto created contacts from interactions. Sync tokens expire 7 days after the full sync. A request with an expired sync token will get an error with an google.rpc.ErrorInfo with reason "EXPIRED_SYNC_TOKEN". In the case of such an error clients should make a full sync request without a sync_token. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fi [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: copyOtherContactToMyContactsGroup, search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| sources | No | ||
| pageSize | No | [query parameter] Optional. The number of "Other contacts" to include in the response. Valid values are between 1 and 1000, inclusive. Defaults to 100 if not set or set to 0. | |
| readMask | No | [query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. What values are va | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters | |
| syncToken | No | [query parameter] Optional. A sync token, received from a previous response `next_sync_token` Provide this to retrieve only the resources changed since the last request. When syn | |
| requestSyncToken | No | [query parameter] Optional. Whether the response should return `next_sync_token` on the last page of results. It can be used to get incremental changes since the last request by |
Output Schema
| Name | Required | Description |
|---|---|---|
| totalSize | No | |
| nextPageToken | No | |
| nextSyncToken | No | |
| otherContacts | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden and does add useful context: sync-token expiry and recovery, first-page quota and 429 behavior, and HTTP GET/JSON semantics. It lacks an explicit read-only statement and contains a truncated sentence ('This quota is fi'), but overall gives substantial operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, and the sync-token/quota details are relevant. However, the description mixes API documentation with generic wrapper text about HTTP GET, body_file, and typed parameters overriding the params map, and includes a truncated sentence, making it noisier than necessary for tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and an existing output schema, the description adds key sync-token and quota caveats plus GET semantics, while the schema covers the remaining parameter details. It is largely complete for invocation, though it omits explicit guidance for choosing this over search and leaves some text truncated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 90%, and the schema already documents sources, pageSize, readMask, pageToken, syncToken, and requestSyncToken. The description mentions sync_token and generic params/body_file mechanics but adds little precise parameter meaning beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'List all Other contacts' and defines them as contacts not in a contact group that are typically auto-created from interactions. This is a specific verb and resource with scope, but it names siblings without explaining how this differs from search or copy operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides operational guidance for sync tokens, including 7-day expiry, EXPIRED_SYNC_TOKEN recovery via full sync, first-page quota, and 429 handling. However, it does not explicitly say when to use this list tool versus people.otherContacts.search or copyOtherContactToMyContactsGroup; siblings are listed without selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.otherContacts.searchA
Provides a list of contacts in the authenticated user's other contacts that matches the search query. The query matches on a contact's names, emailAddresses, and phoneNumbers fields that are from the OTHER_CONTACT source. IMPORTANT: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/other-contacts#search_the_users_other_contacts [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: copyOtherContactToMyContactsGroup, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] Optional. The number of results to return. Defaults to 10 if field is not set, or set to 0. Values greater than 30 will be capped to 30. | |
| readMask | No | [query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full load and does reasonably well: it marks the call as an HTTP GET (read-only), discloses the cache-warmup requirement (a non-obvious behavioral trait with failure consequences if skipped), and notes the request may be built from typed parameters or read wholesale from body_file. It does not mention pagination, result caps, or authorization scopes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose, matching fields, and the warmup warning are front-loaded and earn their place; the IMPORTANT marker correctly flags the one thing that will break a naive call. The trailing sentence about typed flags versus `params`/`body_file` is generic wrapper boilerplate shared across many tools rather than tool-specific value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description covers the read-only nature, the matching fields, the warmup precondition, and sibling scope. What remains missing is where the search string is supplied and how paging works, minor gaps against a tool with fully documented parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds field-matching semantics for the search query, but it never says which parameter actually carries the query text — the schema's `query` is an array of KEY=VALUE pairs for undisclosed endpoints, not a search string, leaving the agent to infer that the query goes into `params`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource — searching the authenticated user's OTHER_CONTACT source — and states precisely which contact fields (names, emailAddresses, phoneNumbers) the query is matched against. It also names the two sibling operations on the same resource (list, copyOtherContactToMyContactsGroup), so an agent can distinguish it without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit precondition — send an empty-query warmup request first to refresh the cache — which is real usage guidance an agent would otherwise miss. It does not, however, state when to prefer this over people.people.searchContacts or otherContacts.list; the siblings are listed but without selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.batchCreateContactsA
Create a batch of new contacts and return the PersonResponses for the newly Mutate requests for the same user should be sent sequentially to avoid increased latency and failures [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchCreateContactsRequest object accepting contacts, readMask, sources; pass it via params or whole via body_file Siblings over the same resource: batchDeleteContacts, batchUpdateContacts, createContact, deleteContact, deleteContactPhoto, get, getBatchGet, listDirectoryPeople, searchContacts, searchDirectoryPeople, updateContact, updateContactPhoto.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchCreateContactsRequest object. | |
| request_body | No | Request body of type BatchCreateContactsRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| createdPeople | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does disclose several traits: HTTP POST, that it 'creates or triggers a change,' that it is refused under --readonly profiles, the sequential-call latency caveat, and that it returns the API's response resource as JSON. It lacks auth/permission requirements or partial-failure semantics, but the mutation and safety behavior are clearly conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the text is a run-on with a garbled truncated sentence ('for the newly Mutate requests') and a long redundant sibling enumeration appended in-line. The useful sequencing caveat is buried rather than clearly separated, hurting scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be re-explained, and params are fully covered by the schema. The description adds the behavioral context a mutation tool needs with no annotations: mutation nature, readonly refusal, and sequential-call guidance. Auth/permission details are the only notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all five params richly. The description adds marginal value by explaining the request body is a JSON BatchCreateContactsRequest accepting contacts, readMask, sources, and how to pass it (via `params` merged or whole via `body_file`). Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a clear verb+resource: 'Create a batch of new contacts and return the PersonResponses.' Combined with the explicit sibling list (batchDeleteContacts, batchUpdateContacts, createContact, etc.), an agent can tell this is the bulk-create variant over the People resource. The sentence is somewhat garbled where it reads 'the newly Mutate requests,' but the core action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It adds operational guidance – 'Mutate requests for the same user should be sent sequentially to avoid increased latency and failures' – and notes it is refused under --readonly safety profiles. However, it does not explicitly contrast when to use this over createContact (single) vs batchUpdateContacts, leaving the batch-vs-single routing implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.batchDeleteContactsA
Delete a batch of contacts. Any non-contact data will not be deleted. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchDeleteContactsRequest object accepting resourceNames; pass it via params or whole via body_file Siblings over the same resource: batchCreateContacts, batchUpdateContacts, createContact, deleteContact, deleteContactPhoto, get, getBatchGet, listDirectoryPeople, searchContacts, searchDirectoryPeople, updateContact, updateContactPhoto.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchDeleteContactsRequest object. | |
| request_body | No | Request body of type BatchDeleteContactsRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it flags the operation as a mutation ([HTTP POST] — creates or triggers a change), notes it is refused under --readonly safety profiles, and states the response is returned as JSON. It omits that batch delete of contacts is permanent/irreversible and what partial-failure behavior looks like, which is the main remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, and each subsequent sentence carries distinct information (data scope, sequencing rule, HTTP/readonly behavior, body passing, siblings). It is dense and slightly run-on, with the sibling enumeration being lengthy, but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter batch mutation with nested request body and an existing output schema, the description supplies the mutation semantics, the readonly safety behavior, the concurrency caveat, and body-passing mechanics. Return values need not be explained since an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all five parameters (query, params, dry_run, body_file, request_body.resourceNames) are already documented in the schema. The description restates that resourceNames goes via `params` or `body_file` but adds no format, limits, or semantics beyond structured data, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete a batch of contacts') immediately, and scopes it with 'Any non-contact data will not be deleted'. The closing sibling list explicitly positions it against deleteContact (single) and batchCreateContacts/batchUpdateContacts, so an agent can distinguish it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete operational guidance absent from other fields: send mutate requests for the same user sequentially to avoid latency/failures, and it names all sibling tools over the same resource. It never states an explicit 'prefer X over Y' rule or the prerequisite that resourceNames must reference existing contacts, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.batchUpdateContactsA
Update a batch of contacts and return a map of resource names to PersonResponses for the updated contacts. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchUpdateContactsRequest object accepting contacts, readMask, sources, updateMask; pass it via params or whole via body_file Siblings over the same resource: batchCreateContacts, batchDeleteContacts, createContact, deleteContact, deleteContactPhoto, get, getBatchGet, listDirectoryPeople, searchContacts, searchDirectoryPeople, updateContact, updateContactPhoto.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdateContactsRequest object. | |
| request_body | No | Request body of type BatchUpdateContactsRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| updateResult | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses that this is an HTTP POST mutation, that it is refused under --readonly safety profiles, and the sequential-execution constraint. It doesn't cover auth scopes or partial-failure semantics for a batch operation, which is the main remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and the sequencing warning is well placed, but the long sibling enumeration and the bracketed '[HTTP POST] — creates or triggers a change' clause pad the definition. The core actionable content is roughly half the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, and the description still summarizes the return value as a map of resource names to PersonResponses, which is useful orientation. Combined with mutation and readonly-profile warnings, an agent has enough to call it correctly; only batch partial-failure behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents query, params, dry_run, body_file and the request_body fields. The description restates the body fields (contacts, readMask, sources, updateMask) and the params-vs-body_file routing, which is helpful repetition but adds no meaning beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource scope ('Update a batch of contacts') plus the return shape (map of resource names to PersonResponses). The sibling list plus the explicit mention of batchCreateContacts/batchDeleteContacts/updateContact makes the batch-update-vs-single-update distinction unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete operational rule: mutate requests for the same user must be sent sequentially to avoid latency and failures. It also enumerates sibling tools over the same resource, giving the agent routing awareness. It stops short of saying explicitly when to prefer this over updateContact or batchCreateContacts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.connections.listB
Provides a list of the authenticated user's contacts. Sync tokens expire 7 days after the full sync. A request with an expired sync token will get an error with an google.rpc.ErrorInfo with reason "EXPIRED_SYNC_TOKEN". In the case of such an error clients should make a full sync request without a sync_token. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the sync_token is specified, resources deleted since the l [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| sources | No | ||
| pageSize | No | [query parameter] Optional. The number of connections to include in the response. Valid values are between 1 and 1000, inclusive. Defaults to 100 if not set or set to 0. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters | |
| sortOrder | No | [query parameter] Optional. The order in which the connections should be sorted. Defaults to `LAST_MODIFIED_ASCENDING`. Values: `LAST_MODIFIED_ASCENDING` = Sort people by when they were changed; older entries first.; `LAST_MODIFIED_DESCENDING` = Sort people by when they were changed; newer entries first.; `FIRST_NAME_ASCENDING` = Sort people by first name.; `LAST_NAME_ASCENDING` = Sort people by last name.. | |
| syncToken | No | [query parameter] Optional. A sync token, received from a previous response `next_sync_token` Provide this to retrieve only the resources changed since the last request. When syn | |
| personFields | No | [query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: | |
| resourceName | Yes | [URL path segment] Required. The resource name to return connections for. Only `people/me` is valid. | |
| requestSyncToken | No | [query parameter] Optional. Whether the response should return `next_sync_token` on the last page of results. It can be used to get incremental changes since the last request by | |
| requestMask.includeField | No | [query parameter] Required. Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.ph |
Output Schema
| Name | Required | Description |
|---|---|---|
| totalItems | No | |
| connections | No | |
| totalPeople | No | |
| nextPageToken | No | |
| nextSyncToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does disclose meaningful behavior: authenticated-user scope, HTTP GET semantics, JSON response, sync-token expiry after 7 days, EXPIRED_SYNC_TOKEN handling, and fixed first-page quota with 429 responses. It stops short of fully covering pagination mechanics or OAuth scope requirements, but it is substantially better than bare purpose text.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a useful purpose sentence, but it becomes a rambling block mixing sync-token details, a truncated sentence, and generic HTTP-wrapper boilerplate about JSON responses and body_file. That boilerplate is not specific to this list operation and reduces clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and parameter schema coverage is high, so the description need not explain return values or most fields. It adequately covers the list purpose and sync-token caveats, but it omits sibling-tool selection guidance and contains truncated/generic wrapper text, leaving it only minimally complete for a 13-parameter list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 92%, so the schema already documents most parameters thoroughly, including sources, pageSize, pageToken, sortOrder, syncToken, and personFields. The description adds some sync-token context but little parameter-level meaning beyond the schema, making 3 the appropriate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource: 'Provides a list of the authenticated user's contacts.' It distinguishes the authenticated user's contacts from broader directory contacts, though it does not explicitly name the nearest siblings such as people.people.searchContacts or people.people.listDirectoryPeople.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for sync-token usage and quota errors, which helps with ongoing-sync scenarios. However, it does not say when to use this tool instead of searchContacts, listDirectoryPeople, otherContacts.list, or getBatchGet, leaving tool selection largely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.createContactA
Create a new contact and return the person resource for that contact. The request returns a 400 error if more than one field is specified on a field that is a singleton for contact sources: * biographies * birthdays * genders * names Mutate requests for the same user should be sent sequentially to avoid increased latency and failures [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Person object accepting addresses, ageRange, ageRanges, biographies, birthdays, braggingRights, calendarUrls, clientData and 30 more fields; pass it via params or whole via body_file Siblings over the same resource: batchCreateContacts, batchDeleteContacts, batchUpdateContacts, deleteContact, deleteContactPhoto, get, getBatchGet, listDirectoryPeople, searchContacts, searchDirectoryPeople, updateContact, updateContactPhoto.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| sources | No | ||
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Person object. | |
| personFields | No | [query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Defaults to all fi | |
| request_body | No | Request body of type Person: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| urls | No | |
| names | No | |
| events | No | |
| photos | No | |
| skills | No | |
| genders | No | |
| locales | No | |
| ageRange | No | |
| fileAses | No | |
| metadata | No | |
| taglines | No | |
| addresses | No | |
| ageRanges | No | |
| birthdays | No | |
| imClients | No | |
| interests | No | |
| locations | No | |
| nicknames | No | |
| relations | No | |
| clientData | No | |
| residences | No | |
| biographies | No | |
| coverPhotos | No | |
| externalIds | No | |
| memberships | No | |
| occupations | No | |
| userDefined | No | |
| calendarUrls | No | |
| miscKeywords | No | |
| phoneNumbers | No | |
| resourceName | No | |
| sipAddresses | No | |
| organizations | No | |
| braggingRights | No | |
| emailAddresses | No | |
| relationshipStatuses | No | |
| relationshipInterests | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so well: it discloses the 400 error condition for multiple singleton fields, the sequential-request requirement, that this is an HTTP POST mutation, that it is refused under --readonly safety profiles, and what the response returns. These details give the agent strong operational context beyond the bare tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, followed by error handling, mutation guidance, request format, and sibling tools. It is dense but largely purposeful, though the long sibling list adds length without explaining how those alternatives differ.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex create operation with a large nested Person body and an output schema, the description covers the essential behavioral context: error conditions, mutation safety, request body format, and response return. It leaves some peripheral details such as auth scopes and field-mask behavior to the schema, but is complete enough for correct invocation in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 86%, so the schema already documents most parameters, including query, params, dry_run, sources, personFields, body_file, and the large Person request body. The description adds some useful routing context by noting the body can be passed via params or whole via body_file, but it does not materially expand parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a new contact and return the person resource for that contact.' It clearly distinguishes this operation from sibling tools such as updateContact, deleteContact, and batchCreateContacts by naming creation of a new contact as the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: creating a new contact, plus the operational guideline that mutate requests for the same user should be sent sequentially. It lists sibling tools over the same resource but does not explicitly explain when to choose batchCreateContacts or updateContact instead, so it stops short of full alternative routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.deleteContactA
Delete a contact person. Any non-contact data will not be deleted. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchCreateContacts, batchDeleteContacts, batchUpdateContacts, createContact, deleteContactPhoto, get, getBatchGet, listDirectoryPeople, searchContacts, searchDirectoryPeople, updateContact, updateContactPhoto.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| resourceName | Yes | [URL path segment] Required. The resource name of the contact to delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses irreversibility, the readonly-profile refusal, the sequential-mutation latency caveat, and the post-delete return state. The irreversibility statement is hedged with template language ("unless the API documents a trash/undo flow"), which softens what should be a firm warning, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The actual purpose is front-loaded, but roughly half the text is generic machine boilerplate — HTTP-method glosses, body_file/params plumbing explanations that are irrelevant to a DELETE with no body, and a 13-item sibling dump. Much of it does not earn its place for this specific operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and all five parameters are documented, so the remaining burden was behavioral: irreversibility, safety profile, sequencing, and scope of deletion are all covered. The only meaningful gap is the missing routing against the batch and photo variants, which is a usage concern rather than a completeness hole.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents resourceName, query, params, dry_run, and body_file — baseline 3. The description only restates the generic request-building mechanics (typed params win over params map, or body_file) and adds no contact-delete-specific meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence pairs a specific verb and resource ("Delete a contact person") and adds scope clarification ("Any non-contact data will not be deleted"). The sibling list at the end names alternatives but never differentiates this tool from deleteContactPhoto or batchDeleteContacts, so an agent must still infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is operational guidance ("Mutate requests for the same user should be sent sequentially") and a safety-profile note ("refused under --readonly"), which help an agent call it correctly. But nothing states when to pick this over batchDeleteContacts or deleteContactPhoto — usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.deleteContactPhotoA
Delete a contact's photo. Mutate requests for the same user should be done sequentially to avoid // lock contention [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchCreateContacts, batchDeleteContacts, batchUpdateContacts, createContact, deleteContact, get, getBatchGet, listDirectoryPeople, searchContacts, searchDirectoryPeople, updateContact, updateContactPhoto.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| sources | No | ||
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| personFields | No | [query parameter] Optional. A field mask to restrict which fields on the person are returned. Multiple fields can be specified by separating them with commas. Defaults to empty i | |
| resourceName | Yes | [URL path segment] Required. The resource name of the contact whose photo will be deleted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| person | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description carries the load well: it states the operation is irreversible unless a trash flow is documented, that it is refused under --readonly profiles, that it returns the post-delete state, and the lock-contention constraint. Minor deduction for the garbled "// lock contention" artifact and the boilerplate about request bodies that is irrelevant to a DELETE.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is properly front-loaded, but the body is a run-on mixing HTTP semantics, safety-profile boilerplate, body-construction rules, and a twelve-item sibling dump. The stray "// lock contention" fragment is a copy-paste defect that distracts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be explained, and the description still notes the post-delete state is returned. Safety, sequencing, and side effects are covered; only the choice among the many sibling mutation tools is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 86%, so the schema already documents resourceName, personFields, sources, params, body_file and dry_run. The description adds only the typed-flags-win-over-params precedence rule and nothing about which of these matters for a photo deletion, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: "Delete a contact's photo." The sibling list explicitly separates it from updateContactPhoto and deleteContact, so an agent can distinguish it without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concurrency rule ("Mutate requests for the same user should be done sequentially to avoid lock contention") and lists siblings, but never states when to prefer updateContactPhoto (replace photo) or deleteContact (remove contact) over this one. Alternatives are named without selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.getA
Provides information about a person by specifying a resource name. Use people/me to indicate the authenticated user. The request returns a 400 error if 'personFields' is not specified [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchCreateContacts, batchDeleteContacts, batchUpdateContacts, createContact, deleteContact, deleteContactPhoto, getBatchGet, listDirectoryPeople, searchContacts, searchDirectoryPeople, updateContact, updateContactPhoto.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| sources | No | ||
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| personFields | No | [query parameter] Required. A field mask to restrict which fields on the person are returned. Multiple fields can be specified by separating them with commas. Valid values are: * | |
| resourceName | Yes | [URL path segment] Required. The resource name of the person to provide information about. - To get information about the authenticated user, specify `people/me`. - To get informa | |
| requestMask.includeField | No | [query parameter] Required. Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.ph |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| urls | No | |
| names | No | |
| events | No | |
| photos | No | |
| skills | No | |
| genders | No | |
| locales | No | |
| ageRange | No | |
| fileAses | No | |
| metadata | No | |
| taglines | No | |
| addresses | No | |
| ageRanges | No | |
| birthdays | No | |
| imClients | No | |
| interests | No | |
| locations | No | |
| nicknames | No | |
| relations | No | |
| clientData | No | |
| residences | No | |
| biographies | No | |
| coverPhotos | No | |
| externalIds | No | |
| memberships | No | |
| occupations | No | |
| userDefined | No | |
| calendarUrls | No | |
| miscKeywords | No | |
| phoneNumbers | No | |
| resourceName | No | |
| sipAddresses | No | |
| organizations | No | |
| braggingRights | No | |
| emailAddresses | No | |
| relationshipStatuses | No | |
| relationshipInterests | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does disclose meaningful traits: it is an HTTP GET (read-only), it fails with a 400 if personFields is omitted, it returns JSON, and it explains how the request is assembled from typed parameters vs. body_file or the params map. It stops short of auth/scope requirements or pagination-like concerns, but the failure-mode disclosure is genuinely useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence and the people/me tip are front-loaded and earn their place, but the boilerplate about request bodies/body_file and the long undifferentiated sibling name dump dilute the message for what is a simple GET.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description still covers the required field mask, the resource-name convention, and the failure condition. Only permission/scope context is missing, which is minor for a read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 88%, so the baseline is 3. The description reinforces the people/me convention for resourceName and the mandatory personFields flag, which compensates slightly for the truncated schema text ('Valid values are: *'), but it adds no field-mask syntax or guidance on which fields to request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb and resource: fetch a person's information given a resource name, and it enumerates the sibling operations on the same resource so the agent can see it is the single-person read among them. It never explains how it relates to getBatchGet or searchContacts beyond listing names, so differentiation is present but shallow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Use `people/me` to indicate the authenticated user' and the warning that a 400 is returned when personFields is absent give operational context, but there is no explicit when-to-use-this-vs-a-sibling guidance (e.g., batching several people with getBatchGet). The trailing sibling list names alternatives without saying when to pick them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.getBatchGetB
Provides information about a list of specific people by specifying a list of requested resource names. Use people/me to indicate the authenticated user. The request returns a 400 error if 'personFields' is not specified [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchCreateContacts, batchDeleteContacts, batchUpdateContacts, createContact, deleteContact, deleteContactPhoto, get, listDirectoryPeople, searchContacts, searchDirectoryPeople, updateContact, updateContactPhoto.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| sources | No | ||
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| personFields | No | [query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: | |
| resourceNames | No | ||
| requestMask.includeField | No | [query parameter] Required. Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.ph |
Output Schema
| Name | Required | Description |
|---|---|---|
| responses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full load. It discloses the 400 error on missing personFields, the HTTP GET verb, and that the response is JSON, but omits auth/scope requirements, any cap on the number of resource names per call, and rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence is well front-loaded, but the middle sentence about request bodies built from typed parameters or `body_file` is generic wrapper boilerplate that is irrelevant/misleading for a GET, and the trailing sibling dump is long with no explanatory value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, and the core contract is present. Still missing for an 8-parameter, annotation-free tool: the resource-name format, any batch size limit, and what happens when some requested names are invalid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% and already marks `personFields` and `resourceNames` as required. The description adds one genuine convention not in the schema — the `people/me` alias — but says nothing about the expected format of a resource name (e.g. `people/{id}`) or how `sources` interacts with the returned data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource (fetch information for a *list* of people by resource name), which distinguishes it from the singular `get` sibling. However, the sibling list at the end is just an enumeration without saying how batchGet differs from `searchContacts` or `get`, so the differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one useful usage rule — use `people/me` for the authenticated user — and a precondition (personFields required or 400). It never says when to choose this over `get` for a single person or `searchContacts`/`listDirectoryPeople` for discovery, so the when-to-use guidance is only partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.listDirectoryPeopleA
Provides a list of domain profiles and domain contacts in the authenticated user's domain directory. When the sync_token is specified, resources deleted since the last sync will be returned as a person with PersonMetadata.deleted set to true. When the page_token or sync_token is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the directory people that have changed](/people/v1/directory#list_the_directo [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchCreateContacts, batchDeleteContacts, batchUpdateContacts, createContact, deleteContact, deleteContactPhoto, get, getBatchGet, searchContacts, searchDirectoryPeople, updateContact, updateContactPhoto.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| sources | No | ||
| pageSize | No | [query parameter] Optional. The number of people to include in the response. Valid values are between 1 and 1000, inclusive. Defaults to 100 if not set or set to 0. | |
| readMask | No | [query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters | |
| syncToken | No | [query parameter] Optional. A sync token, received from a previous response `next_sync_token` Provide this to retrieve only the resources changed since the last request. When syn | |
| mergeSources | No | ||
| requestSyncToken | No | [query parameter] Optional. Whether the response should return `next_sync_token`. It can be used to get incremental changes since the last request by setting it on the request `s |
Output Schema
| Name | Required | Description |
|---|---|---|
| people | No | |
| nextPageToken | No | |
| nextSyncToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses deletion markers via PersonMetadata.deleted, a several-minute write-propagation delay for sync requests, and the read-after-write caveat. It omits auth/scopes and quota behavior, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core is well front-loaded — scope first, then sync semantics. But it is padded with generic harness boilerplate about HTTP GET, body_file and typed-parameter precedence, plus a truncated markdown example link, none of which help an agent decide or call correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter, no-annotation tool the sync/pagination contract is covered well and an output schema exists so return shape needn't be described. Still missing: that sources and readMask are required in practice, and any permission or scope context before an agent invokes it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 82%, so the baseline is 3. The description does add one rule beyond the schema ('all other request parameters must match the first call'), but it references 'sync_token'/'page_token' in snake_case while the schema uses syncToken/pageToken, and it never touches the required sources and readMask parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource: lists 'domain profiles and domain contacts in the authenticated user's domain directory,' which distinguishes it from personal-contact listing. However, the sibling tools are dumped as a flat comma list including searchDirectoryPeople and connections.list with no statement of how this differs from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real conditions for the sync path (sync_token returns deletions, other request parameters must match the first call, not intended for read-after-write), but says nothing about when to pick this tool over searchDirectoryPeople or connections.list, nor who can call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.searchContactsA
Provides a list of contacts in the authenticated user's grouped contacts that matches the search query. The query matches on a contact's names, nickNames, emailAddresses, phoneNumbers, and organizations fields that are from the CONTACT source. IMPORTANT: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/contacts#search_the_users_contacts [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchCreateContacts, batchDeleteContacts, batchUpdateContacts, createContact, deleteContact, deleteContactPhoto, get, getBatchGet, listDirectoryPeople, searchDirectoryPeople, updateContact, updateContactPhoto.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| sources | No | ||
| pageSize | No | [query parameter] Optional. The number of results to return. Defaults to 10 if field is not set, or set to 0. Values greater than 30 will be capped to 30. | |
| readMask | No | [query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does add useful behavioral context: it states the HTTP method, the warmup-cache requirement, and that request bodies are built from typed parameters or body_file. It does not discuss auth, permissions, or rate limits, but it is substantially more transparent than a bare 'search contacts' description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and search-field semantics are front-loaded, and the important warmup caveat is bolded early. The sibling enumeration and generic body_file/params explanation add some boilerplate at the end, but the description remains readable and appropriately sized overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema and 86% schema coverage, the description supplies the missing search semantics and the all-important warmup behavior. It does not cover auth requirements or quota behavior, but it is complete enough for an agent to identify and invoke this search endpoint correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high at 86%, so the schema already documents most parameters and the baseline is 3. The description adds meaning for the search query by naming the fields it matches, but it does not reconcile that search semantics with the schema's generic `query` array description or explain the required-looking `readMask` in prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: it searches contacts in the authenticated user's grouped contacts and states which fields are matched. The scoping to 'grouped contacts' and CONTACT source helps distinguish it from people.searchDirectoryPeople, but it does not explicitly route between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It includes a valuable usage prerequisite: clients should send a warmup request with an empty query before searching. However, it does not clearly say when to use this tool rather than siblings like searchDirectoryPeople or listDirectoryPeople, so the when-vs-alternative guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.searchDirectoryPeopleB
Provides a list of domain profiles and domain contacts in the authenticated user's domain directory that match the search query [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchCreateContacts, batchDeleteContacts, batchUpdateContacts, createContact, deleteContact, deleteContactPhoto, get, getBatchGet, listDirectoryPeople, searchContacts, updateContact, updateContactPhoto.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| sources | No | ||
| pageSize | No | [query parameter] Optional. The number of people to include in the response. Valid values are between 1 and 500, inclusive. Defaults to 100 if not set or set to 0. | |
| readMask | No | [query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters | |
| mergeSources | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| people | No | |
| totalSize | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose that this is a read-only HTTP GET returning JSON, plus the body_file/params-map override behavior. However, it says nothing about the directory-admin authorization this endpoint requires, the fact that sources/readMask are effectively mandatory despite zero top-level required params, or pagination limits beyond what the schema states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and clear, but the second sentence is generic template boilerplate about request bodies/body_file that is not specific to this tool, and the 12-name sibling dump is long for the routing value it delivers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is not needed. For a 9-param search tool with no annotations and inconsistent required-parameter metadata (sources and readMask are marked Required in their descriptions but the top-level required list is empty), the description should clarify the mandatory fields and the admin-scope prerequisite; it does neither.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 78%, so the baseline is 3. The description adds one useful semantic (typed flags win over the params map) but no meaning for the key search parameters, and notably does not compensate for the truncated readMask enum list ('Valid values are: ') in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb (search/list), the resource (domain profiles and domain contacts), and the scope (authenticated user's domain directory), with the qualifier 'that match the search query'. It is distinguishable from listDirectoryPeople and searchContacts only by inference from 'domain directory' and 'search query', not by explicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not guidance; the only routing signal is the trailing 'Siblings over the same resource' enumeration, which names searchContacts and listDirectoryPeople without saying which condition selects which. The agent must infer that this tool covers domain directory search versus personal contacts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.updateContactA
Update contact data for an existing contact person. Any non-contact data will not be modified. Any non-contact data in the person to update will be ignored. All fields specified in the update_mask will be replaced. The server returns a 400 error if person.metadata.sources is not specified for the contact to be updated or if there is no contact source. The server returns a 400 error with reason "failedPrecondition" if person.metadata.sources.etag is different than the contact's etag, which indicates the contact has changed since its data was read. Clients should get the latest person an [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Person object accepting addresses, ageRange, ageRanges, biographies, birthdays, braggingRights, calendarUrls, clientData and 30 more fields; pass it via params or whole via body_file Siblings over the same resource: batchCreateContacts, batchDeleteContacts, batchUpdateContacts, createContact, deleteContact, deleteContactPhoto, get, getBatchGet, listDirectoryPeople, searchContacts, searchDirectoryPeople, updateContactPhoto.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| sources | No | ||
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Person object. | |
| personFields | No | [query parameter] Optional. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Defaults to all fi | |
| request_body | No | Request body of type Person: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| resourceName | Yes | [URL path segment] The resource name for the person, assigned by the server. An ASCII string in the form of `people/{person_id}`. | |
| updatePersonFields | No | [query parameter] Required. A field mask to restrict which fields on the person are updated. Multiple fields can be specified by separating them with commas. All updated fields w |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| urls | No | |
| names | No | |
| events | No | |
| photos | No | |
| skills | No | |
| genders | No | |
| locales | No | |
| ageRange | No | |
| fileAses | No | |
| metadata | No | |
| taglines | No | |
| addresses | No | |
| ageRanges | No | |
| birthdays | No | |
| imClients | No | |
| interests | No | |
| locations | No | |
| nicknames | No | |
| relations | No | |
| clientData | No | |
| residences | No | |
| biographies | No | |
| coverPhotos | No | |
| externalIds | No | |
| memberships | No | |
| occupations | No | |
| userDefined | No | |
| calendarUrls | No | |
| miscKeywords | No | |
| phoneNumbers | No | |
| resourceName | No | |
| sipAddresses | No | |
| organizations | No | |
| braggingRights | No | |
| emailAddresses | No | |
| relationshipStatuses | No | |
| relationshipInterests | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does heavy lifting: it discloses that this is a PATCH-style mutation, the update_mask replacement semantics, the failedPrecondition/etag concurrency guard, the 400 when metadata.sources is missing, and readonly-profile refusal. That is strong behavioral context, though reversibility is unstated and the '[HTTP PATCH]' fragment is truncated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The front of the description is well ordered, but the middle sentence trails off into a broken fragment ('Clients should get the latest person an [HTTP PATCH]') and the 12-sibling enumeration is low-value bulk that crowds out the useful precondition guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutating tool with nested objects, no annotations, and an output schema, the description covers the mutation semantics, error conditions, and body shape an agent needs. It does not explain auth scopes or rollback, but the return-value burden is already handled by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 89%, so the baseline is 3; the description still earns credit by explaining update_mask replacement behavior and the params/body_file routing for the large Person body. Note it says 'update_mask' while the schema names the field 'updatePersonFields', a minor mismatch that could confuse mapping.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Update contact data for an existing contact person') and immediately scopes what changes (fields in update_mask replaced, non-contact data untouched). Combined with the sibling list over the same resource, an agent can identify this as the single update-mutation for a person.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real workflow guidance — fetch the latest person, respect the etag precondition — and notes the tool is refused under --readonly safety profiles. However the 12 siblings are only enumerated, not differentiated, so the agent is left to infer when this tool is preferable to batchUpdateContacts or updateContactPhoto.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
people.people.updateContactPhotoA
Update a contact's photo. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON UpdateContactPhotoRequest object accepting personFields, photoBytes, sources; pass it via params or whole via body_file Siblings over the same resource: batchCreateContacts, batchDeleteContacts, batchUpdateContacts, createContact, deleteContact, deleteContactPhoto, get, getBatchGet, listDirectoryPeople, searchContacts, searchDirectoryPeople, updateContact.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON UpdateContactPhotoRequest object. | |
| request_body | No | Request body of type UpdateContactPhotoRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| resourceName | Yes | [URL path segment] Required. Person resource name |
Output Schema
| Name | Required | Description |
|---|---|---|
| person | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does well: it states this is a mutating PATCH operation, that it is refused under readonly safety profiles, that same-user mutations should be sequential to avoid latency/failures, and that it returns the API response as JSON. Remaining gaps include permission/scoping details and exact photo replacement semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then adds usage and body details. It is somewhat dense and includes a long sibling-tool list that is not strictly necessary, but overall it remains readable and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and the input schema is fully described, the description supplies the important missing context: mutation behavior, readonly refusal, sequential request guidance, and body-passing options. It could be more complete with permission requirements or exact photo replacement semantics, but it is adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds useful routing information about passing UpdateContactPhotoRequest fields via `params` or `body_file`, but it largely restates what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Update a contact's photo.' It names the sibling tools over the same resource, but it does not explain how this operation differs from siblings like updateContact or deleteContactPhoto, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives some usage context: mutation requests for the same user should be sent sequentially, and the operation is refused under --readonly profiles. However, it does not explicitly say when to choose this tool versus similar siblings such as deleteContactPhoto or updateContact.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.processes.listB
List information about processes made by or on behalf of a user, such as process type and current status [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: listScriptProcesses.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of returned processes per page of results. Defaults to 50. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response. | |
| userProcessFilter.types | No | ||
| userProcessFilter.endTime | No | [query parameter] Optional field used to limit returned processes to those that completed on or before the given timestamp. | |
| userProcessFilter.scriptId | No | [query parameter] Optional field used to limit returned processes to those originating from projects with a specific script ID. | |
| userProcessFilter.statuses | No | ||
| userProcessFilter.startTime | No | [query parameter] Optional field used to limit returned processes to those that were started on or after the given timestamp. | |
| userProcessFilter.projectName | No | [query parameter] Optional field used to limit returned processes to those originating from projects with project names containing a specific string. | |
| userProcessFilter.deploymentId | No | [query parameter] Optional field used to limit returned processes to those originating from projects with a specific deployment ID. | |
| userProcessFilter.functionName | No | [query parameter] Optional field used to limit returned processes to those originating from a script function with the given function name. | |
| userProcessFilter.userAccessLevels | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| processes | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden but adds useful operation context: [HTTP GET], the precedence rule (typed flags win over `params`), and `body_file` sourcing. It omits auth requirements, rate limits, and pagination guidance, though those are partly inferable from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but a large share of the text is generic request-plumbing boilerplate ('request bodies are built from the typed parameters...') that repeats schema wording rather than earning space with tool-specific value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be explained, and the list purpose is clear. But for a 15-parameter nested filter tool, the description leaves the sibling distinction and filtering intent implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so the described parameters already carry full documentation. The description restates the typed-vs-`params` precedence and `body_file` behavior that the schema also documents, adding no new per-parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List information about processes made by or on behalf of a user') with concrete fields (process type, status). It names the sibling listScriptProcesses but does not explain how it differs, so differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance. The sibling is named but no condition selecting one over the other is given, leaving the agent to infer routing from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.processes.listScriptProcessesB
List information about a script's executed processes, such as process type and current status [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of returned processes per page of results. Defaults to 50. | |
| scriptId | No | [query parameter] The script ID of the project whose processes are listed. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response. | |
| scriptProcessFilter.types | No | ||
| scriptProcessFilter.endTime | No | [query parameter] Optional field used to limit returned processes to those that completed on or before the given timestamp. | |
| scriptProcessFilter.statuses | No | ||
| scriptProcessFilter.startTime | No | [query parameter] Optional field used to limit returned processes to those that were started on or after the given timestamp. | |
| scriptProcessFilter.deploymentId | No | [query parameter] Optional field used to limit returned processes to those originating from projects with a specific deployment ID. | |
| scriptProcessFilter.functionName | No | [query parameter] Optional field used to limit returned processes to those originating from a script function with the given function name. | |
| scriptProcessFilter.userAccessLevels | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| processes | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does carry some weight: it declares the HTTP GET verb, that the result is JSON, and how the request is assembled (typed flags override the `params` map, or `body_file` supplies the whole body). However, it says nothing about authorization requirements or pagination limits (page size defaults only appear in the schema), and the body-construction boilerplate is odd for a GET, which weakens rather than clarifies the behavioral picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loads the purpose, which is good. But the second half is generic transport boilerplate (body_file, params merging) irrelevant to a GET listing call, and the dangling 'Siblings over the same resource: list.' sentence reads as truncated scaffolding rather than useful text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the filter/pagination parameters are fully specified in the schema. What is missing for a 14-parameter, nested-object tool with no annotations is any mention that `scriptId` is required in practice, plus any note on permissions or expected filtering patterns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (79%) and every one of the 14 parameters, including the filter sub-fields and enums, is documented in the schema, so the baseline applies. The description only restates precedence rules already present in the `params` description and adds no meaning to `scriptProcessFilter.*`, `pageToken`, or the fact that `scriptId` is effectively mandatory despite nothing being marked required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first clause gives a specific verb and resource: 'List information about a script's executed processes, such as process type and current status.' The trailing 'Siblings over the same resource: list.' gestures at script.processes.list but never names it or explains the distinction, so the sibling split is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this over script.processes.list, script.projects.getMetrics, or script.scripts.run. The fragment 'Siblings over the same resource: list.' tells the agent a near-duplicate exists but gives no condition that selects one over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.projects.createA
Creates a new, empty script project with no script files and a base manifest file [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CreateProjectRequest object accepting parentId, title; pass it via params or whole via body_file Siblings over the same resource: get, getContent, getMetrics, updateContent.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CreateProjectRequest object. | |
| request_body | No | Request body of type CreateProjectRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | No | |
| creator | No | |
| parentId | No | |
| scriptId | No | |
| createTime | No | |
| updateTime | No | |
| lastModifyUser | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the load well: it discloses HTTP POST, that it mutates/creates, that it is refused under --readonly safety profiles, and that it returns the API response resource as JSON. It omits auth/scope requirements and failure modes, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the creation semantics and safety note before the parameter and sibling details; every clause is functional. It is dense and slightly crammed (HTTP verb, safety profile, body routing, sibling list all in one block), but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, the description covers what it creates, that it is blocked in readonly profiles, and how to supply the body; return values are covered by the output schema. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents query, params, dry_run, body_file, and the CreateProjectRequest fields. The description restates the parentId/title body and the params-vs-body_file routing but adds no new semantics beyond the schema, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Creates a new, empty script project') with a clarifying scope detail ('no script files and a base manifest file') that distinguishes it from updateContent. It also names the sibling tools over the same resource, so an agent can place it immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists sibling operations over the same resource (get, getContent, getMetrics, updateContent) and the description makes clear this is the creation path. It stops short of an explicit 'use updateContent to modify instead' exclusion, but the contrast is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.projects.deployments.createA
Creates a deployment of an Apps Script project [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON DeploymentConfig object accepting description, manifestFileName, scriptId, versionNumber; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| scriptId | Yes | [URL path segment] The script project's Drive ID. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON DeploymentConfig object. | |
| request_body | No | Request body of type DeploymentConfig: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| updateTime | No | |
| entryPoints | No | |
| deploymentId | No | |
| deploymentConfig | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does so well: it discloses the mutation nature, the --readonly safety refusal, and that the response is the API resource serialized as JSON. It does not mention permission/scope requirements or whether a new deployment is immediately live, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the HTTP verb are front-loaded, and every clause carries information. The sentence is long and compounds purpose, side effects, return type, and body routing into one block, which costs some scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still does the important work for a no-annotation mutation tool: write semantics, safety-profile refusal, body shape, and body-delivery mechanism. Remaining gaps (permissions needed, effect of versionNumber) are modest given the rich schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline would be 3, but the description adds genuine routing value: it spells out the DeploymentConfig fields and explains the two mutually alternative body paths (params merge vs whole body_file). That disambiguation is not obvious from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Creates a deployment of an Apps Script project") and explicitly enumerates the sibling operations over the same resource (delete, get, list, update), so an agent can place it in the CRUD family instantly. No ambiguity about what is produced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the sibling set over the same resource and flags that the call is refused under --readonly profiles, which is a real gating condition. It stops short of an explicit routing rule (e.g. "use update to change an existing deployment's version"), so the agent must infer when create is preferable to update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.projects.deployments.deleteA
Deletes a deployment of an Apps Script project [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| scriptId | Yes | [URL path segment] The script project's Drive ID. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| deploymentId | Yes | [URL path segment] The deployment ID to be undeployed. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden well: it discloses destructive behavior, possible irreversibility, --readonly refusal, and post-delete return state. It does not mention required permissions or scopes, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action is front-loaded in the first clause. The later details about return state, request-body construction, and siblings are relevant, though the single long sentence with em dashes and parentheticals is somewhat dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, the description is substantially complete: it covers destructiveness, safety-profile behavior, return state, and request-body construction. An output schema exists, so return-value detail is not required, and remaining gaps such as auth scopes are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains all six parameters. The description restates that typed parameters win over the params map and that body_file can replace a built request body, but adds little new meaning beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: deletes a deployment of an Apps Script project. It also explicitly distinguishes the tool from sibling operations on the same resource: create, get, list, and update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for a destructive operation, including irreversibility and refusal under --readonly safety profiles. It names sibling operations, though it does not explicitly spell out when to choose delete versus alternatives such as update or get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.projects.deployments.getA
Gets a deployment of an Apps Script project [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| scriptId | Yes | [URL path segment] The script project's Drive ID. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| deploymentId | Yes | [URL path segment] The deployment ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
| updateTime | No | |
| entryPoints | No | |
| deploymentId | No | |
| deploymentConfig | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does disclose that this is an HTTP GET and explains how requests are built (typed flags winning over the params map, body_file for whole bodies). However, it omits read-only guarantees, permission/auth requirements, and any behavioral notes about the deployment resource itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence. The second sentence about request construction is somewhat boilerplate for a GET call and adds length that doesn't earn much, but the whole is still compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is unnecessary, and the required parameters are covered by the schema. For a simple GET of a deployment, the description is nearly complete, missing only usage context and any auth/behavior notes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents scriptId, deploymentId, params, query, dry_run, and body_file. The description's note that typed flags win over the params map duplicates what the params property description already states, adding little new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Gets a deployment of an Apps Script project') and flags the HTTP GET verb. It also names the sibling operations (create, delete, list, update) over the same resource, which helps distinguish it, though it stops short of explaining semantic differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Listing the sibling operations implies that this tool is the 'read a single deployment' option, but it never states when to use get vs list or what conditions favor it. The usage is only implied through the verb name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.projects.deployments.listB
Lists the deployments of an Apps Script project [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, delete, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of deployments on each returned page. Defaults to 50. | |
| scriptId | Yes | [URL path segment] The script project's Drive ID. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deployments | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose that this is an HTTP GET returning JSON, which establishes a read-only profile. However, pagination behavior (pageSize/pageToken round-tripping), required auth scopes, and result ordering are not described, and the boilerplate about building request bodies is irrelevant for a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is well front-loaded, but the remainder is generic boilerplate about typed parameters and `body_file` that has little bearing on a read-only list endpoint, diluting the signal. It is not bloated, but a meaningful share of the text does not earn its place for this specific tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the input schema fully documents all seven parameters, so the definition needn't explain return values or parameter formats. The remaining gap — pagination loop guidance and auth requirements — is modest for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so pageSize, pageToken, scriptId, and body_file are already fully documented; baseline is 3. The description does add one semantic note — typed flags win over the `params` map — which slightly clarifies the merge precedence, but nothing about pagination semantics is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource+scope: 'Lists the deployments of an Apps Script project [HTTP GET]'. It also names the sibling operations on the same resource (create, delete, get, update), though it doesn't say what distinguishes list from them beyond the verb. The core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming the siblings implies this is the enumeration variant versus the CRUD variants, which is helpful implied guidance. But there is no explicit statement of when to use list versus get, no prerequisites, and no mention of pagination-driven repeated calls — usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.projects.deployments.updateA
Updates a deployment of an Apps Script project [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON UpdateDeploymentRequest object accepting deploymentConfig; pass it via params or whole via body_file Siblings over the same resource: create, delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| scriptId | Yes | [URL path segment] The script project's Drive ID. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON UpdateDeploymentRequest object. | |
| deploymentId | Yes | [URL path segment] The deployment ID for this deployment. | |
| request_body | No | Request body of type UpdateDeploymentRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| updateTime | No | |
| entryPoints | No | |
| deploymentId | No | |
| deploymentConfig | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does real work: it declares the mutation, the HTTP PUT, the safety-profile refusal, and that the API's response resource is returned as JSON. It still omits auth/scope requirements and failure behavior for a bad scriptId/deploymentId, so it falls short of fully carrying the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact block with the verb and resource front-loaded, followed by method, safety caveat, body routing, and sibling list. No filler sentences; every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter, nested-body mutation with an output schema, the description covers method, mutation semantics, safety gating, payload routing, and sibling scope. What remains missing — auth requirements, deployment-existence precondition, error modes — is minor relative to the structured data already provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does clarify the routing choice for the update payload ('pass it via `params` or whole via `body_file`') and names UpdateDeploymentRequest/deploymentConfig, but that largely restates what the schema's own body_file and request_body descriptions already say.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (updates) plus the exact resource (a deployment of an Apps Script project) and pins the HTTP method (PUT). It also enumerates the sibling operations on the same resource (create, delete, get, list), though it does not say what distinguishes update from, say, create — that distinction is left to the reader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the write nature and the 'refused under --readonly safety profiles' note tell an agent this is a mutating call, but there is no explicit when-to-use versus the listed siblings, and no prerequisites (e.g. whether the deployment must already exist) are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.projects.getA
Gets a script project's metadata [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, getContent, getMetrics, updateContent.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| scriptId | Yes | [URL path segment] The script project's Drive ID. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | No | |
| creator | No | |
| parentId | No | |
| scriptId | No | |
| createTime | No | |
| updateTime | No | |
| lastModifyUser | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Gets', 'metadata', and '[HTTP GET]' establish that this is a non-mutating read and that the result is JSON, which is useful; however there is nothing about permissions/scopes on the script project, error cases, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loads the purpose well, but the second sentence about request bodies built from typed parameters or read from body_file is template boilerplate that is near-irrelevant for a metadata GET with no request body, costing clarity without earning its words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and all five parameters are fully described in the schema. What is present is enough for an agent to call it correctly; only the missing permission/auth context keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains scriptId, query, params, dry_run, and body_file. The description's note that 'typed flags win over the params map' mostly restates the schema's own wording, adding little new meaning beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets a script project's metadata') and grounds it as an HTTP GET. Crucially it enumerates the sibling operations on the same resource (create, getContent, getMetrics, updateContent), so an agent can place it against them without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming the four siblings over the same resource gives an implied selection map, but the description never states when to prefer this tool over getContent or getMetrics (e.g. metadata vs source vs metrics). Usage is inferable rather than instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.projects.getContentB
Gets the content of the script project, including the code source and metadata for each script file [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, getMetrics, updateContent.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| scriptId | Yes | [URL path segment] The script project's Drive ID. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| versionNumber | No | [query parameter] The version number of the project to retrieve. If not provided, the project's HEAD version is returned. |
Output Schema
| Name | Required | Description |
|---|---|---|
| files | No | |
| scriptId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that this is an HTTP GET returning JSON, which implies a read operation, but says nothing about permissions/scopes, whether content can be large, or rate limits. The body-construction sentence is boilerplate not meaningful for a GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and clear. However, the sentence about request bodies being built from typed parameters or body_file is irrelevant boilerplate for a GET endpoint that sends no body, diluting focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description identifies the content retrieved. Coverage is complete for the core purpose, though it omits permission/scope context that a no-annotation tool could optionally provide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description only restates the precedence rule between typed parameters and the params map, adding nothing beyond what the schema already documents for versionNumber or scriptId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Gets the content') and resource ('script project, including the code source and metadata for each script file'), which is precise. It also names siblings, but doesn't explicitly distinguish this tool's purpose from get vs getContent beyond the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb and the sibling list ('create, get, getMetrics, updateContent'), but there is no explicit when-to-use / when-not guidance. The agent must infer that this is the content-retrieval variant versus the metadata-only 'get'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.projects.getMetricsA
Get metrics data for scripts, such as number of executions and active users [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get, getContent, updateContent.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| scriptId | Yes | [URL path segment] Required field indicating the script to get metrics for. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| metricsGranularity | No | [query parameter] Required field indicating what granularity of metrics are returned. Values: `UNSPECIFIED_GRANULARITY` = Default metric granularity used to query no metrics.; `WEEKLY` = Represents weekly metrics.; `DAILY` = Represents daily metrics over a period of 7 days.. | |
| metricsFilter.deploymentId | No | [query parameter] Optional field indicating a specific deployment to retrieve metrics from. |
Output Schema
| Name | Required | Description |
|---|---|---|
| activeUsers | No | |
| totalExecutions | No | |
| failedExecutions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It usefully discloses HTTP GET and JSON return behavior, plus request-body construction via typed parameters or body_file, but it omits permission requirements, rate limits, and other operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core purpose before adding transport and sibling context. Some generic request-body detail is less relevant for a GET metrics call but does not materially harm readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema, output schema, and absence of annotations, the description provides enough context to identify and call the tool. It could be more complete about auth or access requirements, but the main gap is minor for a read-only metrics operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameter meanings are already fully documented in the input schema. The description does not add parameter-specific semantics beyond noting that typed flags win over the params map, which is also present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get metrics data for scripts, with examples ('number of executions and active users'), which clearly distinguishes it from generic project reads like get/getContent. The sibling list further anchors it among same-resource operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names sibling operations over the same resource, implying this tool is the metrics-specific read. However, it does not explicitly say when to use this instead of get or getContent, nor does it give conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.projects.updateContentA
Updates the content of the specified script project. This content is stored as the HEAD version, and is used when the script is executed as a trigger, in the script editor, in add-on preview mode, or as a web app or Apps Script API in development mode. This clears all the existing files in the project [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Content object accepting files, scriptId; pass it via params or whole via body_file Siblings over the same resource: create, get, getContent, getMetrics.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| scriptId | Yes | [URL path segment] The script project's Drive ID. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Content object. | |
| request_body | No | Request body of type Content: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| files | No | |
| scriptId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does so: it discloses the destructive semantics ('clears all the existing files in the project'), the HTTP PUT verb, that the call is refused under --readonly safety profiles, and that the response is the API resource as JSON. That is precisely the mutation-risk context an agent needs before invoking it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and almost every clause carries new information (destructive effect, readonly refusal, body plumbing). It is a single dense run-on paragraph with bracketed asides like '[HTTP PUT]' and em-dash insertions that make it slightly harder to scan, but there is little actual waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, nested-body, 6-parameter mutation with an output schema present, the definition covers everything an agent needs: what gets destroyed, safety-profile behavior, how to pass the body, and that the return is the API resource. Return-value detail is correctly left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real guidance the schema does not: the body is a JSON Content object accepting files and scriptId, and it can be supplied either via `params` (merged) or wholesale via `body_file`. That clarifies how the multiple body-passing parameters interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates the content of the specified script project') and immediately scopes it to the HEAD version. It also enumerates the sibling operations on the same resource (create, get, getContent, getMetrics), so the agent can tell it apart from getContent without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the contexts in which the HEAD content matters (trigger execution, editor, add-on preview, web app/dev-mode API), which tells the agent when this call has effect. Siblings are listed but no explicit routing rule ('use getContent instead when...') is given, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.projects.versions.createA
Creates a new immutable version using the current code, with a unique version number [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Version object accepting createTime, description, scriptId, versionNumber; pass it via params or whole via body_file Siblings over the same resource: get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| scriptId | Yes | [URL path segment] The script project's Drive ID. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Version object. | |
| request_body | No | Request body of type Version: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| scriptId | No | |
| createTime | No | |
| description | No | |
| versionNumber | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses the HTTP POST verb, that it mutates/triggers a change, that it fails under --readonly profiles, that the resulting version is immutable and uniquely numbered, and that the API response resource is returned. It does not state permission/auth requirements or whether the version is tied to a deployment, which keeps it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and no filler, but the single dense run-on sentence with multiple em-dash clauses is harder to scan than a short structured form would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is optional, yet the description still notes JSON response resource. For a mutation tool with no annotations it covers the mutation semantics and readonly refusal; only auth/permission scope is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters and the Version body fields are already documented in the schema. The description restates the Version field list and the params-vs-body_file routing, adding little beyond the structured fields; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Creates') and resource ('new immutable version using the current code') with scope and uniqueness detail. It also names the sibling operations (get, list) that act on the same resource, so an agent can distinguish this from reads without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the siblings over the same resource (get, list) and adds a concrete usage constraint: refused under --readonly safety profiles. There is no explicit 'use this instead of X when Y' routing, but the operation context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.projects.versions.getA
Gets a version of a script project [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| scriptId | Yes | [URL path segment] The script project's Drive ID. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| versionNumber | Yes | [URL path segment] The version number. |
Output Schema
| Name | Required | Description |
|---|---|---|
| scriptId | No | |
| createTime | No | |
| description | No | |
| versionNumber | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that this is an HTTP GET returning JSON and explains body construction via typed params or body_file, but it does not mention auth requirements, rate limits, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core purpose and return format. The request-body clause is somewhat generic for a GET operation, but the overall structure is efficient and not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET tool with a rich input schema, full schema coverage, and an output schema, the description is largely complete: it identifies the resource, method, return format, and sibling tools. Remaining omissions like auth details are minor given the structured data available.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters. The description adds little beyond the schema: its note that typed flags win over the params map is already present in the schema, and it gives no extra semantics for scriptId or versionNumber.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: 'Gets a version of a script project,' and identifies the HTTP method. It also names the same-resource siblings create and list, which helps distinguish retrieval from mutation/list operations, though it does not explicitly frame the selection conditions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling note 'Siblings over the same resource: create, list' implies that this tool retrieves while siblings create or enumerate, but it never says when to choose this tool versus list/create. The usage guidance is therefore implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.projects.versions.listB
List the versions of a script project [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: create, get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| pageSize | No | [query parameter] The maximum number of versions on each returned page. Defaults to 50. | |
| scriptId | Yes | [URL path segment] The script project's Drive ID. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| versions | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It helpfully discloses that this is an HTTP GET (a read) and describes how request bodies are built (typed flags win over the params map, or body_file). It does not mention auth requirements, rate limits, or pagination behavior, so disclosure is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening purpose clause is front-loaded, but the second sentence is largely generic boilerplate about request-body construction that is irrelevant to a GET list call, diluting focus. It could be trimmed without losing list-specific information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, yet the description still offers only a generic JSON return note. Combined with the absence of usage guidance, it is adequate but leaves gaps for an agent choosing among the version operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description adds the merge-precedence rule (typed params win over `params`) and body_file behavior, but that duplicates what the schema descriptions already state, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("List the versions of a script project") and names the HTTP method, which is more than the name alone conveys. It lists the sibling operations (create, get) over the same resource but does not differentiate what each does, so an agent gets clear purpose but not full sibling disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names the sibling operations (create, get) but does not state when to pick this list operation vs. those alternatives or any preconditions. Usage is only implied by "List the versions of a script project."
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.scripts.runA
Executes a function in an Apps Script project (Apps Script API script.run). The script runs headlessly with the scopes its manifest declares — review them before calling: arbitrary script code executes with your authorization. Returns the script function's response (OPS_ERROR / ops for failures); script-side failures come back as tool errors, not dead servers. Prefer script processes list to observe running executions and script projects get to read a project's source before running it [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ExecutionRequest object accepting devMode, function, parameters, sessionState; pass it via params or whole via body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| scriptId | Yes | [URL path segment] The script ID of the script to be executed. Find the script ID on the **Project settings** page under "IDs." As multiple executable APIs can be deployed in new | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ExecutionRequest object. | |
| request_body | No | Request body of type ExecutionRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| done | No | |
| error | No | |
| response | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does: it discloses that arbitrary script code runs headlessly under the manifest's scopes with the caller's authorization, that this creates or triggers a change, that script-side failures return as tool errors rather than dead servers, and that readonly profiles refuse it. This is materially more than a restatement of the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Content is front-loaded and every clause carries real information, but it is delivered as one dense run-on paragraph with inline bracketed asides ('[HTTP POST]') that interrupt flow. It would read better split into purpose / preconditions / alternatives / request-body sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is not strictly needed, yet the description still states failures surface as tool errors — useful. For a mutation tool that executes arbitrary code, almost everything an agent needs is present; only the per-field meaning of the ExecutionRequest sub-properties is left to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3. The description still adds value by naming the ExecutionRequest fields (devMode, function, parameters, sessionState) and explaining the two delivery paths — merged into the built body via `params` or supplied whole via `body_file`. It stops short of explaining what each field does (e.g., devMode semantics).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Executes a function in an Apps Script project') and pins it to the underlying API call (script.run). It also names the sibling tools it is not (script.processes.list for observing runs, script.projects.get for reading source), so an agent can route without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance: review the manifest scopes before calling, prefer `script processes list` to observe executions and `script projects get` to read source before running. It also flags the condition under which the call is refused (readonly safety profiles), which is a hard precondition an agent must know.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchconsole.searchanalytics.queryA
Query your data with filters and parameters that you define. Returns zero or more rows grouped by the row keys that you define. You must define a date range of one or more days. When date is one of the group by values, any days without data are omitted from the result list. If you need to know which days have data, issue a broad date range query grouped by date for any metric, and see which day rows are returned [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON SearchAnalyticsQueryRequest object accepting aggregationType, dataState, dimensionFilterGroups, dimensions, endDate, rowLimit, searchType, startDate and 2 more fields; pass it via params or whole via body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| siteUrl | Yes | [URL path segment] The site's URL, including protocol. For example: `http://www.example.com/`. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SearchAnalyticsQueryRequest object. | |
| request_body | No | Request body of type SearchAnalyticsQueryRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | No | |
| metadata | No | |
| responseAggregationType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the burden and does disclose two non-obvious behaviors: the call is an HTTP POST despite being a read-style query, and it is 'refused under --readonly safety profiles'. It also explains that the response resource comes back as JSON and how the body may be supplied. Missing are cost/quota, pagination (startRow/rowLimit interaction), and auth/scope requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentences are front-loaded and useful, but the trailing block is boilerplate-heavy and partly redundant ('Returns the API's response resource as JSON' recurs) and mixes upstream API docs with harness-generated text. It is readable but not tight; several clauses could be dropped without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, nested-body query endpoint with an output schema present, the description covers the required date range, the POST/readonly gate, and how to pass the body — enough for an agent to invoke it correctly. It could be more complete about pagination limits (rowLimit/startRow) and the meaning of omitted zero-data days at scale, but nothing critical is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested request body is fully documented with enums, so the schema does the heavy lifting. The description adds only the merge-passing mechanics ('pass it via `params` or whole via `body_file`, typed parameters win' style) and enumerates body fields already present in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete operation and output shape: it queries data with caller-defined filters/parameters and returns rows grouped by caller-defined row keys. Combined with the tool name, an agent knows this is the Search Console search analytics report endpoint. It falls short of 5 because 'your data' is vague in isolation and it never names a sibling it differs from (e.g., searchconsole.urlInspection.index.inspect or analyticsdata.properties.runReport).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a hard prerequisite ('You must define a date range of one or more days') and gives operational guidance for discovering which days have data via a broad date-range query grouped by date. That is real when/how guidance rather than mere restatement. No explicit when-not-use or alternative-tool routing is provided, which keeps it below 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchconsole.sitemaps.deleteA
Deletes a sitemap from the Sitemaps report. Does not stop Google from crawling this sitemap or the URLs that were previously crawled in the deleted sitemap [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get, list, submit.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| siteUrl | Yes | [URL path segment] The site's URL, including protocol. For example: `http://www.example.com/`. | |
| feedpath | Yes | [URL path segment] The URL of the actual sitemap. For example: `http://www.example.com/sitemap.xml`. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses HTTP DELETE semantics, irreversibility, the readonly-profile refusal, and that it returns the post-delete resource state. The 'irreversible unless the API documents a trash/undo flow' phrasing hedges rather than giving concrete auth/permission requirements, keeping it just short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the return-value sentence runs into request-body assembly and the sibling list with no punctuation break ('...body_file Siblings over the same resource...'), producing an awkward run-on that mixes three unrelated topics and dilutes the key 'does not stop crawling' point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations, yet the description covers return value, irreversibility, safety-profile behavior, and sibling relationships – enough for an agent to call a destructive delete correctly. Only concrete permission/auth requirements are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all six parameters are already documented, making 3 the baseline. The description adds precedence semantics (typed params win over the params map, body_file overrides parameter-built bodies) but says nothing about siteUrl or feedpath meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Deletes a sitemap from the Sitemaps report') and immediately clarifies the crucial non-obvious scope: that it does not stop Google from crawling the sitemap or its previously crawled URLs. The closing sibling list (get, list, submit) lets an agent distinguish this from the related operations on the same resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Adds a real usage constraint ('refused under --readonly safety profiles') and a semantic warning about what the deletion does and does not accomplish. It names the sibling set but does not explicitly contrast when to call submit instead of delete, so the routing guidance is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchconsole.sitemaps.getA
Retrieves information about a specific sitemap [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, list, submit.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| siteUrl | Yes | [URL path segment] The site's URL, including protocol. For example: `http://www.example.com/`. | |
| feedpath | Yes | [URL path segment] The URL of the actual sitemap. For example: `http://www.example.com/sitemap.xml`. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| path | No | |
| type | No | |
| errors | No | |
| contents | No | |
| warnings | No | |
| isPending | No | |
| lastSubmitted | No | |
| lastDownloaded | No | |
| isSitemapsIndex | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does disclose that this is an HTTP GET returning JSON, implying a safe read. But it also includes generic request-body construction language that is irrelevant for a GET and does not mention permissions, error behavior, or any other operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the sibling reference is concise. However, the middle clause about building request bodies from typed parameters or body_file is unnecessary noise for an HTTP GET sitemap retrieval.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a full input schema, an output schema, and a description that identifies the exact resource and sibling operations. It is mostly complete, though for a tool with no annotations it could say more about authentication or permission requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter, including siteUrl, feedpath, params, query, dry_run, and body_file. The description merely restates generic behavior about typed parameters winning over the params map, adding little semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: retrieves information about a specific sitemap. It also explicitly names the sibling operations over the same resource (delete, list, submit), making it easy to distinguish retrieval of one sitemap from listing or mutating sitemaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sibling tools are named, which gives useful context that this is the single-sitemap read operation versus delete, list, or submit. However, it does not explicitly state when to choose this tool over searchconsole.sitemaps.list or any prerequisites for using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchconsole.sitemaps.listA
Lists the sitemaps-entries submitted for this site, or included in the sitemap index file (if sitemapIndex is specified in the request) [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, submit.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| siteUrl | Yes | [URL path segment] The site's URL, including protocol. For example: `http://www.example.com/`. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| sitemapIndex | No | [query parameter] A URL of a site's sitemap index. For example: `http://www.example.com/sitemapindex.xml`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sitemap | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description discloses the HTTP method (GET), the response format (JSON), and request construction rules involving typed parameters, `params`, and `body_file`. It does not mention authentication or pagination, but for a read-only list endpoint the core behavior is sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the key operation and remains reasonably compact. The second sentence is somewhat run-on and includes generic body-construction details that are less relevant for a GET list endpoint, but it does not waste many words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the full schema coverage and the presence of an output schema, the description provides enough context for correct invocation: resource scope, conditional `sitemapIndex` behavior, HTTP method, and sibling tool awareness. Additional auth or pagination notes would help, but are not strictly necessary here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds useful behavioral meaning for `sitemapIndex` and explains precedence between typed parameters and the `params` map, plus the role of `body_file`, which goes beyond the schema's field-level documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Lists) and resource (sitemaps-entries submitted for this site), and explicitly distinguishes the tool from its siblings on the same resource: delete, get, and submit. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is appropriate, including the conditional behavior when `sitemapIndex` is specified. It also names sibling tools over the same resource, though it does not spell out explicit when-not conditions or detailed alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchconsole.sitemaps.submitA
Submits a sitemap for a site [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| siteUrl | Yes | [URL path segment] The site's URL, including protocol. For example: `http://www.example.com/`. | |
| feedpath | Yes | [URL path segment] The URL of the actual sitemap. For example: `http://www.example.com/sitemap.xml`. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does well: it discloses HTTP PUT, resource update behavior, refusal under --readonly safety profiles, JSON response format, and how request bodies are built. It does not mention authentication or rate-limit behavior, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and safety behavior, then covers return and body-building semantics. It is dense and mostly efficient, though the sentence combining body_file and sibling tools lacks a clean separator and is slightly run-on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the key missing context: HTTP method, read-only safety refusal, response type, body construction, and sibling alternatives. It leaves out permission requirements and finer update semantics, but is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents each parameter. The description still adds useful semantics by explaining precedence ('typed flags win over the params map') and the body_file alternative for supplying the request body.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Submits a sitemap for a site', and identifies the HTTP method as PUT with an update semantics. It explicitly distinguishes itself from sibling tools over the same resource by naming delete, get, and list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly implies when to use this tool: submitting a sitemap. It also names the alternatives over the same resource (delete, get, list), but does not spell out explicit exclusions beyond the readonly refusal, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchconsole.sites.addA
Adds a site to the set of the user's sites in Search Console [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| siteUrl | Yes | [URL path segment] The URL of the site to add. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and does well: it discloses the HTTP method, the read-only safety refusal, the return shape (API response resource as JSON), and the body-construction precedence between typed parameters, the params map, and body_file. It omits idempotency behavior and permission/ownership requirements, which matter for a write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause and every subsequent fragment carries information (safety refusal, return shape, body handling, siblings). The single long em-dash-chained sentence is dense but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description supplies the safety profile, mutation semantics and return type an agent needs. Remaining gaps are the ownership-verification requirement and idempotency, which are relevant for a Search Console site addition but not fatal to correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents siteUrl, params, query, dry_run and body_file. The description's body-construction sentence mostly restates the schema's own 'typed parameters win' wording, adding little new meaning beyond emphasis on the precedence chain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Adds a site to the set of the user's sites in Search Console') and explicitly enumerates the sibling operations on the same resource (delete, get, list), so an agent can distinguish it without opening other schemas. The HTTP PUT annotation further pins down the operation's semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear when-not ('refused under --readonly safety profiles') and names the alternative siblings over the same resource, which implies the read path for lookup. It stops short of stating prerequisites such as site ownership verification, which would complete the routing picture.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchconsole.sites.deleteA
Removes a site from the set of the user's Search Console sites [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: add, get, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| siteUrl | Yes | [URL path segment] The URI of the property as defined in Search Console. **Examples:** `http://www.example.com/` or `sc-domain:example.com`. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the burden well: it discloses irreversibility ("irreversible unless the API documents a trash/undo flow"), the --readonly safety-profile refusal, and the return shape (post-delete resource state or empty JSON). It omits permission/ownership requirements specific to Search Console property deletion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and its danger are front-loaded, which is good. But the trailing explanation of building request bodies from typed parameters or `body_file` is generic boilerplate that is irrelevant to a bodyless DELETE and dilutes an otherwise tight sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the essential risks (irreversibility, readonly refusal) and the return value. What remains missing is limited to auth/ownership prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so siteUrl, query, params, dry_run and body_file are already documented. The description's remark that typed flags win over the `params` map and that a body can come from `body_file` largely restates the schema's own parameter descriptions, adding no DELETE-specific guidance (e.g. siteUrl format variants).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Removes a site from the set of the user's Search Console sites") and explicitly distinguishes itself from siblings over the same resource (add, get, list). An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the sibling operations over the same resource (add, get, list), which gives clear routing context, and flags that the call is refused under --readonly safety profiles. It stops short of an explicit when/when-not rule (e.g. use add to re-register, use list to verify before deleting).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchconsole.sites.getB
Retrieves information about specific site [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: add, delete, list.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| siteUrl | Yes | [URL path segment] The URI of the property as defined in Search Console. **Examples:** `http://www.example.com/` or `sc-domain:example.com`. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| siteUrl | No | |
| permissionLevel | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that this is an HTTP GET returning JSON, but it does not mention required Search Console permissions, error behavior, or why body-building options apply to a GET; the body/body_file language is generic boilerplate rather than useful behavior for this endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, and the sibling note is useful. The second sentence is long and includes generic request-body mechanics that are not clearly relevant to a GET site lookup, adding clutter without much value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because schema coverage is complete and an output schema exists, the description need not explain parameter details or return shape. It is adequate for identifying the operation, but for a tool with no annotations it omits relevant behavioral context such as permission requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents all five parameters, including siteUrl examples and the roles of params, query, dry_run, and body_file. The description only restates the typed-parameter precedence and body_file behavior, adding little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it retrieves information about a specific Search Console site. It also distinguishes the tool from its same-resource siblings by naming add, delete, and list, though it does not say exactly what site information is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It lists the sibling operations over the same resource, which implies this tool is for retrieving one site rather than adding, deleting, or listing sites. However, it does not explicitly state when to choose get versus list or mention any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchconsole.sites.listA
Lists the user's Search Console sites [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: add, delete, get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| siteEntry | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses that this is an HTTP GET operation and returns JSON, which establishes read-only behavior and response format. It does not mention authentication requirements, rate limits, or pagination behavior, so it carries only part of the behavioral burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and sibling alternatives are front-loaded and useful. The generic explanation of request-body construction is somewhat boilerplate for a list operation, but the description remains relatively efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with full schema coverage and an output schema, the description covers purpose, HTTP method, response format, and sibling alternatives. Authentication details are omitted, but the essential information for selecting and invoking the tool is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds a note about typed parameters winning over the params map, but that is already reflected in schema descriptions and does not add much new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Lists the user's Search Console sites.' It also explicitly distinguishes the tool from sibling operations on the same resource by naming add, delete, and get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names the sibling operations over the same resource, which gives clear context for when this list operation is appropriate versus add/delete/get. It does not state explicit exclusions or conditions, but the usage is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchconsole.urlInspection.index.inspectA
Index inspection [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON InspectUrlIndexRequest object accepting inspectionUrl, languageCode, siteUrl; pass it via params or whole via body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON InspectUrlIndexRequest object. | |
| request_body | No | Request body of type InspectUrlIndexRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| inspectionResult | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and does reasonably well: it discloses the mutation/POST semantics, that it is refused under --readonly safety profiles, and that it returns the API response resource as JSON. Auth/scope requirements and idempotency are not covered, so it is not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded clauses with no filler; the mutation and safety information comes first, then the request body details. It is dense but every clause carries information, though the long middle clause borders on run-on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a POST tool with an output schema (return shape needn't be explained) and a nested request body, the description covers purpose, mutation behavior, safety gating, and how to pass the body. Missing auth/scope context keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description names the InspectUrlIndexRequest fields and the params-vs-body_file routing, but this largely restates what the schema descriptions already state, adding only modest clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (index inspection, HTTP POST) and discloses that it creates or triggers a change, so the operation type is clear. It does not explicitly differentiate itself from siblings like searchconsole.urlTestingTools.mobileFriendlyTest.run or searchanalytics.query, which is why it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the --readonly safety gate but gives no guidance on when to choose this tool versus the other searchconsole tools (search analytics, mobile-friendly test, sitemaps). An agent is left to infer the use case from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchconsole.urlTestingTools.mobileFriendlyTest.runA
Runs Mobile-Friendly Test for a given URL [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON RunMobileFriendlyTestRequest object accepting requestScreenshot, url; pass it via params or whole via body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON RunMobileFriendlyTestRequest object. | |
| request_body | No | Request body of type RunMobileFriendlyTestRequest: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| screenshot | No | |
| testStatus | No | |
| resourceIssues | No | |
| mobileFriendliness | No | |
| mobileFriendlyIssues | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does reasonably well: it discloses that this is an HTTP POST that 'creates or triggers a change', that it is refused under --readonly safety profiles, and that it returns the API's response resource as JSON. It omits quota/rate-limit behavior and whether the test result can be returned in a pending state requiring a follow-up call, which are material for this particular API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause and the sentence is dense but readable. The trailing clause enumerating 'requestScreenshot, url' and the body_file routing repeats what the schema already says, so there is some removable redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and the description still sketches it briefly. The request-construction paths (params merge, body_file) are covered. The main gap is that the asynchronous/quota nature of this API is not mentioned, which could leave an agent unprepared for pending test statuses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all five parameters including the nested request body fields. The description restates the body type and its requestScreenshot/url fields and the params-vs-body_file convention, which is mildly useful but largely duplicates the schema text. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Runs Mobile-Friendly Test for a given URL', which is unambiguous. It does not name the closest sibling, searchconsole.urlInspection.index.inspect, so an agent must infer the distinction between a mobile-friendly test and a URL inspection rather than being told.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no comparison to the sibling urlInspection tool that also operates on a URL. The only conditional statement ('refused under --readonly safety profiles') is about execution permissibility, not about when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.batchUpdateB
Applies one or more updates to the spreadsheet. Each request is validated before being applied. If any request is not valid then the entire request will fail and nothing will be applied. Some requests have replies to give you some information about how they are applied. The replies will mirror the requests. For example, if you applied 4 updates and the 3rd one had a reply, then the response will have 2 empty replies, the actual reply, and another empty reply, in that order. Due to the collaborative nature of spreadsheets, it is not guaranteed that the spreadsheet will reflect exactly your chan [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchUpdateSpreadsheetRequest object accepting commentsViewMode, includeSpreadsheetInResponse, requests, responseIncludeGridData, responseRanges; pass it via params or whole via body_file Siblings over the same resource: create, get, getByDataFilter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdateSpreadsheetRequest object. | |
| request_body | No | Request body of type BatchUpdateSpreadsheetRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| spreadsheetId | Yes | [URL path segment] The spreadsheet to apply the updates to. |
Output Schema
| Name | Required | Description |
|---|---|---|
| replies | No | |
| spreadsheetId | No | |
| commentUpdateState | No | |
| updatedSpreadsheet | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does real work: it discloses atomic all-or-nothing validation, that replies mirror requests positionally (with empty placeholders), that concurrent collaborators may mean the result differs from what you sent, and that the call is a POST refused in readonly profiles. It falls short of 5 because the concurrency sentence is cut off mid-word ("your chan") and no auth/quota constraints are stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The upstream doc paragraph is reasonably front-loaded, but it is truncated mid-sentence, and the appended CLI wrapper block is a dense run-on mixing backticked field names, flags, and a sibling list in one breath. Content mostly earns its place; the packaging and the dangling sentence do not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and schema coverage is full, so return values and parameter shapes need no prose. But this is a very high-complexity tool (dozens of mutually exclusive request types) and the description neglects the finished concurrency caveat, batch-size or quota limits, and the fact that `requests` is an ordered one-of union — the main ways a caller goes wrong here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all six parameters and the ~60 request-union types; baseline 3 applies. The description adds modest value by naming the top-level BatchUpdateSpreadsheetRequest fields and explaining the two delivery paths (`params` vs `body_file`), but says nothing about how to populate the `requests` array or ordering constraints within it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Applies one or more updates to the spreadsheet") and names the same-resource siblings (create, get, getByDataFilter). However, it never distinguishes itself from the far more confusable sibling sheets.spreadsheets.values.batchUpdate, which is what an agent actually needs to disambiguate structural/format edits from cell-value writes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance beyond the incidental note that it is "refused under --readonly safety profiles." The sibling list is dumped without any routing rule, so an agent gets no signal about choosing this over values.batchUpdate or values.update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.createA
Creates a spreadsheet, returning the newly created spreadsheet [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Spreadsheet object accepting comments, commentsViewMode, dataSourceSchedules, dataSources, developerMetadata, namedRanges, properties, sheets and 2 more fields; pass it via params or whole via body_file Siblings over the same resource: batchUpdate, get, getByDataFilter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Spreadsheet object. | |
| request_body | No | Request body of type Spreadsheet: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sheets | No | |
| comments | No | |
| properties | No | |
| dataSources | No | |
| namedRanges | No | |
| spreadsheetId | No | |
| spreadsheetUrl | No | |
| commentsViewMode | No | |
| developerMetadata | No | |
| dataSourceSchedules | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden: it discloses the mutation semantics, the read-only-profile refusal, the HTTP verb, and that the API's response resource is returned as JSON. It does not cover auth scopes, quotas, or whether the new spreadsheet is created in a default drive location.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and effect, then the response shape, then the body contract, then siblings. The mid-sentence list of eight field names is slightly noisy but informative; otherwise tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values need not be described, and the description still notes the response is the API resource. With a deep nested body and zero annotations, it supplies the effect, the safety-profile restriction, and how to pass the body — enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only the routing hint that the body goes via `params` or wholly via `body_file` and enumerates the Spreadsheet fields, both of which are already present in the schema's own parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates a spreadsheet') and immediately names the resource family siblings (batchUpdate, get, getByDataFilter), so an agent can distinguish creation from read/update operations over the same document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly flags that this 'creates or triggers a change' and is 'refused under --readonly safety profiles', which is actionable guidance about when it will fail. It names the sibling alternatives but does not spell out the conditions selecting them (e.g. use batchUpdate to modify an existing spreadsheet).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.developerMetadata.getA
Returns the developer metadata with the specified ID. The caller must specify the spreadsheet ID and the developer metadata's unique metadataId. For more information, see Read, write, and search metadata [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| metadataId | Yes | [URL path segment] The ID of the developer metadata to retrieve. | |
| spreadsheetId | Yes | [URL path segment] The ID of the spreadsheet to retrieve metadata from. |
Output Schema
| Name | Required | Description |
|---|---|---|
| location | No | |
| metadataId | No | |
| visibility | No | |
| metadataKey | No | |
| metadataValue | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It usefully states that this is an HTTP GET and returns the resource as JSON, but it does not cover permissions, error behavior when the metadata ID is missing, or visibility constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the sibling reference is useful, but the generic request-body construction sentence is largely irrelevant for a GET operation and adds noise. The description is not excessively long, but not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and 100% schema description coverage, the description provides enough context to call the tool correctly, including required IDs and return format. The main remaining gap is lack of permission or error-behavior guidance, which is relatively minor for this simple read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter schema already documents spreadsheetId, metadataId, and the request-building fields. The description restates that spreadsheetId and metadataId are required but adds no additional parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns'), resource ('developer metadata with the specified ID'), and names the related sibling operation ('search'). An agent can distinguish this get-by-ID operation from search without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The requirement to supply spreadsheetId and metadataId implies the tool should be used when the metadata ID is already known, and it mentions the sibling 'search'. However, it does not explicitly say when to use search instead or articulate a clear decision rule between the two.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.developerMetadata.searchB
Returns all developer metadata matching the specified DataFilter. For more information, see Read, write, and search metadata. If the provided DataFilter represents a DeveloperMetadataLookup object, this will return all DeveloperMetadata entries selected by it. If the DataFilter represents a location in a spreadsheet, this will return all developer metadata associated with locations intersecting that region [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON SearchDeveloperMetadataRequest object accepting dataFilters; pass it via params or whole via body_file Siblings over the same resource: get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SearchDeveloperMetadataRequest object. | |
| request_body | No | Request body of type SearchDeveloperMetadataRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| spreadsheetId | Yes | [URL path segment] The ID of the spreadsheet to retrieve metadata from. |
Output Schema
| Name | Required | Description |
|---|---|---|
| matchedDeveloperMetadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden, and it does disclose the POST method, the readonly-profile refusal, and the JSON response shape. But the phrase 'creates or triggers a change' mischaracterizes a search operation that mutates nothing, which could cause an agent to avoid a safe read or misjudge side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior is front-loaded in the first two sentences, but the remainder is a pasted mix of API guide prose, an HTTP-method/safety note, and body-routing instructions that reads as assembled rather than edited. Nothing is egregiously wasteful, but the ordering buries the safety constraint mid-sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers both DataFilter interpretation branches, the request body format and two transport options, and the readonly refusal, and an output schema exists so return-value detail is unnecessary. Only the search-vs-get distinction is left for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents spreadsheetId, params, body_file, and the dataFilters body. The description restates that the body is a SearchDeveloperMetadataRequest and can go via `params` or `body_file`, adding confirmation but little new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns all developer metadata matching the specified DataFilter') and explains the two filter modes clearly. It names the sibling 'get' but never says what distinguishes search from get, so full sibling differentiation is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one real usage constraint — it is an HTTP POST that is refused under readonly safety profiles — which tells the agent when the call will fail. However there is no guidance on when to use search versus developerMetadata.get or spreadsheets.getByDataFilter, only a bare 'Siblings over the same resource: get' note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.getA
Returns the spreadsheet at the given ID. The caller must specify the spreadsheet ID. By default, data within grids is not returned. You can include grid data in one of 2 ways: * Specify a field mask listing your desired fields using the fields URL parameter in HTTP * Set the includeGridData URL parameter to true. If a field mask is set, the includeGridData parameter is ignored For large spreadsheets, as a best practice, retrieve only the specific spreadsheet fields that you want. To retrieve only subsets of spreadshee [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchUpdate, create, getByDataFilter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| ranges | No | ||
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| spreadsheetId | Yes | [URL path segment] The spreadsheet to request. | |
| includeGridData | No | [query parameter] True if grid data should be returned. This parameter is ignored if a field mask was set in the request. | |
| commentsViewMode | No | [query parameter] The comments view mode to apply to the spreadsheet. This allows viewing the spreadsheet with comments omitted or included. If one is not specified, COMMENTS_VIE Values: `COMMENTS_VIEW_MODE_UNSPECIFIED` = The CommentsViewMode is unspecified; COMMENTS_VIEW_MODE_OMITTED is applied.; `COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS` = The CommentsViewMode applied to the returned spreadsheet depends on the user's current access level. If the user only has view access, COMMENTS_VIEW_MODE_OMITTED is applied. Otherwise, COMMENTS_VIEW_MODE_INCLUDED is applied.; `COMMENTS_VIEW_MODE_OMITTED` = The returned spreadsheet has comments omitted.; `COMMENTS_VIEW_MODE_INCLUDED` = The returned spreadsheet has comments included. Requests to retrieve a spreadsheet using this mode will return a 403 error if the user does not have permission to view comments.. | |
| excludeTablesInBandedRanges | No | [query parameter] True if tables should be excluded in the banded ranges. False if not set. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sheets | No | |
| comments | No | |
| properties | No | |
| dataSources | No | |
| namedRanges | No | |
| spreadsheetId | No | |
| spreadsheetUrl | No | |
| commentsViewMode | No | |
| developerMetadata | No | |
| dataSourceSchedules | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description carries the full burden with no annotations, and it does disclose the key default (grid data not returned), the override interaction (field mask wins over includeGridData), and a large-spreadsheet best practice. However, it omits permission/auth requirements and the 403 comment-mode behavior is only in the schema, not the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core constraint is front-loaded in the first two sentences, but the text is truncated mid-sentence ("To retrieve only subsets of spreadshee") and ends with generic boilerplate about HTTP GET, request bodies and body_file that isn't specific to this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and for a read-only getter the description covers defaults, grid-data inclusion, and field-mask precedence adequately. Only minor gaps (auth/permissions, comment view behavior) remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 89%, so the baseline is 3; the description adds real value by explaining the interaction between the `fields` mask and includeGridData, which the schema only partially captures. It doesn't clarify ranges or the commentsViewMode enum beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: "Returns the spreadsheet at the given ID." It names siblings (batchUpdate, create, getByDataFilter) but only lists them without explaining how their purposes differ. An agent can tell what the tool does but not clearly why to pick it over getByDataFilter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives implicit guidance for grid data (field mask vs includeGridData) and a best practice for large spreadsheets, but never states when to use this tool instead of getByDataFilter or batchUpdate. No explicit exclusions or alternative-selection conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.getByDataFilterA
Returns the spreadsheet at the given ID. The caller must specify the spreadsheet ID. For more information, see Read, write, and search metadata. This method differs from GetSpreadsheet in that it allows selecting which subsets of spreadsheet data to return by specifying a dataFilters parameter. Multiple DataFilters can be specified. Specifying one or more data filters returns the portions of the spreadsheet that intersect ranges matched by any of the filters. By default, data within grids is not returned. You can include gri [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON GetSpreadsheetByDataFilterRequest object accepting commentsViewMode, dataFilters, excludeTablesInBandedRanges, includeGridData; pass it via params or whole via body_file Siblings over the same resource: batchUpdate, create, get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GetSpreadsheetByDataFilterRequest object. | |
| request_body | No | Request body of type GetSpreadsheetByDataFilterRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| spreadsheetId | Yes | [URL path segment] The spreadsheet to request. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sheets | No | |
| comments | No | |
| properties | No | |
| dataSources | No | |
| namedRanges | No | |
| spreadsheetId | No | |
| spreadsheetUrl | No | |
| commentsViewMode | No | |
| developerMetadata | No | |
| dataSourceSchedules | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose important traits: it is issued as HTTP POST, is refused under --readonly safety profiles, and returns the API response resource as JSON. It omits auth/permission requirements and ends on a truncated clause ('You can include gri'), which weakens the otherwise solid disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and mostly efficient, but the text is a concatenation of API docs, a documentation link, and harness boilerplate, and it contains a visibly truncated sentence ('You can include gri') that wastes space without conveying meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the bidirectional filter semantics plus the POST/readonly caveat cover what an agent needs to invoke it correctly. The truncated default-grid-data sentence leaves a documented behavior incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real semantics beyond the schema: multiple DataFilters are allowed and the result is the union of portions intersecting any matched range, and it clarifies that the request body fields (commentsViewMode, dataFilters, excludeTablesInBandedRanges, includeGridData) can be passed via `params` or `body_file`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the spreadsheet at the given ID') and explicitly contrasts itself with the sibling sheets.spreadsheets.get by naming the dataFilters selection capability as the differentiator. An agent can pick between the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the alternative (GetSpreadsheet) and the condition that selects this one (selecting subsets of data via dataFilters), plus the default that grid data is not returned unless requested. It stops short of explicit when-not-to-use guidance, but the routing signal is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.sheets.copyToA
Copies a single sheet from a spreadsheet to another spreadsheet. Returns the properties of the newly created sheet [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON CopySheetToAnotherSpreadsheetRequest object accepting destinationSpreadsheetId; pass it via params or whole via body_file
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| sheetId | Yes | [URL path segment] The ID of the sheet to copy. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CopySheetToAnotherSpreadsheetRequest object. | |
| request_body | No | Request body of type CopySheetToAnotherSpreadsheetRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| spreadsheetId | Yes | [URL path segment] The ID of the spreadsheet containing the sheet to copy. |
Output Schema
| Name | Required | Description |
|---|---|---|
| index | No | |
| title | No | |
| hidden | No | |
| sheetId | No | |
| tabColor | No | |
| sheetType | No | |
| rightToLeft | No | |
| tabColorStyle | No | |
| gridProperties | No | |
| dataSourceSheetProperties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does well: it discloses HTTP POST, that it creates/triggers a change, and that it is refused under --readonly safety profiles, plus the request body type. It stops short of auth/permission requirements, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and clear, but the return value is explained twice ('returns the properties of the newly created sheet' and 'Returns the API's response resource as JSON') even though an output schema exists, which is wasted phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers behavior, safety profile, and request body plumbing; the output schema handles returns, so the description is essentially complete. Only auth/prerequisite detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and every parameter is already documented, so the baseline is 3. The description's mention of destinationSpreadsheetId and the params/body_file plumbing largely restates what the schema already says, adding little beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Copies) applied to a single resource (one sheet) with explicit scope (from a spreadsheet to another spreadsheet). This clearly distinguishes it from siblings like drive.files.copy or sheet value operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies when it applies (a sheet-level copy across spreadsheets) and notes it is refused under --readonly, but never names an alternative or states exclusions versus other copy paths (e.g., sheets.spreadsheets.batchUpdate CopySheetToAnotherSpreadsheet). Usage is inferable but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.values.appendA
Appends values to a spreadsheet. The input range is used to search for existing data and find a "table" within that range. Values will be appended to the next row of the table, starting with the first column of the table. See the guide and sample code for specific details of how tables are detected and data is appended. The caller must specify the spreadsheet ID, range, and a valueInputOption. The valueInputOption only contro [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ValueRange object accepting majorDimension, range, values; pass it via params or whole via body_file Siblings over the same resource: batchClear, batchClearByDataFilter, batchGet, batchGetByDataFilter, batchUpdate, batchUpdateByDataFilter, clear, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| range | Yes | [URL path segment] The [A1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of a range to search for a logical table of data. Values are appended | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ValueRange object. | |
| request_body | No | Request body of type ValueRange: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| spreadsheetId | Yes | [URL path segment] The ID of the spreadsheet to update. | |
| insertDataOption | No | [query parameter] How the input data should be inserted. Values: `OVERWRITE` = The new data overwrites existing data in the areas it is written. (Note: adding data to the end of the sheet will still insert new rows or columns so the data can be written.); `INSERT_ROWS` = Rows are inserted for the new data.. | |
| valueInputOption | No | [query parameter] How the input data should be interpreted. Values: `INPUT_VALUE_OPTION_UNSPECIFIED` = Default input value. This value must not be used.; `RAW` = The values the user has entered will not be parsed and will be stored as-is.; `USER_ENTERED` = The values will be parsed as if the user typed them into the UI. Numbers will stay as numbers, but strings may be converted to numbers, dates, etc. following the same rules that are applied when entering text into a cell via the Google Sheets UI.. | |
| includeValuesInResponse | No | [query parameter] Determines if the update response should include the values of the cells that were appended. By default, responses do not include the updated values. | |
| responseValueRenderOption | No | [query parameter] Determines how values in the response should be rendered. The default render option is FORMATTED_VALUE. Values: `FORMATTED_VALUE` = Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `"$1.23"`.; `UNFORMATTED_VALUE` = Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.; `FORMULA` = Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `"=A1"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/workspace/sheets/api/guides/formats#about_date_time_values).. | |
| responseDateTimeRenderOption | No | [query parameter] Determines how dates, times, and durations in the response should be rendered. This is ignored if response_value_render_option is FORMATTED_VALUE. The default d Values: `SERIAL_NUMBER` = Instructs date, time, datetime, and duration fields to be output as doubles in "serial number" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.; `FORMATTED_STRING` = Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale).. |
Output Schema
| Name | Required | Description |
|---|---|---|
| updates | No | |
| tableRange | No | |
| spreadsheetId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does useful work: it discloses the HTTP method and that the call mutates state, warns it is refused under --readonly safety profiles, and explains the return shape and how to pass the ValueRange body via `params` or `body_file`. It does not cover permission/auth requirements, rate limits, or what happens when no table is detected in the range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded correctly with the core behavior and table semantics first, but the prose is cut off mid-sentence and padded with injected boilerplate ("[HTTP POST] — creates or triggers a change; refused under --readonly safety profiles") plus a bare sibling name dump. Real content competes with template noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and 12 parameters are fully schema-documented, so the description only needs to carry the append-specific behavior — which it does, including table detection and body passing. It falls short only on routing guidance against the many sibling write methods sharing this resource.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only that valueInputOption is required — and that sentence is truncated mid-word ("The `valueInputOption` only contro"), so the one piece of extra semantic guidance it attempted is lost.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Appends values to a spreadsheet") and explains the non-obvious table-detection semantics of the input range, which is genuinely informative. It enumerates sibling operations over the same resource but never differentiates them functionally, so an agent still can't tell append from update or batchUpdate without opening those schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage through "The caller must specify the spreadsheet ID, range, and a valueInputOption" and the trailing sibling list, but never states when to choose append over update/batchUpdate or when not to use it. The alternative names are given with no selection criteria, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.values.batchClearA
Clears one or more ranges of values from a spreadsheet. The caller must specify the spreadsheet ID and one or more ranges. Only values are cleared -- all other properties of the cell (such as formatting and data validation) are kept [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchClearValuesRequest object accepting ranges; pass it via params or whole via body_file Siblings over the same resource: append, batchClearByDataFilter, batchGet, batchGetByDataFilter, batchUpdate, batchUpdateByDataFilter, clear, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchClearValuesRequest object. | |
| request_body | No | Request body of type BatchClearValuesRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| spreadsheetId | Yes | [URL path segment] The ID of the spreadsheet to update. |
Output Schema
| Name | Required | Description |
|---|---|---|
| clearedRanges | No | |
| spreadsheetId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It does well on the mutation/scope side: values are destroyed but formatting and data validation are preserved, and it flags 'HTTP POST — creates or triggers a change; refused under --readonly safety profiles', which is genuinely useful safety context. It does not discuss irreversibility of the cleared data, permissions needed, or quota/rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key scope and preservation behavior are front-loaded in the first two sentences. The bracketed HTTP-POST/readonly note is useful, but the trailing sibling enumeration is a bare list that adds length without routing value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, this covers what is destroyed, what is preserved, the readonly-profile refusal, and that an output schema exists (so return values need no explanation). Missing permissions/quota context keeps it short of a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description repeats what the schema already documents ('pass it via params or whole via body_file') rather than adding new semantics, and the ranges-batch construction is already spelled out in the request_body schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (clears), a specific scope (one or more ranges of values) and resource (spreadsheet), and adds a precise effect clause: 'Only values are cleared -- all other properties of the cell (such as formatting and data validation) are kept.' That effect clause separates it from destructive siblings like spreadsheets.batchUpdate and clarifies it is not a full range delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives prerequisites ('The caller must specify the spreadsheet ID and one or more ranges') but never states when to prefer this over spreadsheets.values.clear (single range) or batchClearByDataFilter. The sibling list names alternatives but provides no conditions for choosing among them, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.values.batchClearByDataFilterA
Clears one or more ranges of values from a spreadsheet. For more information, see Read, write, and search metadata. The caller must specify the spreadsheet ID and one or more DataFilters. Ranges matching any of the specified data filters will be cleared. Only values are cleared -- all other properties of the cell (such as formatting, data validation, etc.) are kept [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchClearValuesByDataFilterRequest object accepting dataFilters; pass it via params or whole via body_file Siblings over the same resource: append, batchClear, batchGet, batchGetByDataFilter, batchUpdate, batchUpdateByDataFilter, clear, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchClearValuesByDataFilterRequest object. | |
| request_body | No | Request body of type BatchClearValuesByDataFilterRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| spreadsheetId | Yes | [URL path segment] The ID of the spreadsheet to update. |
Output Schema
| Name | Required | Description |
|---|---|---|
| clearedRanges | No | |
| spreadsheetId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it declares the operation is mutating (HTTP POST, 'creates or triggers a change'), is refused under --readonly safety profiles, and preserves non-value cell properties like formatting and data validation. It does not discuss reversibility or partial-failure behavior, but the destructive-scope disclosure is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior is front-loaded in the first three sentences, but the tail mixes meta-information (HTTP verb, safety profile, return format, body plumbing, sibling list) into a dense run of sentences. Every element is useful, but the block is scannable only after a full read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation isn't needed, and parameter coverage is complete. For a mutating batch operation, the description supplies the scope of destruction, safety-profile behavior, and body-supply paths — enough to invoke correctly; only idempotency/error semantics are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description goes slightly beyond by naming the required inputs (spreadsheetId, dataFilters) and explaining how the body is supplied — as a BatchClearValuesByDataFilterRequest via `params` or whole via `body_file`. It doesn't explain the dataFilter variants (a1Range vs gridRange vs developerMetadataLookup), which the schema only structures.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Clears one or more ranges of values from a spreadsheet') and immediately distinguishes the mechanism: clearing is driven by DataFilters rather than literal ranges, which separates it from batchClear. The closing sibling list makes the distinction explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition ('The caller must specify the spreadsheet ID and one or more DataFilters') and the matching rule ('Ranges matching any of the specified data filters will be cleared'). What's missing is explicit routing advice — e.g., use batchClear when you already have A1/GridRanges — even though the siblings are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.values.batchGetB
Returns one or more ranges of values from a spreadsheet. The caller must specify the spreadsheet ID and one or more ranges [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: append, batchClear, batchClearByDataFilter, batchGetByDataFilter, batchUpdate, batchUpdateByDataFilter, clear, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| ranges | No | ||
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| spreadsheetId | Yes | [URL path segment] The ID of the spreadsheet to retrieve data from. | |
| majorDimension | No | [query parameter] The major dimension that results should use. For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting `ranges=["A1:B2"],majorDimension=RO Values: `DIMENSION_UNSPECIFIED` = The default value, do not use.; `ROWS` = Operates on the rows of a sheet.; `COLUMNS` = Operates on the columns of a sheet.. | |
| valueRenderOption | No | [query parameter] How values should be represented in the output. The default render option is ValueRenderOption.FORMATTED_VALUE. Values: `FORMATTED_VALUE` = Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `"$1.23"`.; `UNFORMATTED_VALUE` = Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.; `FORMULA` = Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `"=A1"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/workspace/sheets/api/guides/formats#about_date_time_values).. | |
| dateTimeRenderOption | No | [query parameter] How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render opti Values: `SERIAL_NUMBER` = Instructs date, time, datetime, and duration fields to be output as doubles in "serial number" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.; `FORMATTED_STRING` = Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale).. |
Output Schema
| Name | Required | Description |
|---|---|---|
| valueRanges | No | |
| spreadsheetId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden alone; '[HTTP GET]' does signal read-only semantics, and it usefully explains the request-building precedence (typed flags > `params` map > `body_file`). It says nothing about auth scopes, permission requirements, or what happens on partial/invalid ranges. An output schema exists, so return-shape disclosure is not required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are front-loaded and efficient, but the third is a run-on wrapper-boilerplate sentence, and the trailing sibling enumeration of ten names adds bulk without routing guidance. Some of that text does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read wrapper with a rich schema (89% coverage) and an output schema, the description covers the essentials: what it returns, the required inputs, and the request-construction mechanics of this generic wrapper. Only the missing when-not guidance keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 89%, so the baseline is 3, and the description adds real value by explaining how `params`, typed flags, and `body_file` interact and which wins. It also restates the ranges requirement. The enum parameters (majorDimension, valueRenderOption, dateTimeRenderOption) get no extra narrative, but the schema documents them thoroughly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns one or more ranges of values from a spreadsheet', and the plural 'ranges' distinguishes it from single-range get. It names the sibling family at the end, but leaves the agent to infer which sibling is the real alternative for a single-range read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to use this tool instead of `get` or `batchGetByDataFilter` — it only dumps the sibling names as a list. The only usage constraint given is the requirement to specify a spreadsheet ID and at least one range, which is already a schema fact.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.values.batchGetByDataFilterC
Returns one or more ranges of values that match the specified data filters. For more information, see Read, write, and search metadata. The caller must specify the spreadsheet ID and one or more DataFilters. Ranges that match any of the data filters in the request will be returned [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchGetValuesByDataFilterRequest object accepting dataFilters, dateTimeRenderOption, majorDimension, valueRenderOption; pass it via params or whole via body_file Siblings over the same resource: append, batchClear, batchClearByDataFilter, batchGet, batchUpdate, batchUpdateByDataFilter, clear, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchGetValuesByDataFilterRequest object. | |
| request_body | No | Request body of type BatchGetValuesByDataFilterRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| spreadsheetId | Yes | [URL path segment] The ID of the spreadsheet to retrieve data from. |
Output Schema
| Name | Required | Description |
|---|---|---|
| valueRanges | No | |
| spreadsheetId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It usefully discloses the JSON response and request-body format, but its claim that '[HTTP POST] — creates or triggers a change' mischaracterizes a values read operation as a mutation, which could lead an agent to avoid or misuse the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads the core purpose and requirements, but it includes a long sibling list without distinctions and a misleading HTTP POST note. Some content earns its place, but the listing and mischaracterization reduce efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex nested-body read tool, the description covers the required spreadsheet ID, data filters, request body shape, and response format. However, it lacks clear alternative-selection guidance and contains a significant behavioral misstatement about the operation creating or triggering changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds only marginal value by naming body fields and explaining `params`/`body_file` usage, which is close to the baseline for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns ranges of values matching data filters. However, it does not clearly differentiate this tool from batchGet or getByDataFilter beyond listing sibling names without selection criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says the caller must provide a spreadsheet ID and one or more DataFilters, which is a requirement rather than usage guidance. It names sibling tools such as batchGet and get but gives no explicit when-to-use-this-vs-alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.values.batchUpdateA
Sets values in one or more ranges of a spreadsheet. The caller must specify the spreadsheet ID, a valueInputOption, and one or more ValueRanges [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchUpdateValuesRequest object accepting data, includeValuesInResponse, responseDateTimeRenderOption, responseValueRenderOption, valueInputOption; pass it via params or whole via body_file Siblings over the same resource: append, batchClear, batchClearByDataFilter, batchGet, batchGetByDataFilter, batchUpdateByDataFilter, clear, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdateValuesRequest object. | |
| request_body | No | Request body of type BatchUpdateValuesRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| spreadsheetId | Yes | [URL path segment] The ID of the spreadsheet to update. |
Output Schema
| Name | Required | Description |
|---|---|---|
| responses | No | |
| spreadsheetId | No | |
| totalUpdatedRows | No | |
| totalUpdatedCells | No | |
| totalUpdatedSheets | No | |
| totalUpdatedColumns | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it declares the HTTP method (POST), that the call creates or triggers a change, and that it is refused under --readonly safety profiles, which is a meaningful precondition most definitions omit. It also names the response shape ('the API's response resource as JSON'), though it omits required OAuth scopes and any batch-size limits or note that empty values clear cells.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and then the constraints and mutation semantics, so the agent's critical decisions are answered first. The middle sentence is a dense run-on packing body fields and transport options, and the trailing sibling enumeration adds length without guidance, but neither is severely wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter nested-body write tool with an output schema (so return values need no explanation) and no annotations, the description covers mutation semantics, safety-profile refusal, body type, and the two delivery routes. It stops short of auth/scope requirements and any note about limits on number of ranges or cells, which are the residual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline would be 3, but the description adds genuine meaning beyond the schema: it states valueInputOption is mandatory, whereas the schema's required list contains only spreadsheetId, and it clarifies the relationship between the ValueRanges concept and the body's `data` field plus the `params` vs `body_file` routing. The remaining field list (includeValuesInResponse, render options) merely restates schema properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource with scope ('Sets values in one or more ranges of a spreadsheet'), which is precise and clearly a bulk write, distinct from the singular `update` sibling by name alone. However, the sibling list at the end is a bare enumeration that doesn't explain what distinguishes this tool from `append` or `update`, so the differentiation is present but not earned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through prerequisites ('caller must specify the spreadsheet ID, a valueInputOption, and one or more ValueRanges') and tells the agent the tool is refused under --readonly profiles, which is a useful gate. But it never states when to choose this over `values.update` (single range) or `values.append` (append rows), leaving the agent to infer that the batch variant is for multiple disjoint ranges.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.values.batchUpdateByDataFilterA
Sets values in one or more ranges of a spreadsheet. For more information, see Read, write, and search metadata. The caller must specify the spreadsheet ID, a valueInputOption, and one or more DataFilterValueRanges [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchUpdateValuesByDataFilterRequest object accepting data, includeValuesInResponse, responseDateTimeRenderOption, responseValueRenderOption, valueInputOption; pass it via params or whole via body_file Siblings over the same resource: append, batchClear, batchClearByDataFilter, batchGet, batchGetByDataFilter, batchUpdate, clear, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdateValuesByDataFilterRequest object. | |
| request_body | No | Request body of type BatchUpdateValuesByDataFilterRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| spreadsheetId | Yes | [URL path segment] The ID of the spreadsheet to update. |
Output Schema
| Name | Required | Description |
|---|---|---|
| responses | No | |
| spreadsheetId | No | |
| totalUpdatedRows | No | |
| totalUpdatedCells | No | |
| totalUpdatedSheets | No | |
| totalUpdatedColumns | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it declares the tool mutates ('creates or triggers a change'), is refused under --readonly safety profiles, and returns the API response resource as JSON. It does not state whether values overwrite existing cells at matched ranges or how conflicts across overlapping filters behave, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the core action and requirement, but mid-sentence insertions ('[HTTP POST] — creates or triggers a change') and the trailing sibling list make it a dense run-on. The sibling list is informative but not differentiated, so it costs tokens without aiding selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-body mutation tool, the description covers the calling contract (required inputs, body routing via params or body_file, readonly refusal) and an output schema exists so return details need not be spelled out. Overwrite semantics for matched ranges remain unspecified, but nothing blocking is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description enumerates the body fields (data, includeValuesInResponse, responseDateTimeRenderOption, responseValueRenderOption, valueInputOption) and the params/body_file routing, but that mostly repeats what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Sets values in one or more ranges of a spreadsheet,' and names the required inputs (spreadsheet ID, valueInputOption, DataFilterValueRanges). It lists sibling tools but does not explain how this differs from batchUpdate or update, so the ByDataFilter distinction is left to be inferred from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives prerequisites (spreadsheet ID, valueInputOption, one or more DataFilterValueRanges) and mentions the --readonly profile refusal, which is real usage guidance. However, listing the siblings 'append, batchClear, ... update' without saying when to pick this one over batchUpdate is a name dump, not selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.values.clearA
Clears values from a spreadsheet. The caller must specify the spreadsheet ID and range. Only values are cleared -- all other properties of the cell (such as formatting, data validation, etc..) are kept [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ClearValuesRequest object; pass it via params or whole via body_file Siblings over the same resource: append, batchClear, batchClearByDataFilter, batchGet, batchGetByDataFilter, batchUpdate, batchUpdateByDataFilter, get, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| range | Yes | [URL path segment] The [A1 notation or R1C1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the values to clear. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ClearValuesRequest object. | |
| request_body | No | Request body of type ClearValuesRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| spreadsheetId | Yes | [URL path segment] The ID of the spreadsheet to update. |
Output Schema
| Name | Required | Description |
|---|---|---|
| clearedRange | No | |
| spreadsheetId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that this is an HTTP POST that mutates state, that it is refused under --readonly profiles, that only cell values are affected while other properties are retained, and how the ClearValuesRequest body is supplied. It stops short of stating permission requirements or whether the clear is recoverable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and its key semantic guarantee (formatting preserved), then the operational notes, then sibling context. Every sentence carries information; nothing padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return-value detail is not required, and all seven parameters are schema-documented. The only meaningful gap for an agent is the lack of an explicit rule for choosing this over batchClear or batchClearByDataFilter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents spreadsheetId, range, params, body_file and dry_run. The description only restates the two required inputs and how to route the request body, adding no notation/format detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Clears values from a spreadsheet') and immediately disambiguates scope: only values are removed while formatting and data validation are preserved. It also enumerates the sibling tools over the same resource, though it does not say how this one differs from batchClear/batchClearByDataFilter beyond naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied rather than stated: the sibling list containing batchClear and batchClearByDataFilter hints that this is the single-range variant, but no explicit 'use this when / use X instead when' rule is given. The note that it is refused under --readonly safety profiles is useful context but is a constraint, not a selection guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.values.getB
Returns a range of values from a spreadsheet. The caller must specify the spreadsheet ID and a range [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: append, batchClear, batchClearByDataFilter, batchGet, batchGetByDataFilter, batchUpdate, batchUpdateByDataFilter, clear, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| range | Yes | [URL path segment] The [A1 notation or R1C1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the range to retrieve values from. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| spreadsheetId | Yes | [URL path segment] The ID of the spreadsheet to retrieve data from. | |
| majorDimension | No | [query parameter] The major dimension that results should use. For example, if the spreadsheet data in Sheet1 is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=Sheet1!A1:B2?major Values: `DIMENSION_UNSPECIFIED` = The default value, do not use.; `ROWS` = Operates on the rows of a sheet.; `COLUMNS` = Operates on the columns of a sheet.. | |
| valueRenderOption | No | [query parameter] How values should be represented in the output. The default render option is FORMATTED_VALUE. Values: `FORMATTED_VALUE` = Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `"$1.23"`.; `UNFORMATTED_VALUE` = Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.; `FORMULA` = Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `"=A1"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/workspace/sheets/api/guides/formats#about_date_time_values).. | |
| dateTimeRenderOption | No | [query parameter] How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render opti Values: `SERIAL_NUMBER` = Instructs date, time, datetime, and duration fields to be output as doubles in "serial number" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.; `FORMATTED_STRING` = Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale).. |
Output Schema
| Name | Required | Description |
|---|---|---|
| range | No | |
| values | No | |
| majorDimension | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the safety burden: '[HTTP GET]' signals a non-mutating read, and it notes the response is JSON. However the middle sentence about request bodies/body_file is boilerplate for a GET and it omits any auth or rendering-behavior context beyond what the schema's enum docs already give.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and required params are front-loaded, but the request-body/body_file sentence is largely irrelevant for a GET call and the trailing sibling enumeration is verbose. Structure is acceptable but contains filler that does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and the required inputs are covered. Still, for a 9-parameter read with no annotations, the description does little beyond naming the method and required fields, leaving selection guidance thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents range, majorDimension, valueRenderOption, etc., with rich enum explanations. The description only restates the two required params and adds no syntax or semantics beyond the schema — baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns') and resource ('a range of values from a spreadsheet'), so the operation is unambiguous. It lists the sibling values.* tools by name, which helps distinguish this retrieve-one-range operation from append/clear/update, though the list is enumeration rather than a stated distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The prerequisite (spreadsheet ID and range) is stated, and the sibling list implies this is the single-range read versus batchGet or update. But it never says when to choose get over batchGet, append, or clear, leaving the agent to infer selection from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sheets.spreadsheets.values.updateB
Sets values in a range of a spreadsheet. The caller must specify the spreadsheet ID, range, and a valueInputOption [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON ValueRange object accepting majorDimension, range, values; pass it via params or whole via body_file Siblings over the same resource: append, batchClear, batchClearByDataFilter, batchGet, batchGetByDataFilter, batchUpdate, batchUpdateByDataFilter, clear, get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| range | Yes | [URL path segment] The [A1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the values to update. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ValueRange object. | |
| request_body | No | Request body of type ValueRange: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| spreadsheetId | Yes | [URL path segment] The ID of the spreadsheet to update. | |
| valueInputOption | No | [query parameter] How the input data should be interpreted. Values: `INPUT_VALUE_OPTION_UNSPECIFIED` = Default input value. This value must not be used.; `RAW` = The values the user has entered will not be parsed and will be stored as-is.; `USER_ENTERED` = The values will be parsed as if the user typed them into the UI. Numbers will stay as numbers, but strings may be converted to numbers, dates, etc. following the same rules that are applied when entering text into a cell via the Google Sheets UI.. | |
| includeValuesInResponse | No | [query parameter] Determines if the update response should include the values of the cells that were updated. By default, responses do not include the updated values. If the rang | |
| responseValueRenderOption | No | [query parameter] Determines how values in the response should be rendered. The default render option is FORMATTED_VALUE. Values: `FORMATTED_VALUE` = Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `"$1.23"`.; `UNFORMATTED_VALUE` = Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.; `FORMULA` = Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `"=A1"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/workspace/sheets/api/guides/formats#about_date_time_values).. | |
| responseDateTimeRenderOption | No | [query parameter] Determines how dates, times, and durations in the response should be rendered. This is ignored if response_value_render_option is FORMATTED_VALUE. The default d Values: `SERIAL_NUMBER` = Instructs date, time, datetime, and duration fields to be output as doubles in "serial number" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.; `FORMATTED_STRING` = Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale).. |
Output Schema
| Name | Required | Description |
|---|---|---|
| updatedData | No | |
| updatedRows | No | |
| updatedCells | No | |
| updatedRange | No | |
| spreadsheetId | No | |
| updatedColumns | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add real context: HTTP PUT semantics and the fact that it is refused under --readonly safety profiles, which is meaningful safety disclosure for a write tool. However, it never warns that existing cell values across the target range are replaced/cleared, nor mentions quota or scopes, so the destructive characteristic is understated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence and the body/safety notes follow in a logical order. The nine-item sibling list is a dense, low-value tail that consumes attention without adding routing information, but the rest is compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter mutation tool with a rich schema and an output schema, the description covers what the operation is, how the body is supplied, and the read-only refusal. The query parameters are left to the schema and return values are covered by the output schema, so the remaining gap is mainly the missing overwrite warning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 11 parameters including the ValueRange body and valueInputOption. The description restates the required trio (spreadsheetId, range, valueInputOption) and the body shortcut (params vs body_file) but adds no semantics the schema does not already contain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Sets values in a range of a spreadsheet.' The tool's function is unmistakable. It names sibling tools over the same resource, but only as a bare list, so it doesn't actually differentiate what each one does relative to this one, which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Beyond listing sibling names (append, batchUpdate, clear, get, etc.), there is no guidance on when to reach for update versus append or batchUpdate, and no prerequisites beyond the required parameters. The sibling enumeration raises the possibility of alternatives but gives no condition for choosing among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slides.presentations.batchUpdateA
Applies one or more updates to the presentation. Each request is validated before being applied. If any request is not valid, then the entire request will fail and nothing will be applied. Some requests have replies to give you some information about how they are applied. Other requests do not need to return information; these each return an empty reply. The order of replies matches that of the requests. For example, suppose you call batchUpdate with four updates, and only the third one returns information. The response would have two empty replies: the reply to the third request, and another [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON BatchUpdatePresentationRequest object accepting requests, writeControl; pass it via params or whole via body_file Siblings over the same resource: create, get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdatePresentationRequest object. | |
| request_body | No | Request body of type BatchUpdatePresentationRequest: pass it via `params` (merged into the built body) or whole via `body_file`. | |
| presentationId | Yes | [URL path segment] The presentation to apply the updates to. |
Output Schema
| Name | Required | Description |
|---|---|---|
| replies | No | |
| writeControl | No | |
| presentationId | No | |
| commentUpdateState | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations, the description carries the full burden and delivers the key traits: validation happens before application, a single invalid request fails the whole call with nothing applied, the reply array is positional and may contain empty replies, and the tool is a POST that is blocked in read-only profiles. It does not mention auth scopes or per-request size limits, and the reply example is truncated mid-sentence ('and another').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core atomicity statement is front-loaded, but the block ends with a broken example that cuts off at 'and another', and the injected tooling notes (HTTP POST, readonly profiles, siblings list) are jammed together without structure. The 'Siblings over the same resource: create, get' line names tools without saying anything useful about them.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not needed, and the description still explains the positional reply array. Atomicity and request-body routing are covered. What's missing for a complex mutation tool is permission/auth expectations and any guidance on request ordering or limits, but the definition is largely sufficient to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents presentationId, params, body_file and dry_run. The description's only added note — that the body is a BatchUpdatePresentationRequest accepting requests and writeControl, passable via `params` or `body_file` — largely duplicates the request_body property description verbatim. Baseline 3 for a fully documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Applies one or more updates to the presentation') and is immediately distinguishable from slides.presentations.get and .create, which only touch the same resource without batching edits. The atomic all-or-nothing semantics are stated up front.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the [HTTP POST] note signals a mutating call and says it is refused under --readonly safety profiles, which hints at when it can run. But there is no explicit guidance on when to use batchUpdate versus get/create, nor on prerequisites such as needing an existing presentationId or read-modify dependencies between batched requests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slides.presentations.createA
Creates a blank presentation using the title given in the request. If a presentationId is provided, it is used as the ID of the new presentation. Otherwise, a new ID is generated. Other fields in the request, including any provided content, are ignored. Returns the created presentation [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Presentation object accepting comments, commentsViewMode, layouts, locale, masters, notesMaster, pageSize, presentationId and 3 more fields; pass it via params or whole via body_file Siblings over the same resource: batchUpdate, get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Presentation object. | |
| request_body | No | Request body of type Presentation: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | No | |
| locale | No | |
| slides | No | |
| layouts | No | |
| masters | No | |
| comments | No | |
| pageSize | No | |
| revisionId | No | |
| notesMaster | No | |
| presentationId | No | |
| commentsViewMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the burden and does well: it discloses HTTP POST, that it creates/mutates, is refused under --readonly profiles, and that other request fields (including content) are ignored. It omits auth requirements and behavior when presentationId already exists, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, but the block is a dense run-on mixing HTTP verb, readonly note, body field enumeration, and sibling listing, and it repeats the return concept twice ('Returns the created presentation' and 'Returns the API's response resource as JSON').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return explanation is optional; the description still covers the key behaviors (ID semantics, content ignored, readonly refusal) an agent needs. Auth prerequisites are the main missing piece for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3), and the description adds genuine semantics: title is used for the presentation name, presentationId overrides generation, and all other fields/content are ignored. That 'content ignored' detail is critical and not obvious from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Creates') and resource ('blank presentation') and explicitly names the sibling downloads (batchUpdate, get), so an agent can distinguish create from modify/read without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context: it creates a new blank presentation and notes that provided content is ignored, which steers the agent away from trying to seed slides here. It names siblings but doesn't explicitly say 'use get to read / batchUpdate to edit', so alternatives are implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slides.presentations.getB
Gets the latest version of the specified presentation [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: batchUpdate, create.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| presentationId | Yes | [URL path segment] The ID of the presentation to retrieve. | |
| commentsViewMode | No | [query parameter] The comments view mode to apply to the presentation. This allows viewing the presentation with comments omitted or included. If one is not specified, COMMENTS_V Values: `COMMENTS_VIEW_MODE_UNSPECIFIED` = The CommentsViewMode is unspecified; COMMENTS_VIEW_MODE_OMITTED is applied.; `COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS` = The CommentsViewMode applied to the returned presentation depends on the user's current access level. If the user only has view access, COMMENTS_VIEW_MODE_OMITTED is applied. Otherwise, COMMENTS_VIEW_MODE_INCLUDED is applied.; `COMMENTS_VIEW_MODE_OMITTED` = The returned presentation has comments omitted.; `COMMENTS_VIEW_MODE_INCLUDED` = The returned presentation has comments included. Requests to retrieve a presentation using this mode will return a 403 error if the user does not have permission to view comments.. |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | No | |
| locale | No | |
| slides | No | |
| layouts | No | |
| masters | No | |
| comments | No | |
| pageSize | No | |
| revisionId | No | |
| notesMaster | No | |
| presentationId | No | |
| commentsViewMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. The '[HTTP GET]' tag signals a read-only operation and it notes the latest version is returned, but the bulk of the text describes generic request-body construction (params/body_file) that is irrelevant for a retrieval and adds no real behavioral depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose in one sentence, but the second sentence is transport boilerplate about request bodies that does not belong on a get operation and confuses rather than clarifies. It could be trimmed to the purpose and the actual read parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and full schema coverage, the description needn't explain returns or parameters. However, it spends its budget on irrelevant body-building mechanics instead of useful context like the effect of commentsViewMode or that only the latest revision is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents presentationId and commentsViewMode (with a rich enum). The description adds only the params-vs-typed-flag precedence rule and body_file sourcing, which are marginal and mostly irrelevant to a GET.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets the latest version of the specified presentation') and explicitly names the sibling operations over the same resource. It distinguishes itself from batchUpdate and create, though the trailing transport boilerplate dilutes the clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists siblings (batchUpdate, create) but never states the condition for choosing this read operation over them; usage is only implied by the verb. No 'when-not-to-use' or prerequisite guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slides.presentations.pages.getB
Gets the latest version of the specified page in the presentation [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: getThumbnail.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageObjectId | Yes | [URL path segment] The object ID of the page to retrieve. | |
| presentationId | Yes | [URL path segment] The ID of the presentation to retrieve. | |
| commentsViewMode | No | [query parameter] The comments view mode to apply to the page. This allows viewing the page with comments omitted or included. If one is not specified, COMMENTS_VIEW_MODE_OMITTED Values: `COMMENTS_VIEW_MODE_UNSPECIFIED` = The CommentsViewMode is unspecified; COMMENTS_VIEW_MODE_OMITTED is applied.; `COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS` = The CommentsViewMode applied to the returned presentation depends on the user's current access level. If the user only has view access, COMMENTS_VIEW_MODE_OMITTED is applied. Otherwise, COMMENTS_VIEW_MODE_INCLUDED is applied.; `COMMENTS_VIEW_MODE_OMITTED` = The returned presentation has comments omitted.; `COMMENTS_VIEW_MODE_INCLUDED` = The returned presentation has comments included. Requests to retrieve a presentation using this mode will return a 403 error if the user does not have permission to view comments.. |
Output Schema
| Name | Required | Description |
|---|---|---|
| comments | No | |
| objectId | No | |
| pageType | No | |
| revisionId | No | |
| pageElements | No | |
| commentAnchors | No | |
| pageProperties | No | |
| notesProperties | No | |
| slideProperties | No | |
| commentsViewMode | No | |
| layoutProperties | No | |
| masterProperties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does state '[HTTP GET]' and 'Returns the requested resource as JSON', which establishes read-only semantics. However, the permissions angle goes unmentioned (the schema notes a 403 for comments-included requests), and the second half is generic wrapper boilerplate about body building rather than behavior specific to this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is correctly front-loaded, but the clause about request bodies being built from typed parameters or read from `body_file` is wrapper boilerplate that cannot apply to a GET endpoint and consumes roughly half the text without earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and all 7 parameters are fully documented in the schema. Purpose, transport, and the nearest sibling are covered; only the comments/permissions interaction and the choice between this and getThumbnail are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds nothing about presentationId, pageObjectId, or the commentsViewMode enum beyond generic mechanics ('typed flags win over the `params` map'), leaving the schema to do all the parameter work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource — 'Gets the latest version of the specified page in the presentation' — so the agent knows exactly what is retrieved. It also names the sibling getThumbnail, though without distinguishing which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance. The sibling note 'Siblings over the same resource: getThumbnail' lists an alternative but gives no condition that would route the agent to either tool, so the choice is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slides.presentations.pages.getThumbnailA
Generates a thumbnail of the latest version of the specified page in the presentation and returns a URL to the thumbnail image. This request counts as an expensive read request for quota purposes [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageObjectId | Yes | [URL path segment] The object ID of the page whose thumbnail to retrieve. | |
| presentationId | Yes | [URL path segment] The ID of the presentation to retrieve. | |
| thumbnailProperties.mimeType | No | [query parameter] The optional mime type of the thumbnail image. If you don't specify the mime type, the mime type defaults to PNG. Values: `PNG` = The default mime type.. | |
| thumbnailProperties.thumbnailSize | No | [query parameter] The optional thumbnail image size. If you don't specify the size, the server chooses a default size of the image. Values: `THUMBNAIL_SIZE_UNSPECIFIED` = The default thumbnail image size. The unspecified thumbnail size implies that the server chooses the size of the image in a way that might vary in the future.; `LARGE` = The thumbnail image width of 1600px.; `MEDIUM` = The thumbnail image width of 800px.; `SMALL` = The thumbnail image width of 200px.; `WIDTH2000_PX` = The thumbnail image width of 2000px.. |
Output Schema
| Name | Required | Description |
|---|---|---|
| width | No | |
| height | No | |
| contentUrl | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and discloses important traits: it is an HTTP GET, counts as an expensive read request for quota purposes, and returns a URL to the thumbnail image. It does not mention authentication scope or URL expiration, but the core behavioral profile is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and quota note, but it includes boilerplate about request bodies and typed parameters that is irrelevant for a GET operation. The sibling note is terse but adds some noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the input schema is fully described, so the description does not need to explain return values. It provides the essential context: the tool's purpose, quota cost, HTTP method, and sibling alternative. It could be slightly more complete by clarifying authentication or URL lifetime, but it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds only generic request-building notes and does not explain the meaning of parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: generates a thumbnail of the latest version of a specified page and returns a URL to the image. It also names the sibling tool over the same resource ('get'), allowing an agent to distinguish thumbnail generation from full page retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names the alternative sibling ('get') but does not explicitly state when to use this tool versus that one. It implies usage by saying the tool returns a thumbnail URL, but lacks clear conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasklists.deleteA
Deletes the authenticated user's specified task list. If the list contains assigned tasks, both the assigned tasks and the original tasks in the assignment surface (Docs, Chat Spaces) are deleted [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: get, insert, list, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| tasklist | Yes | [URL path segment] Task list identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses cascading deletion of assigned tasks and originals in Docs/Chat Spaces, irreversibility absent a trash/undo flow, refusal under --readonly safety profiles, and that the response is the post-delete resource state or empty. This is exactly the risk context an agent needs before a destructive call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence is well front-loaded with the destructive cascade, but the trailing clauses about HTTP verb, readonly profiles, and body construction are crammed into a single dashed run-on that dilutes the core warning. It is informative but not tightly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an unannotated destructive tool with no output schema, the description covers consequences, reversibility, safety-profile behavior, and return value. Auth scopes and required permissions are the main omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only a note on how request bodies are assembled (typed flags beating the `params` map, `body_file` override) and nothing about the required `tasklist` identifier or `dry_run` semantics beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Deletes the authenticated user's specified task list') and explicitly enumerates the sibling operations over the same resource (get, insert, list, patch, update). An agent can distinguish delete from patch/update without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is appropriate (irreversibility, refusal under --readonly, cascade to assigned tasks) but never states an explicit when-to-use vs. alternative, e.g. clearing tasks versus deleting the list. The sibling list names alternatives but doesn't route between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasklists.getB
Returns the authenticated user's specified task list [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, insert, list, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| tasklist | Yes | [URL path segment] Task list identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| title | No | |
| updated | No | |
| selfLink | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does carry the burden, and it does disclose the HTTP method (GET, hence read-only) and that the resource comes back as JSON. However, it spends its behavioral budget on request-body mechanics ('typed flags win over the `params` map', `body_file`) that are irrelevant to a GET, and says nothing about auth requirements or what happens for a nonexistent/unauthorized task list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is correctly front-loaded in the first clause, but the middle sentence is generic transport boilerplate about request bodies that does not apply to a read-only GET and dilutes the definition. The trailing sibling list is terse and useful, but the whole is uneven rather than maximally economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-resource getter with 100% schema coverage and an output schema (so return values need not be described), the description covers purpose, method, and family context sufficiently to invoke it. Only error/auth behavior is missing, which is a modest gap given the tool's low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents `tasklist`, `params`, `query`, `dry_run`, and `body_file`; the baseline of 3 applies. The description's only added semantics is the typed-vs-params precedence rule, which is already stated in the schema text, so it adds essentially nothing beyond structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns the authenticated user's specified task list', and tags it as an HTTP GET. It also names the sibling operations on the same resource (delete, insert, list, patch, update), so an agent can place it in the CRUD family without opening the schema. It stops short of saying how it differs from `tasks.tasklists.list` in selection terms, so it is clear but not fully differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the word 'specified' plus the required `tasklist` path parameter suggests you call this when you already have an identifier. There is no explicit 'use list to enumerate, use get when you have an ID' routing instruction and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasklists.insertA
Creates a new task list and adds it to the authenticated user's task lists. A user can have up to 2000 lists at a time [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON TaskList object accepting etag, id, kind, selfLink, title, updated; pass it via params or whole via body_file Siblings over the same resource: delete, get, list, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON TaskList object. | |
| request_body | No | Request body of type TaskList: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| title | No | |
| updated | No | |
| selfLink | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does a good job: it discloses the 2000-list cap, the HTTP POST mutation semantics, refusal under --readonly safety profiles, and that it returns the API response resource as JSON. It omits auth scope requirements and rate/error behavior, which keeps it off a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and quota, then safety, then body format, then sibling routing. Dense and mostly earned, though the trailing list of five sibling names is a bare enumeration that could carry conditions instead.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be spelled out, yet the description still names the return shape. For a mutation tool with zero annotations and a nested request body, it covers quota, safety gating, and body-passing mechanics well; only permission/scope behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains params, body_file, query and dry_run; the description largely restates those routes and re-lists the TaskList fields (etag, id, kind, selfLink, title, updated) that the request_body schema already defines. It adds the useful merge note ("pass it via `params` or whole via `body_file`") but little else beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (creates a new task list under the authenticated user) and explicitly enumerates the sibling operations on the same resource (delete, get, list, patch, update). An agent can tell it apart from tasks.tasklists.patch/update without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The create-vs-modify distinction is carried by naming the sibling verbs, which is clear routing context, but no explicit when-not conditions are given (e.g. "use patch to modify an existing list"). The safety-profile refusal note also gives a concrete precondition for calling it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasklists.listB
Returns all the authenticated user's task lists. A user can have up to 2000 lists at a time [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, insert, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Token specifying the result page to return. Optional. | |
| maxResults | No | [query parameter] Maximum number of task lists returned on one page. Optional. The default is 1000 (max allowed: 1000). |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| kind | No | |
| items | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does disclose useful behavior: HTTP GET, JSON responses, and a 2000-list limit. However, it omits pagination behavior despite having pageToken/maxResults parameters, and the boilerplate about request bodies and body_file is irrelevant and potentially confusing for a GET endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and 2000-list limit are front-loaded effectively. However, the middle sentence about request bodies is generic boilerplate that does not apply to a GET list operation and dilutes the otherwise compact description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the input schema fully documents the pagination parameters. The description covers scope, HTTP method, and the list cap, leaving only minor gaps such as explicit pagination guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all six parameters, including pageToken and maxResults. The description only mentions generic request-construction mechanics (typed parameters overriding the params map, body_file) and adds no specific meaning for the list parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Returns all the authenticated user's task lists,' and adds the 2000-list cap. It also names the sibling operations over the same resource (delete, get, insert, patch, update), so an agent can distinguish this list operation from them without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names sibling operations but gives no conditions for choosing list over get or any other alternative, and no when-not guidance. The only implied usage is the bare fact that it returns all task lists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasklists.patchA
Updates the authenticated user's specified task list. This method supports patch semantics [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON TaskList object accepting etag, id, kind, selfLink, title, updated; pass it via params or whole via body_file Siblings over the same resource: delete, get, insert, list, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| tasklist | Yes | [URL path segment] Task list identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON TaskList object. | |
| request_body | No | Request body of type TaskList: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| title | No | |
| updated | No | |
| selfLink | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does a reasonable job: it discloses mutation via HTTP PATCH, the readonly-profile refusal, and the response shape. It omits auth/scope requirements and does not say what happens to fields not included in the patch body, which is the key behavioral question for a PATCH.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then semantics, safety, return shape, and siblings in a compact run. The em-dash-chained clauses are dense but every sentence carries information; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, parameters are fully described in the schema, and the description covers mutation semantics, safety-profile behavior, and sibling routing. For a single-resource PATCH tool, an agent has what it needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's mention of the TaskList body fields and of passing via `params` or `body_file` largely restates what the schema already documents, adding little semantic weight beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates the authenticated user's specified task list') and names the sibling set over the same resource, so an agent can place it among delete/get/insert/list/update. It stops short of explicitly contrasting patch semantics with the `update` sibling's full-replace behavior, which is the one distinction that matters most here.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'refused under --readonly safety profiles' clause is an explicit when-not condition, and the sibling list gives the agent an alternative set to choose from. However, no condition is given for selecting patch over update, so the routing signal is present but not fully resolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasklists.updateA
Updates the authenticated user's specified task list [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON TaskList object accepting etag, id, kind, selfLink, title, updated; pass it via params or whole via body_file Siblings over the same resource: delete, get, insert, list, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| tasklist | Yes | [URL path segment] Task list identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON TaskList object. | |
| request_body | No | Request body of type TaskList: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| etag | No | |
| kind | No | |
| title | No | |
| updated | No | |
| selfLink | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does meaningful work: it declares the operation is a PUT-based resource replacement, that it is refused under --readonly safety profiles, and that it returns the API response resource as JSON. It omits authorization scope requirements and idempotency/replace-vs-merge semantics, which matter for a PUT.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and resource, and every clause adds information. It is dense and em-dash-chained, with return-value details that are somewhat redundant given an output schema exists, which keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no annotations, it covers the safety-profile behavior, request body construction, and return type, which is the important surface. Missing is only the replace-semantics consequence (fields not supplied being cleared), which is the key risk of a PUT over patch.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all six parameters are already documented in structured form. The description restates the TaskList body fields (etag, id, kind, selfLink, title, updated) and the params/body_file routing, adding no meaning beyond the schema — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates the authenticated user's specified task list') with the HTTP method and scope. It enumerates the sibling operations over the same resource (delete, get, insert, list, patch) but never says what distinguishes update from patch, so full sibling differentiation is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the readonly refusal tells the agent one context where this fails, and the sibling list hints that patch is the partial-update alternative, but there is no explicit 'use this instead of patch when...' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasks.clearA
Clears all completed tasks from the specified task list. The affected tasks will be marked as 'hidden' and no longer be returned by default when retrieving all tasks for a task list [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: delete, get, insert, list, move, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| tasklist | Yes | [URL path segment] Task list identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that affected tasks are hidden rather than removed, that they disappear from default listings, that the operation is a POST-style mutation, and that it is refused under readonly safety profiles. It stops short of stating required auth scopes or whether the hiding is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and key behavioral caveat are front-loaded, and the description is reasonably sized for a 5-parameter mutation tool. The trailing sibling list and HTTP/body-building boilerplate are useful but slightly dilute conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers purpose, non-destructive 'hide' behavior, readonly refusal, return format, and request-body construction. It lacks permission/scope details and a description of the returned resource, but remains adequate to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds useful cross-parameter semantics: typed parameters override the `params` map, and `body_file` can supply the whole request body instead. This meaningfully supplements the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Clears all completed tasks from the specified task list.' It also clarifies the non-obvious effect that tasks are marked hidden rather than deleted, which distinguishes this from a destructive delete operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the 'clears all completed tasks' phrasing and the note that it is refused under --readonly profiles. However, it does not explicitly say when to use this tool instead of siblings such as delete, patch, or update; it merely lists those siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasks.deleteA
Deletes the specified task from the task list. If the task is assigned, both the assigned task and the original task (in Docs, Chat Spaces) are deleted. To delete the assigned task only, navigate to the assignment surface and unassign the task from there [HTTP DELETE] — removes the resource; irreversible unless the API documents a trash/undo flow; refused under --readonly safety profiles. Returns the post-delete resource state (or empty) as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: clear, get, insert, list, move, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | [URL path segment] Task identifier. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| tasklist | Yes | [URL path segment] Task list identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it declares the operation irreversible (absent a trash/undo flow), notes it is refused under --readonly safety profiles, states it maps to HTTP DELETE, and describes the post-delete response as JSON.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The destructive behavior and assignment caveat are front-loaded, but the trailing generic template text about request bodies and body_file is irrelevant boilerplate for a bodyless DELETE and dilutes the message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter destructive tool with no annotations and no output schema, the description supplies the safety profile, irreversibility, HTTP method, and return-value description — everything an agent needs to decide and call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so task, tasklist, query, params, dry_run, and body_file are already documented. The description restates the precedence rule (typed flags win over the params map) and body_file, adding no new parameter meaning, which matches the baseline 3 when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ("Deletes the specified task from the task list") and adds a genuinely distinguishing nuance: deleting an assigned task also removes the original in Docs/Chat Spaces. It lists sibling tools by name but never contrasts them, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit alternative path with a condition: to delete only the assignment, go to the assignment surface and unassign instead. It gives no guidance, however, on when to use this versus tasks.tasks.clear or tasks.tasks.update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasks.getC
Returns the specified task [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: clear, delete, insert, list, move, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | [URL path segment] Task identifier. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| tasklist | Yes | [URL path segment] Task list identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| due | No | |
| etag | No | |
| kind | No | |
| links | No | |
| notes | No | |
| title | No | |
| hidden | No | |
| parent | No | |
| status | No | |
| deleted | No | |
| updated | No | |
| position | No | |
| selfLink | No | |
| completed | No | |
| webViewLink | No | |
| assignmentInfo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions HTTP GET and JSON output, but includes generic request-body construction details that are irrelevant for a GET operation and does not clarify permissions, error behavior, or what 'specified task' returns beyond the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is concise and front-loads the core purpose. The second sentence is long, generic boilerplate about building request bodies that does not apply to a GET, and the sibling list is useful but terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and full parameter descriptions reduce what the description must cover, and the core operation is understandable from the first sentence. However, for a tool with no annotations, the description should better explain that this is a read-only single-task retrieval and should avoid misleading body-construction guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all six parameters, including `tasklist` and `task` as required path segments. The description adds no parameter-specific meaning beyond repeating the schema's note that typed flags win over the `params` map.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: 'Returns the specified task [HTTP GET].' The sibling list names the other operations on the same resource, so an agent can distinguish get from list, insert, patch, etc., though the list stops short of explaining when each is preferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus `tasks.tasks.list` or the other siblings. The description only lists sibling names, and the HTTP GET label implies retrieval but does not state prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasks.insertA
Creates a new task on the specified task list. Tasks assigned from Docs or Chat Spaces cannot be inserted from Tasks Public API; they can only be created by assigning them from Docs or Chat Spaces. A user can have up to 20,000 non-hidden tasks per list and up to 100,000 tasks in total at a time [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Task object accepting assignmentInfo, completed, deleted, due, etag, hidden, id, kind and 9 more fields; pass it via params or whole via body_file Siblings over the same resource: clear, delete, get, list, move, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | No | [query parameter] Parent task identifier. If the task is created at the top level, this parameter is omitted. An assigned task cannot be a parent task, nor can it have a parent. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| previous | No | [query parameter] Previous sibling task identifier. If the task is created at the first position among its siblings, this parameter is omitted. Optional. | |
| tasklist | Yes | [URL path segment] Task list identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Task object. | |
| request_body | No | Request body of type Task: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| due | No | |
| etag | No | |
| kind | No | |
| links | No | |
| notes | No | |
| title | No | |
| hidden | No | |
| parent | No | |
| status | No | |
| deleted | No | |
| updated | No | |
| position | No | |
| selfLink | No | |
| completed | No | |
| webViewLink | No | |
| assignmentInfo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that this is a mutation ('creates or triggers a change'), that it is refused under --readonly safety profiles, quota limits (20,000 per list / 100,000 total), and that it returns the API's response resource as JSON. It still omits auth scope requirements and idempotency behavior, so it is not fully exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by restrictions, HTTP/safety notes, body mechanics, and sibling context. It is dense but each clause adds relevant information; minor phrasing like 'and 9 more fields' is slightly awkward but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, the description covers behavior, safety, quotas, return format, and body-passing mechanics. An output schema exists, so detailed return-value explanation is not needed. The only notable gap is auth/permission requirements, which keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters and the nested Task body. The description adds some value by noting that the body can be passed via `params` or wholly via `body_file` and by listing several Task fields, but this largely restates what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Creates'), resource ('a new task'), and parent resource ('on the specified task list'). It also distinguishes the create operation from its siblings by naming them at the end.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says assigned tasks from Docs or Chat Spaces cannot be inserted via this API, giving a clear when-not-to-use condition. It also lists sibling tools over the same resource, though it does not spell out which sibling to choose for each alternative use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasks.listB
Returns all tasks in the specified task list. Doesn't return assigned tasks by default (from Docs, Chat Spaces). A user can have up to 20,000 non-hidden tasks per list and up to 100,000 tasks in total at a time [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: clear, delete, get, insert, move, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| dueMax | No | [query parameter] Upper bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date. | |
| dueMin | No | [query parameter] Lower bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| tasklist | Yes | [URL path segment] Task list identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| pageToken | No | [query parameter] Token specifying the result page to return. Optional. | |
| maxResults | No | [query parameter] Maximum number of tasks returned on one page. Optional. The default is 20 (max allowed: 100). | |
| showHidden | No | [query parameter] Flag indicating whether hidden tasks are returned in the result. Optional. The default is False. | |
| updatedMin | No | [query parameter] Lower bound for a task's last modification time (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by last modification time. | |
| showDeleted | No | [query parameter] Flag indicating whether deleted tasks are returned in the result. Optional. The default is False. | |
| completedMax | No | [query parameter] Upper bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date. | |
| completedMin | No | [query parameter] Lower bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date. | |
| showAssigned | No | [query parameter] Optional. Flag indicating whether tasks assigned to the current user are returned in the result. Optional. The default is False. | |
| showCompleted | No | [query parameter] Flag indicating whether completed tasks are returned in the result. Note that showHidden must also be True to show tasks completed in first party clients, such |
Output Schema
| Name | Required | Description |
|---|---|---|
| etag | No | |
| kind | No | |
| items | No | |
| nextPageToken | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral disclosure. It supplies useful context: HTTP GET, default exclusion of assigned tasks, quota limits (20,000 per list / 100,000 total), JSON return format, and request-body handling via typed parameters or body_file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and key defaults are front-loaded, but the description includes generic wrapper boilerplate about JSON return and body_file that is largely irrelevant for a GET list operation. The bare sibling list also adds length without routing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the fully described schema and an output schema, the description covers the essentials an agent needs: purpose, default exclusion behavior, quotas, HTTP method, and request/response handling. It does not cover auth or rate limits, but those are less critical for selecting this listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 16 parameters are already documented in the schema. The description adds only general wrapper semantics and the default assigned-task behavior, not parameter-specific guidance beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns all tasks in the specified task list,' and notes the default exclusion of assigned tasks. It names sibling operations over the same resource but does not explain how they differ, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance. The default-exclusion note gives context, but the agent is not told when to choose this over tasks.tasks.get, tasks.tasks.insert, or other sibling operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasks.moveA
Moves the specified task to another position in the destination task list. If the destination list is not specified, the task is moved within its current list. This can include putting it as a child task under a new parent and/or move it to a different position among its sibling tasks. A user can have up to 2,000 subtasks per task [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: clear, delete, get, insert, list, patch, update.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | [URL path segment] Task identifier. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| parent | No | [query parameter] Optional. New parent task identifier. If the task is moved to the top level, this parameter is omitted. The task set as parent must exist in the task list and c | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| previous | No | [query parameter] Optional. New previous sibling task identifier. If the task is moved to the first position among its siblings, this parameter is omitted. The task set as previo | |
| tasklist | Yes | [URL path segment] Task list identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. | |
| destinationTasklist | No | [query parameter] Optional. Destination task list identifier. If set, the task is moved from tasklist to the destinationTasklist list. Otherwise the task is moved within its curr |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| due | No | |
| etag | No | |
| kind | No | |
| links | No | |
| notes | No | |
| title | No | |
| hidden | No | |
| parent | No | |
| status | No | |
| deleted | No | |
| updated | No | |
| position | No | |
| selfLink | No | |
| completed | No | |
| webViewLink | No | |
| assignmentInfo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool is an HTTP POST that 'creates or triggers a change', is 'refused under --readonly safety profiles', enforces a 2,000-subtask-per-task limit, and returns the API response resource as JSON. It does not mention permission or auth requirements, so it is not fully comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and destination-list behavior are front-loaded and easy to scan. The trailing request-body construction details and sibling list are somewhat meta and do not all earn their place, but the description remains reasonably efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nine-parameter mutation tool with no annotations, the description provides meaningful context: mutation behavior, readonly refusal, a quota limit, return format, and request-body construction. It is complete enough to invoke safely, though it omits authorization requirements and some failure conditions already covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all nine parameters. The description adds some meaning by explaining destination-list omission and parent/sibling positioning, but most parameter-level semantics are already present in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Moves the specified task to another position in the destination task list.' It explains the within-list case and the parent/sibling repositioning cases. It does not meaningfully differentiate from siblings such as patch or update beyond listing their names, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when a destination list is omitted and what that means ('moved within its current list'), and it mentions moving under a new parent or among siblings. However, it does not explicitly say when to choose move over patch/update or other siblings, leaving that comparison to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasks.patchA
Updates the specified task. This method supports patch semantics [HTTP PATCH] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Task object accepting assignmentInfo, completed, deleted, due, etag, hidden, id, kind and 9 more fields; pass it via params or whole via body_file Siblings over the same resource: clear, delete, get, insert, list, move, update.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | [URL path segment] Task identifier. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| tasklist | Yes | [URL path segment] Task list identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Task object. | |
| request_body | No | Request body of type Task: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| due | No | |
| etag | No | |
| kind | No | |
| links | No | |
| notes | No | |
| title | No | |
| hidden | No | |
| parent | No | |
| status | No | |
| deleted | No | |
| updated | No | |
| position | No | |
| selfLink | No | |
| completed | No | |
| webViewLink | No | |
| assignmentInfo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and mostly succeeds: it discloses the read-only safety-profile refusal, states that the API's response resource is returned, and explains the two body-passing routes (`params` merge vs `body_file`). It doesn't spell out that unspecified fields are left untouched under patch semantics or what permissions are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the middle clause listing body fields plus 'and 9 more fields' is padding against a 100%-covered schema, and the em-dash chain makes it a dense run-on. It is informative but not every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, and the description still notes a JSON response is returned. For a 7-parameter nested-body mutation tool, the remaining gap is the absence of patch-semantics detail (field clearing vs preservation) and permission requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents `task`, `tasklist`, `query`, `params`, `body_file`, `dry_run` and the nested request body. The description adds only the routing note that the body can be supplied via `params` or `body_file`, which the schema also states. Baseline 3 applies; the field enumeration ('assignmentInfo, completed, ... and 9 more') merely restates the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Updates the specified task') and flags that it is HTTP PATCH rather than a full replace, which is the meaningful axis of differentiation from the sibling `tasks.tasks.update`. It enumerates siblings but doesn't explicitly say how patch differs from update beyond the PATCH tag.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one concrete when-not condition ('refused under --readonly safety profiles') and lists the sibling set over the same resource, so the agent knows the alternative space. It stops short of an explicit rule like 'use patch for partial edits, update for full replacement'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks.tasks.updateB
Updates the specified task [HTTP PUT] — updates the resource; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Task object accepting assignmentInfo, completed, deleted, due, etag, hidden, id, kind and 9 more fields; pass it via params or whole via body_file Siblings over the same resource: clear, delete, get, insert, list, move, patch.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | [URL path segment] Task identifier. | |
| query | No | Extra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe. | |
| params | No | Parameter map merged into the request; typed parameters win. | |
| dry_run | No | Return the request that would be sent, without sending it. | |
| tasklist | Yes | [URL path segment] Task list identifier. | |
| body_file | No | Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Task object. | |
| request_body | No | Request body of type Task: pass it via `params` (merged into the built body) or whole via `body_file`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| due | No | |
| etag | No | |
| kind | No | |
| links | No | |
| notes | No | |
| title | No | |
| hidden | No | |
| parent | No | |
| status | No | |
| deleted | No | |
| updated | No | |
| position | No | |
| selfLink | No | |
| completed | No | |
| webViewLink | No | |
| assignmentInfo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It discloses HTTP PUT, readonly-profile refusal, and JSON response behavior, but it does not explain replacement semantics, required permissions, or what happens to fields omitted from the Task body.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and key HTTP/safety facts are front-loaded, and most of the text earns its place. The long em-dash/semicolon sentence and trailing sibling list make it denser than ideal, but it remains efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given seven parameters, no annotations, and a rich schema, the description covers call mechanics and return behavior adequately. It still omits the update-versus-patch selection rule and the consequences of PUT-style replacement, which are important for a mutating operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates the body field mechanism and routing via params or body_file, but adds little beyond the schema and uses the vague phrase 'and 9 more fields' rather than clarifying semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: it 'Updates the specified task' and identifies the HTTP method as PUT. It also mentions the return value and sibling operations, but it does not explain how update differs from patch, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a when-not signal by stating the call is refused under --readonly safety profiles and lists sibling operations over the same resource. However, it provides no explicit rule for choosing update versus patch, move, or the other siblings, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
182 tool updates
- Changed
analyticsadmin.accounts.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaAccount object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaAccount: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "gmpOrganization": { + "type": "string" + }, + "name": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.accounts.provisionAccountTicket2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaProvisionAccountTicketRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaProvisionAccountTicketRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "account": { + "properties": { + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "gmpOrganization": { + "type": "string" + }, + "name": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "redirectUri": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.accounts.runAccessReport2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaRunAccessReportRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaRunAccessReportRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "dateRanges": { + "items": { + "properties": { + "endDate": { + "type": "string" + }, + "startDate": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "dimensionFilter": { + "properties": { + "accessFilter": { + "properties": { + "betweenFilter": { + "properties": { + "fromValue": { + "type": "object" + }, + "toValue": { + "type": "object" + } + }, + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "numericFilter": { + "properties": { + "operation": { + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL" + ], + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "stringFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "matchType": { + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "andGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "accessFilter": { + "type": "object" + }, + "andGroup": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "accessFilter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "accessFilter": { + "type": "object" + }, + "andGroup": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "accessFilter": { + "type": "object" + }, + "andGroup": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "dimensions": { + "items": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "expandGroups": { + "type": "boolean" + }, + "includeAllUsers": { + "type": "boolean" + }, + "limit": { + "type": "string" + }, + "metricFilter": { + "properties": { + "accessFilter": { + "properties": { + "betweenFilter": { + "properties": { + "fromValue": { + "type": "object" + }, + "toValue": { + "type": "object" + } + }, + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "numericFilter": { + "properties": { + "operation": { + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL" + ], + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "stringFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "matchType": { + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "andGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "accessFilter": { + "type": "object" + }, + "andGroup": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "accessFilter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "accessFilter": { + "type": "object" + }, + "andGroup": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "accessFilter": { + "type": "object" + }, + "andGroup": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "metricName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "offset": { + "type": "string" + }, + "orderBys": { + "items": { + "properties": { + "desc": { + "type": "boolean" + }, + "dimension": { + "properties": { + "dimensionName": { + "type": "string" + }, + "orderType": { + "enum": [ + "ORDER_TYPE_UNSPECIFIED", + "ALPHANUMERIC", + "CASE_INSENSITIVE_ALPHANUMERIC", + "NUMERIC" + ], + "type": "string" + } + }, + "type": "object" + }, + "metric": { + "properties": { + "metricName": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "returnEntityQuota": { + "type": "boolean" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.accounts.searchChangeHistoryEvents2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaSearchChangeHistoryEventsRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaSearchChangeHistoryEventsRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "action": { + "items": { + "enum": [ + "ACTION_TYPE_UNSPECIFIED", + "CREATED", + "UPDATED", + "DELETED" + ], + "type": "string" + }, + "type": "array" + }, + "actorEmail": { + "items": { + "type": "string" + }, + "type": "array" + }, + "earliestChangeTime": { + "type": "string" + }, + "latestChangeTime": { + "type": "string" + }, + "pageSize": { + "type": "integer" + }, + "pageToken": { + "type": "string" + }, + "property": { + "type": "string" + }, + "resourceType": { + "items": { + "enum": [ + "CHANGE_HISTORY_RESOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROPERTY", + "FIREBASE_LINK", + "GOOGLE_ADS_LINK", + "GOOGLE_SIGNALS_SETTINGS", + "CONVERSION_EVENT", + "MEASUREMENT_PROTOCOL_SECRET", + "CUSTOM_DIMENSION", + "CUSTOM_METRIC", + "DATA_RETENTION_SETTINGS", + "DISPLAY_VIDEO_360_ADVERTISER_LINK", + "DISPLAY_VIDEO_360_ADVERTISER_LINK_PROPOSAL", + "DATA_STREAM", + "ATTRIBUTION_SETTINGS" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.acknowledgeUserDataCollection2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaAcknowledgeUserDataCollectionRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaAcknowledgeUserDataCollectionRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "acknowledgement": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.conversionEvents.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaConversionEvent object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaConversionEvent: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "countingMethod": { + "enum": [ + "CONVERSION_COUNTING_METHOD_UNSPECIFIED", + "ONCE_PER_EVENT", + "ONCE_PER_SESSION" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "custom": { + "type": "boolean" + }, + "defaultConversionValue": { + "properties": { + "currencyCode": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object" + }, + "deletable": { + "type": "boolean" + }, + "eventName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.conversionEvents.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaConversionEvent object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaConversionEvent: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "countingMethod": { + "enum": [ + "CONVERSION_COUNTING_METHOD_UNSPECIFIED", + "ONCE_PER_EVENT", + "ONCE_PER_SESSION" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "custom": { + "type": "boolean" + }, + "defaultConversionValue": { + "properties": { + "currencyCode": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object" + }, + "deletable": { + "type": "boolean" + }, + "eventName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaProperty object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaProperty: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "account": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "currencyCode": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "expireTime": { + "type": "string" + }, + "industryCategory": { + "enum": [ + "INDUSTRY_CATEGORY_UNSPECIFIED", + "AUTOMOTIVE", + "BUSINESS_AND_INDUSTRIAL_MARKETS", + "FINANCE", + "HEALTHCARE", + "TECHNOLOGY", + "TRAVEL", + "OTHER", + "ARTS_AND_ENTERTAINMENT", + "BEAUTY_AND_FITNESS", + "BOOKS_AND_LITERATURE", + "FOOD_AND_DRINK", + "GAMES", + "HOBBIES_AND_LEISURE", + "HOME_AND_GARDEN", + "INTERNET_AND_TELECOM", + "LAW_AND_GOVERNMENT", + "NEWS", + "ONLINE_COMMUNITIES", + "PEOPLE_AND_SOCIETY", + "PETS_AND_ANIMALS", + "REAL_ESTATE", + "REFERENCE", + "SCIENCE", + "SPORTS", + "JOBS_AND_EDUCATION", + "SHOPPING" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "propertyType": { + "enum": [ + "PROPERTY_TYPE_UNSPECIFIED", + "PROPERTY_TYPE_ORDINARY", + "PROPERTY_TYPE_SUBPROPERTY", + "PROPERTY_TYPE_ROLLUP" + ], + "type": "string" + }, + "serviceLevel": { + "enum": [ + "SERVICE_LEVEL_UNSPECIFIED", + "GOOGLE_ANALYTICS_STANDARD", + "GOOGLE_ANALYTICS_360" + ], + "type": "string" + }, + "timeZone": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.customDimensions.archive2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaArchiveCustomDimensionRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaArchiveCustomDimensionRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "type": "object" +}
- Changed
analyticsadmin.properties.customDimensions.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaCustomDimension object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaCustomDimension: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "description": { + "type": "string" + }, + "disallowAdsPersonalization": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parameterName": { + "type": "string" + }, + "scope": { + "enum": [ + "DIMENSION_SCOPE_UNSPECIFIED", + "EVENT", + "USER", + "ITEM" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.customDimensions.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaCustomDimension object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaCustomDimension: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "description": { + "type": "string" + }, + "disallowAdsPersonalization": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parameterName": { + "type": "string" + }, + "scope": { + "enum": [ + "DIMENSION_SCOPE_UNSPECIFIED", + "EVENT", + "USER", + "ITEM" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.customMetrics.archive2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaArchiveCustomMetricRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaArchiveCustomMetricRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "type": "object" +}
- Changed
analyticsadmin.properties.customMetrics.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaCustomMetric object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaCustomMetric: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "measurementUnit": { + "enum": [ + "MEASUREMENT_UNIT_UNSPECIFIED", + "STANDARD", + "CURRENCY", + "FEET", + "METERS", + "KILOMETERS", + "MILES", + "MILLISECONDS", + "SECONDS", + "MINUTES", + "HOURS" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "parameterName": { + "type": "string" + }, + "restrictedMetricType": { + "items": { + "enum": [ + "RESTRICTED_METRIC_TYPE_UNSPECIFIED", + "COST_DATA", + "REVENUE_DATA" + ], + "type": "string" + }, + "type": "array" + }, + "scope": { + "enum": [ + "METRIC_SCOPE_UNSPECIFIED", + "EVENT" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.customMetrics.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaCustomMetric object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaCustomMetric: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "measurementUnit": { + "enum": [ + "MEASUREMENT_UNIT_UNSPECIFIED", + "STANDARD", + "CURRENCY", + "FEET", + "METERS", + "KILOMETERS", + "MILES", + "MILLISECONDS", + "SECONDS", + "MINUTES", + "HOURS" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "parameterName": { + "type": "string" + }, + "restrictedMetricType": { + "items": { + "enum": [ + "RESTRICTED_METRIC_TYPE_UNSPECIFIED", + "COST_DATA", + "REVENUE_DATA" + ], + "type": "string" + }, + "type": "array" + }, + "scope": { + "enum": [ + "METRIC_SCOPE_UNSPECIFIED", + "EVENT" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaDataStream object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaDataStream: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "androidAppStreamData": { + "properties": { + "firebaseAppId": { + "type": "string" + }, + "packageName": { + "type": "string" + } + }, + "type": "object" + }, + "createTime": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "iosAppStreamData": { + "properties": { + "bundleId": { + "type": "string" + }, + "firebaseAppId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "DATA_STREAM_TYPE_UNSPECIFIED", + "WEB_DATA_STREAM", + "ANDROID_APP_DATA_STREAM", + "IOS_APP_DATA_STREAM" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + }, + "webStreamData": { + "properties": { + "defaultUri": { + "type": "string" + }, + "firebaseAppId": { + "type": "string" + }, + "measurementId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaMeasurementProtocolSecret object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaMeasurementProtocolSecret: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "secretValue": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaMeasurementProtocolSecret object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaMeasurementProtocolSecret: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "secretValue": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaDataStream object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaDataStream: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "androidAppStreamData": { + "properties": { + "firebaseAppId": { + "type": "string" + }, + "packageName": { + "type": "string" + } + }, + "type": "object" + }, + "createTime": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "iosAppStreamData": { + "properties": { + "bundleId": { + "type": "string" + }, + "firebaseAppId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "DATA_STREAM_TYPE_UNSPECIFIED", + "WEB_DATA_STREAM", + "ANDROID_APP_DATA_STREAM", + "IOS_APP_DATA_STREAM" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + }, + "webStreamData": { + "properties": { + "defaultUri": { + "type": "string" + }, + "firebaseAppId": { + "type": "string" + }, + "measurementId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.firebaseLinks.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaFirebaseLink object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaFirebaseLink: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "createTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "project": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.googleAdsLinks.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaGoogleAdsLink object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaGoogleAdsLink: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "adsPersonalizationEnabled": { + "type": "boolean" + }, + "canManageClients": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "creatorEmailAddress": { + "type": "string" + }, + "customerId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.googleAdsLinks.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaGoogleAdsLink object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaGoogleAdsLink: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "adsPersonalizationEnabled": { + "type": "boolean" + }, + "canManageClients": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "creatorEmailAddress": { + "type": "string" + }, + "customerId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.keyEvents.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaKeyEvent object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaKeyEvent: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "countingMethod": { + "enum": [ + "COUNTING_METHOD_UNSPECIFIED", + "ONCE_PER_EVENT", + "ONCE_PER_SESSION" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "custom": { + "type": "boolean" + }, + "defaultValue": { + "properties": { + "currencyCode": { + "type": "string" + }, + "numericValue": { + "type": "number" + } + }, + "type": "object" + }, + "deletable": { + "type": "boolean" + }, + "eventName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.keyEvents.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaKeyEvent object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaKeyEvent: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "countingMethod": { + "enum": [ + "COUNTING_METHOD_UNSPECIFIED", + "ONCE_PER_EVENT", + "ONCE_PER_SESSION" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "custom": { + "type": "boolean" + }, + "defaultValue": { + "properties": { + "currencyCode": { + "type": "string" + }, + "numericValue": { + "type": "number" + } + }, + "type": "object" + }, + "deletable": { + "type": "boolean" + }, + "eventName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaProperty object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaProperty: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "account": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "currencyCode": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "expireTime": { + "type": "string" + }, + "industryCategory": { + "enum": [ + "INDUSTRY_CATEGORY_UNSPECIFIED", + "AUTOMOTIVE", + "BUSINESS_AND_INDUSTRIAL_MARKETS", + "FINANCE", + "HEALTHCARE", + "TECHNOLOGY", + "TRAVEL", + "OTHER", + "ARTS_AND_ENTERTAINMENT", + "BEAUTY_AND_FITNESS", + "BOOKS_AND_LITERATURE", + "FOOD_AND_DRINK", + "GAMES", + "HOBBIES_AND_LEISURE", + "HOME_AND_GARDEN", + "INTERNET_AND_TELECOM", + "LAW_AND_GOVERNMENT", + "NEWS", + "ONLINE_COMMUNITIES", + "PEOPLE_AND_SOCIETY", + "PETS_AND_ANIMALS", + "REAL_ESTATE", + "REFERENCE", + "SCIENCE", + "SPORTS", + "JOBS_AND_EDUCATION", + "SHOPPING" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "propertyType": { + "enum": [ + "PROPERTY_TYPE_UNSPECIFIED", + "PROPERTY_TYPE_ORDINARY", + "PROPERTY_TYPE_SUBPROPERTY", + "PROPERTY_TYPE_ROLLUP" + ], + "type": "string" + }, + "serviceLevel": { + "enum": [ + "SERVICE_LEVEL_UNSPECIFIED", + "GOOGLE_ANALYTICS_STANDARD", + "GOOGLE_ANALYTICS_360" + ], + "type": "string" + }, + "timeZone": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.runAccessReport2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaRunAccessReportRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaRunAccessReportRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "dateRanges": { + "items": { + "properties": { + "endDate": { + "type": "string" + }, + "startDate": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "dimensionFilter": { + "properties": { + "accessFilter": { + "properties": { + "betweenFilter": { + "properties": { + "fromValue": { + "type": "object" + }, + "toValue": { + "type": "object" + } + }, + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "numericFilter": { + "properties": { + "operation": { + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL" + ], + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "stringFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "matchType": { + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "andGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "accessFilter": { + "type": "object" + }, + "andGroup": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "accessFilter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "accessFilter": { + "type": "object" + }, + "andGroup": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "accessFilter": { + "type": "object" + }, + "andGroup": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "dimensions": { + "items": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "expandGroups": { + "type": "boolean" + }, + "includeAllUsers": { + "type": "boolean" + }, + "limit": { + "type": "string" + }, + "metricFilter": { + "properties": { + "accessFilter": { + "properties": { + "betweenFilter": { + "properties": { + "fromValue": { + "type": "object" + }, + "toValue": { + "type": "object" + } + }, + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "numericFilter": { + "properties": { + "operation": { + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL" + ], + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "stringFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "matchType": { + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "andGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "accessFilter": { + "type": "object" + }, + "andGroup": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "accessFilter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "accessFilter": { + "type": "object" + }, + "andGroup": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "accessFilter": { + "type": "object" + }, + "andGroup": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "metricName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "offset": { + "type": "string" + }, + "orderBys": { + "items": { + "properties": { + "desc": { + "type": "boolean" + }, + "dimension": { + "properties": { + "dimensionName": { + "type": "string" + }, + "orderType": { + "enum": [ + "ORDER_TYPE_UNSPECIFIED", + "ALPHANUMERIC", + "CASE_INSENSITIVE_ALPHANUMERIC", + "NUMERIC" + ], + "type": "string" + } + }, + "type": "object" + }, + "metric": { + "properties": { + "metricName": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "returnEntityQuota": { + "type": "boolean" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.updateDataRetentionSettings2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleAnalyticsAdminV1betaDataRetentionSettings object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleAnalyticsAdminV1betaDataRetentionSettings: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "eventDataRetention": { + "enum": [ + "RETENTION_DURATION_UNSPECIFIED", + "TWO_MONTHS", + "FOURTEEN_MONTHS", + "TWENTY_SIX_MONTHS", + "THIRTY_EIGHT_MONTHS", + "FIFTY_MONTHS" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "resetUserDataOnNewActivity": { + "type": "boolean" + }, + "userDataRetention": { + "enum": [ + "RETENTION_DURATION_UNSPECIFIED", + "TWO_MONTHS", + "FOURTEEN_MONTHS", + "TWENTY_SIX_MONTHS", + "THIRTY_EIGHT_MONTHS", + "FIFTY_MONTHS" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.audienceExports.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON AudienceExport object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type AudienceExport: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "audience": { + "type": "string" + }, + "audienceDisplayName": { + "type": "string" + }, + "beginCreatingTime": { + "type": "string" + }, + "creationQuotaTokensCharged": { + "type": "integer" + }, + "dimensions": { + "items": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "errorMessage": { + "type": "string" + }, + "name": { + "type": "string" + }, + "percentageCompleted": { + "type": "number" + }, + "rowCount": { + "type": "integer" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "FAILED" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.audienceExports.query2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON QueryAudienceExportRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type QueryAudienceExportRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "limit": { + "type": "string" + }, + "offset": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.batchRunPivotReports2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchRunPivotReportsRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchRunPivotReportsRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "requests": { + "items": { + "properties": { + "cohortSpec": { + "properties": { + "cohortReportSettings": { + "properties": { + "accumulate": { + "type": "boolean" + } + }, + "type": "object" + }, + "cohorts": { + "items": { + "properties": { + "dateRange": { + "type": "object" + }, + "dimension": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cohortsRange": { + "properties": { + "endOffset": { + "type": "integer" + }, + "granularity": { + "enum": [ + "GRANULARITY_UNSPECIFIED", + "DAILY", + "WEEKLY", + "MONTHLY" + ], + "type": "string" + }, + "startOffset": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "comparisons": { + "items": { + "properties": { + "comparison": { + "type": "string" + }, + "dimensionFilter": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "currencyCode": { + "type": "string" + }, + "dateRanges": { + "items": { + "properties": { + "endDate": { + "type": "string" + }, + "name": { + "type": "string" + }, + "startDate": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "dimensionFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "dimensions": { + "items": { + "properties": { + "dimensionExpression": { + "properties": { + "concatenate": { + "type": "object" + }, + "lowerCase": { + "type": "object" + }, + "upperCase": { + "type": "object" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "keepEmptyRows": { + "type": "boolean" + }, + "metricFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "expression": { + "type": "string" + }, + "invisible": { + "type": "boolean" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "pivots": { + "items": { + "properties": { + "fieldNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "limit": { + "type": "string" + }, + "metricAggregations": { + "items": { + "enum": [ + "METRIC_AGGREGATION_UNSPECIFIED", + "TOTAL", + "MINIMUM", + "MAXIMUM", + "COUNT" + ], + "type": "string" + }, + "type": "array" + }, + "offset": { + "type": "string" + }, + "orderBys": { + "items": { + "properties": { + "desc": { + "type": "boolean" + }, + "dimension": { + "type": "object" + }, + "metric": { + "type": "object" + }, + "pivot": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "property": { + "type": "string" + }, + "returnPropertyQuota": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.batchRunReports2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchRunReportsRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchRunReportsRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "requests": { + "items": { + "properties": { + "cohortSpec": { + "properties": { + "cohortReportSettings": { + "properties": { + "accumulate": { + "type": "boolean" + } + }, + "type": "object" + }, + "cohorts": { + "items": { + "properties": { + "dateRange": { + "type": "object" + }, + "dimension": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cohortsRange": { + "properties": { + "endOffset": { + "type": "integer" + }, + "granularity": { + "enum": [ + "GRANULARITY_UNSPECIFIED", + "DAILY", + "WEEKLY", + "MONTHLY" + ], + "type": "string" + }, + "startOffset": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "comparisons": { + "items": { + "properties": { + "comparison": { + "type": "string" + }, + "dimensionFilter": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "currencyCode": { + "type": "string" + }, + "dateRanges": { + "items": { + "properties": { + "endDate": { + "type": "string" + }, + "name": { + "type": "string" + }, + "startDate": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "dimensionFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "dimensions": { + "items": { + "properties": { + "dimensionExpression": { + "properties": { + "concatenate": { + "type": "object" + }, + "lowerCase": { + "type": "object" + }, + "upperCase": { + "type": "object" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "keepEmptyRows": { + "type": "boolean" + }, + "limit": { + "type": "string" + }, + "metricAggregations": { + "items": { + "enum": [ + "METRIC_AGGREGATION_UNSPECIFIED", + "TOTAL", + "MINIMUM", + "MAXIMUM", + "COUNT" + ], + "type": "string" + }, + "type": "array" + }, + "metricFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "expression": { + "type": "string" + }, + "invisible": { + "type": "boolean" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "offset": { + "type": "string" + }, + "orderBys": { + "items": { + "properties": { + "desc": { + "type": "boolean" + }, + "dimension": { + "properties": { + "dimensionName": { + "type": "string" + }, + "orderType": { + "enum": [ + "ORDER_TYPE_UNSPECIFIED", + "ALPHANUMERIC", + "CASE_INSENSITIVE_ALPHANUMERIC", + "NUMERIC" + ], + "type": "string" + } + }, + "type": "object" + }, + "metric": { + "properties": { + "metricName": { + "type": "string" + } + }, + "type": "object" + }, + "pivot": { + "properties": { + "metricName": { + "type": "string" + }, + "pivotSelections": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "property": { + "type": "string" + }, + "returnPropertyQuota": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.checkCompatibility2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CheckCompatibilityRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CheckCompatibilityRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "compatibilityFilter": { + "enum": [ + "COMPATIBILITY_UNSPECIFIED", + "COMPATIBLE", + "INCOMPATIBLE" + ], + "type": "string" + }, + "dimensionFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "properties": { + "fromValue": { + "type": "object" + }, + "toValue": { + "type": "object" + } + }, + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "numericFilter": { + "properties": { + "operation": { + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL" + ], + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "stringFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "matchType": { + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "dimensions": { + "items": { + "properties": { + "dimensionExpression": { + "properties": { + "concatenate": { + "properties": { + "delimiter": { + "type": "string" + }, + "dimensionNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "lowerCase": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + }, + "upperCase": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "properties": { + "fromValue": { + "type": "object" + }, + "toValue": { + "type": "object" + } + }, + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "numericFilter": { + "properties": { + "operation": { + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL" + ], + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "stringFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "matchType": { + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "expression": { + "type": "string" + }, + "invisible": { + "type": "boolean" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.runPivotReport2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON RunPivotReportRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type RunPivotReportRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "cohortSpec": { + "properties": { + "cohortReportSettings": { + "properties": { + "accumulate": { + "type": "boolean" + } + }, + "type": "object" + }, + "cohorts": { + "items": { + "properties": { + "dateRange": { + "properties": { + "endDate": { + "type": "string" + }, + "name": { + "type": "string" + }, + "startDate": { + "type": "string" + } + }, + "type": "object" + }, + "dimension": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cohortsRange": { + "properties": { + "endOffset": { + "type": "integer" + }, + "granularity": { + "enum": [ + "GRANULARITY_UNSPECIFIED", + "DAILY", + "WEEKLY", + "MONTHLY" + ], + "type": "string" + }, + "startOffset": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "comparisons": { + "items": { + "properties": { + "comparison": { + "type": "string" + }, + "dimensionFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "currencyCode": { + "type": "string" + }, + "dateRanges": { + "items": { + "properties": { + "endDate": { + "type": "string" + }, + "name": { + "type": "string" + }, + "startDate": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "dimensionFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "properties": { + "fromValue": { + "type": "object" + }, + "toValue": { + "type": "object" + } + }, + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "numericFilter": { + "properties": { + "operation": { + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL" + ], + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "stringFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "matchType": { + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "dimensions": { + "items": { + "properties": { + "dimensionExpression": { + "properties": { + "concatenate": { + "properties": { + "delimiter": { + "type": "string" + }, + "dimensionNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "lowerCase": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + }, + "upperCase": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "keepEmptyRows": { + "type": "boolean" + }, + "metricFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "properties": { + "fromValue": { + "type": "object" + }, + "toValue": { + "type": "object" + } + }, + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "numericFilter": { + "properties": { + "operation": { + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL" + ], + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "stringFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "matchType": { + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "expression": { + "type": "string" + }, + "invisible": { + "type": "boolean" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "pivots": { + "items": { + "properties": { + "fieldNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "limit": { + "type": "string" + }, + "metricAggregations": { + "items": { + "enum": [ + "METRIC_AGGREGATION_UNSPECIFIED", + "TOTAL", + "MINIMUM", + "MAXIMUM", + "COUNT" + ], + "type": "string" + }, + "type": "array" + }, + "offset": { + "type": "string" + }, + "orderBys": { + "items": { + "properties": { + "desc": { + "type": "boolean" + }, + "dimension": { + "properties": { + "dimensionName": { + "type": "string" + }, + "orderType": { + "enum": [ + "ORDER_TYPE_UNSPECIFIED", + "ALPHANUMERIC", + "CASE_INSENSITIVE_ALPHANUMERIC", + "NUMERIC" + ], + "type": "string" + } + }, + "type": "object" + }, + "metric": { + "properties": { + "metricName": { + "type": "string" + } + }, + "type": "object" + }, + "pivot": { + "properties": { + "metricName": { + "type": "string" + }, + "pivotSelections": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "property": { + "type": "string" + }, + "returnPropertyQuota": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.runRealtimeReport2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON RunRealtimeReportRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type RunRealtimeReportRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "dimensionFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "properties": { + "fromValue": { + "type": "object" + }, + "toValue": { + "type": "object" + } + }, + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "numericFilter": { + "properties": { + "operation": { + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL" + ], + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "stringFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "matchType": { + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "dimensions": { + "items": { + "properties": { + "dimensionExpression": { + "properties": { + "concatenate": { + "properties": { + "delimiter": { + "type": "string" + }, + "dimensionNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "lowerCase": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + }, + "upperCase": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "limit": { + "type": "string" + }, + "metricAggregations": { + "items": { + "enum": [ + "METRIC_AGGREGATION_UNSPECIFIED", + "TOTAL", + "MINIMUM", + "MAXIMUM", + "COUNT" + ], + "type": "string" + }, + "type": "array" + }, + "metricFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "properties": { + "fromValue": { + "type": "object" + }, + "toValue": { + "type": "object" + } + }, + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "numericFilter": { + "properties": { + "operation": { + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL" + ], + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "stringFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "matchType": { + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "expression": { + "type": "string" + }, + "invisible": { + "type": "boolean" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "minuteRanges": { + "items": { + "properties": { + "endMinutesAgo": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "startMinutesAgo": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "orderBys": { + "items": { + "properties": { + "desc": { + "type": "boolean" + }, + "dimension": { + "properties": { + "dimensionName": { + "type": "string" + }, + "orderType": { + "enum": [ + "ORDER_TYPE_UNSPECIFIED", + "ALPHANUMERIC", + "CASE_INSENSITIVE_ALPHANUMERIC", + "NUMERIC" + ], + "type": "string" + } + }, + "type": "object" + }, + "metric": { + "properties": { + "metricName": { + "type": "string" + } + }, + "type": "object" + }, + "pivot": { + "properties": { + "metricName": { + "type": "string" + }, + "pivotSelections": { + "items": { + "properties": { + "dimensionName": { + "type": "string" + }, + "dimensionValue": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "returnPropertyQuota": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.runReport2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON RunReportRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type RunReportRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "cohortSpec": { + "properties": { + "cohortReportSettings": { + "properties": { + "accumulate": { + "type": "boolean" + } + }, + "type": "object" + }, + "cohorts": { + "items": { + "properties": { + "dateRange": { + "properties": { + "endDate": { + "type": "string" + }, + "name": { + "type": "string" + }, + "startDate": { + "type": "string" + } + }, + "type": "object" + }, + "dimension": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cohortsRange": { + "properties": { + "endOffset": { + "type": "integer" + }, + "granularity": { + "enum": [ + "GRANULARITY_UNSPECIFIED", + "DAILY", + "WEEKLY", + "MONTHLY" + ], + "type": "string" + }, + "startOffset": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "comparisons": { + "items": { + "properties": { + "comparison": { + "type": "string" + }, + "dimensionFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "currencyCode": { + "type": "string" + }, + "dateRanges": { + "items": { + "properties": { + "endDate": { + "type": "string" + }, + "name": { + "type": "string" + }, + "startDate": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "dimensionFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "properties": { + "fromValue": { + "type": "object" + }, + "toValue": { + "type": "object" + } + }, + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "numericFilter": { + "properties": { + "operation": { + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL" + ], + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "stringFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "matchType": { + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "dimensions": { + "items": { + "properties": { + "dimensionExpression": { + "properties": { + "concatenate": { + "properties": { + "delimiter": { + "type": "string" + }, + "dimensionNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "lowerCase": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + }, + "upperCase": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "keepEmptyRows": { + "type": "boolean" + }, + "limit": { + "type": "string" + }, + "metricAggregations": { + "items": { + "enum": [ + "METRIC_AGGREGATION_UNSPECIFIED", + "TOTAL", + "MINIMUM", + "MAXIMUM", + "COUNT" + ], + "type": "string" + }, + "type": "array" + }, + "metricFilter": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "properties": { + "fromValue": { + "type": "object" + }, + "toValue": { + "type": "object" + } + }, + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "numericFilter": { + "properties": { + "operation": { + "enum": [ + "OPERATION_UNSPECIFIED", + "EQUAL", + "LESS_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL" + ], + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "stringFilter": { + "properties": { + "caseSensitive": { + "type": "boolean" + }, + "matchType": { + "enum": [ + "MATCH_TYPE_UNSPECIFIED", + "EXACT", + "BEGINS_WITH", + "ENDS_WITH", + "CONTAINS", + "FULL_REGEXP", + "PARTIAL_REGEXP" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "filter": { + "properties": { + "betweenFilter": { + "type": "object" + }, + "emptyFilter": { + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "inListFilter": { + "type": "object" + }, + "numericFilter": { + "type": "object" + }, + "stringFilter": { + "type": "object" + } + }, + "type": "object" + }, + "notExpression": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "orGroup": { + "properties": { + "expressions": { + "items": { + "properties": { + "andGroup": { + "type": "object" + }, + "filter": { + "type": "object" + }, + "notExpression": { + "type": "object" + }, + "orGroup": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "expression": { + "type": "string" + }, + "invisible": { + "type": "boolean" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "offset": { + "type": "string" + }, + "orderBys": { + "items": { + "properties": { + "desc": { + "type": "boolean" + }, + "dimension": { + "properties": { + "dimensionName": { + "type": "string" + }, + "orderType": { + "enum": [ + "ORDER_TYPE_UNSPECIFIED", + "ALPHANUMERIC", + "CASE_INSENSITIVE_ALPHANUMERIC", + "NUMERIC" + ], + "type": "string" + } + }, + "type": "object" + }, + "metric": { + "properties": { + "metricName": { + "type": "string" + } + }, + "type": "object" + }, + "pivot": { + "properties": { + "metricName": { + "type": "string" + }, + "pivotSelections": { + "items": { + "properties": { + "dimensionName": { + "type": "string" + }, + "dimensionValue": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "property": { + "type": "string" + }, + "returnPropertyQuota": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
calendar.acl.insert2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON AclRule object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type AclRule: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.acl.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON AclRule object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type AclRule: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.acl.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON AclRule object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type AclRule: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.acl.watch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendarList.insert2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CalendarListEntry object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CalendarListEntry: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "accessRole": { + "type": "string" + }, + "autoAcceptInvitations": { + "type": "boolean" + }, + "backgroundColor": { + "type": "string" + }, + "colorId": { + "type": "string" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "defaultReminders": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "deleted": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "foregroundColor": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "notificationSettings": { + "properties": { + "notifications": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "primary": { + "type": "boolean" + }, + "selected": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "summaryOverride": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendarList.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CalendarListEntry object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CalendarListEntry: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "accessRole": { + "type": "string" + }, + "autoAcceptInvitations": { + "type": "boolean" + }, + "backgroundColor": { + "type": "string" + }, + "colorId": { + "type": "string" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "defaultReminders": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "deleted": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "foregroundColor": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "notificationSettings": { + "properties": { + "notifications": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "primary": { + "type": "boolean" + }, + "selected": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "summaryOverride": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendarList.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CalendarListEntry object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CalendarListEntry: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "accessRole": { + "type": "string" + }, + "autoAcceptInvitations": { + "type": "boolean" + }, + "backgroundColor": { + "type": "string" + }, + "colorId": { + "type": "string" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "defaultReminders": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "deleted": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "foregroundColor": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "notificationSettings": { + "properties": { + "notifications": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "primary": { + "type": "boolean" + }, + "selected": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "summaryOverride": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendarList.watch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendars.insert2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Calendar object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Calendar: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "autoAcceptInvitations": { + "type": "boolean" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "labelProperties": { + "properties": { + "eventLabels": { + "items": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "location": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendars.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Calendar object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Calendar: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "autoAcceptInvitations": { + "type": "boolean" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "labelProperties": { + "properties": { + "eventLabels": { + "items": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "location": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendars.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Calendar object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Calendar: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "autoAcceptInvitations": { + "type": "boolean" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "labelProperties": { + "properties": { + "eventLabels": { + "items": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "location": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.channels.stop2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.events.import2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Event object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Event: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "anyoneCanAddSelf": { + "type": "boolean" + }, + "attachments": { + "items": { + "properties": { + "fileId": { + "type": "string" + }, + "fileUrl": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendees": { + "items": { + "properties": { + "additionalGuests": { + "type": "integer" + }, + "asyncOperation": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "organizer": { + "type": "boolean" + }, + "resource": { + "type": "boolean" + }, + "responseStatus": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendeesOmitted": { + "type": "boolean" + }, + "birthdayProperties": { + "properties": { + "contact": { + "type": "string" + }, + "customTypeName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "colorId": { + "type": "string" + }, + "conferenceData": { + "properties": { + "conferenceId": { + "type": "string" + }, + "conferenceSolution": { + "properties": { + "iconUri": { + "type": "string" + }, + "key": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "createRequest": { + "properties": { + "conferenceSolutionKey": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "requestId": { + "type": "string" + }, + "status": { + "properties": { + "statusCode": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "entryPoints": { + "items": { + "properties": { + "accessCode": { + "type": "string" + }, + "entryPointFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entryPointType": { + "type": "string" + }, + "label": { + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "passcode": { + "type": "string" + }, + "password": { + "type": "string" + }, + "pin": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parameters": { + "properties": { + "addOnParameters": { + "properties": { + "parameters": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "signature": { + "type": "string" + } + }, + "type": "object" + }, + "created": { + "type": "string" + }, + "creator": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "end": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "endTimeUnspecified": { + "type": "boolean" + }, + "etag": { + "type": "string" + }, + "eventLabelId": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "extendedProperties": { + "properties": { + "private": { + "type": "object" + }, + "shared": { + "type": "object" + } + }, + "type": "object" + }, + "focusTimeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "chatStatus": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "gadget": { + "properties": { + "display": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "iconLink": { + "type": "string" + }, + "link": { + "type": "string" + }, + "preferences": { + "type": "object" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "guestsCanInviteOthers": { + "type": "boolean" + }, + "guestsCanModify": { + "type": "boolean" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean" + }, + "hangoutLink": { + "type": "string" + }, + "htmlLink": { + "type": "string" + }, + "iCalUID": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "organizer": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "originalStartTime": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "outOfOfficeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "privateCopy": { + "type": "boolean" + }, + "recurrence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recurringEventId": { + "type": "string" + }, + "reminders": { + "properties": { + "overrides": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "useDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "sequence": { + "type": "integer" + }, + "source": { + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "start": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "transparency": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "workingLocationProperties": { + "properties": { + "customLocation": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "type": "any" + }, + "officeLocation": { + "properties": { + "buildingId": { + "type": "string" + }, + "deskId": { + "type": "string" + }, + "floorId": { + "type": "string" + }, + "floorSectionId": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.events.insert2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Event object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Event: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "anyoneCanAddSelf": { + "type": "boolean" + }, + "attachments": { + "items": { + "properties": { + "fileId": { + "type": "string" + }, + "fileUrl": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendees": { + "items": { + "properties": { + "additionalGuests": { + "type": "integer" + }, + "asyncOperation": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "organizer": { + "type": "boolean" + }, + "resource": { + "type": "boolean" + }, + "responseStatus": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendeesOmitted": { + "type": "boolean" + }, + "birthdayProperties": { + "properties": { + "contact": { + "type": "string" + }, + "customTypeName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "colorId": { + "type": "string" + }, + "conferenceData": { + "properties": { + "conferenceId": { + "type": "string" + }, + "conferenceSolution": { + "properties": { + "iconUri": { + "type": "string" + }, + "key": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "createRequest": { + "properties": { + "conferenceSolutionKey": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "requestId": { + "type": "string" + }, + "status": { + "properties": { + "statusCode": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "entryPoints": { + "items": { + "properties": { + "accessCode": { + "type": "string" + }, + "entryPointFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entryPointType": { + "type": "string" + }, + "label": { + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "passcode": { + "type": "string" + }, + "password": { + "type": "string" + }, + "pin": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parameters": { + "properties": { + "addOnParameters": { + "properties": { + "parameters": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "signature": { + "type": "string" + } + }, + "type": "object" + }, + "created": { + "type": "string" + }, + "creator": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "end": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "endTimeUnspecified": { + "type": "boolean" + }, + "etag": { + "type": "string" + }, + "eventLabelId": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "extendedProperties": { + "properties": { + "private": { + "type": "object" + }, + "shared": { + "type": "object" + } + }, + "type": "object" + }, + "focusTimeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "chatStatus": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "gadget": { + "properties": { + "display": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "iconLink": { + "type": "string" + }, + "link": { + "type": "string" + }, + "preferences": { + "type": "object" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "guestsCanInviteOthers": { + "type": "boolean" + }, + "guestsCanModify": { + "type": "boolean" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean" + }, + "hangoutLink": { + "type": "string" + }, + "htmlLink": { + "type": "string" + }, + "iCalUID": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "organizer": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "originalStartTime": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "outOfOfficeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "privateCopy": { + "type": "boolean" + }, + "recurrence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recurringEventId": { + "type": "string" + }, + "reminders": { + "properties": { + "overrides": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "useDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "sequence": { + "type": "integer" + }, + "source": { + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "start": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "transparency": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "workingLocationProperties": { + "properties": { + "customLocation": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "type": "any" + }, + "officeLocation": { + "properties": { + "buildingId": { + "type": "string" + }, + "deskId": { + "type": "string" + }, + "floorId": { + "type": "string" + }, + "floorSectionId": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.events.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Event object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Event: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "anyoneCanAddSelf": { + "type": "boolean" + }, + "attachments": { + "items": { + "properties": { + "fileId": { + "type": "string" + }, + "fileUrl": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendees": { + "items": { + "properties": { + "additionalGuests": { + "type": "integer" + }, + "asyncOperation": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "organizer": { + "type": "boolean" + }, + "resource": { + "type": "boolean" + }, + "responseStatus": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendeesOmitted": { + "type": "boolean" + }, + "birthdayProperties": { + "properties": { + "contact": { + "type": "string" + }, + "customTypeName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "colorId": { + "type": "string" + }, + "conferenceData": { + "properties": { + "conferenceId": { + "type": "string" + }, + "conferenceSolution": { + "properties": { + "iconUri": { + "type": "string" + }, + "key": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "createRequest": { + "properties": { + "conferenceSolutionKey": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "requestId": { + "type": "string" + }, + "status": { + "properties": { + "statusCode": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "entryPoints": { + "items": { + "properties": { + "accessCode": { + "type": "string" + }, + "entryPointFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entryPointType": { + "type": "string" + }, + "label": { + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "passcode": { + "type": "string" + }, + "password": { + "type": "string" + }, + "pin": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parameters": { + "properties": { + "addOnParameters": { + "properties": { + "parameters": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "signature": { + "type": "string" + } + }, + "type": "object" + }, + "created": { + "type": "string" + }, + "creator": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "end": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "endTimeUnspecified": { + "type": "boolean" + }, + "etag": { + "type": "string" + }, + "eventLabelId": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "extendedProperties": { + "properties": { + "private": { + "type": "object" + }, + "shared": { + "type": "object" + } + }, + "type": "object" + }, + "focusTimeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "chatStatus": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "gadget": { + "properties": { + "display": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "iconLink": { + "type": "string" + }, + "link": { + "type": "string" + }, + "preferences": { + "type": "object" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "guestsCanInviteOthers": { + "type": "boolean" + }, + "guestsCanModify": { + "type": "boolean" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean" + }, + "hangoutLink": { + "type": "string" + }, + "htmlLink": { + "type": "string" + }, + "iCalUID": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "organizer": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "originalStartTime": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "outOfOfficeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "privateCopy": { + "type": "boolean" + }, + "recurrence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recurringEventId": { + "type": "string" + }, + "reminders": { + "properties": { + "overrides": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "useDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "sequence": { + "type": "integer" + }, + "source": { + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "start": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "transparency": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "workingLocationProperties": { + "properties": { + "customLocation": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "type": "any" + }, + "officeLocation": { + "properties": { + "buildingId": { + "type": "string" + }, + "deskId": { + "type": "string" + }, + "floorId": { + "type": "string" + }, + "floorSectionId": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.events.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Event object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Event: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "anyoneCanAddSelf": { + "type": "boolean" + }, + "attachments": { + "items": { + "properties": { + "fileId": { + "type": "string" + }, + "fileUrl": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendees": { + "items": { + "properties": { + "additionalGuests": { + "type": "integer" + }, + "asyncOperation": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "organizer": { + "type": "boolean" + }, + "resource": { + "type": "boolean" + }, + "responseStatus": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendeesOmitted": { + "type": "boolean" + }, + "birthdayProperties": { + "properties": { + "contact": { + "type": "string" + }, + "customTypeName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "colorId": { + "type": "string" + }, + "conferenceData": { + "properties": { + "conferenceId": { + "type": "string" + }, + "conferenceSolution": { + "properties": { + "iconUri": { + "type": "string" + }, + "key": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "createRequest": { + "properties": { + "conferenceSolutionKey": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "requestId": { + "type": "string" + }, + "status": { + "properties": { + "statusCode": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "entryPoints": { + "items": { + "properties": { + "accessCode": { + "type": "string" + }, + "entryPointFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entryPointType": { + "type": "string" + }, + "label": { + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "passcode": { + "type": "string" + }, + "password": { + "type": "string" + }, + "pin": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parameters": { + "properties": { + "addOnParameters": { + "properties": { + "parameters": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "signature": { + "type": "string" + } + }, + "type": "object" + }, + "created": { + "type": "string" + }, + "creator": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "end": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "endTimeUnspecified": { + "type": "boolean" + }, + "etag": { + "type": "string" + }, + "eventLabelId": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "extendedProperties": { + "properties": { + "private": { + "type": "object" + }, + "shared": { + "type": "object" + } + }, + "type": "object" + }, + "focusTimeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "chatStatus": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "gadget": { + "properties": { + "display": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "iconLink": { + "type": "string" + }, + "link": { + "type": "string" + }, + "preferences": { + "type": "object" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "guestsCanInviteOthers": { + "type": "boolean" + }, + "guestsCanModify": { + "type": "boolean" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean" + }, + "hangoutLink": { + "type": "string" + }, + "htmlLink": { + "type": "string" + }, + "iCalUID": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "organizer": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "originalStartTime": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "outOfOfficeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "privateCopy": { + "type": "boolean" + }, + "recurrence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recurringEventId": { + "type": "string" + }, + "reminders": { + "properties": { + "overrides": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "useDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "sequence": { + "type": "integer" + }, + "source": { + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "start": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "transparency": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "workingLocationProperties": { + "properties": { + "customLocation": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "type": "any" + }, + "officeLocation": { + "properties": { + "buildingId": { + "type": "string" + }, + "deskId": { + "type": "string" + }, + "floorId": { + "type": "string" + }, + "floorSectionId": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.events.watch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.freebusy.query2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON FreeBusyRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type FreeBusyRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "calendarExpansionMax": { + "type": "integer" + }, + "groupExpansionMax": { + "type": "integer" + }, + "items": { + "items": { + "properties": { + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "timeMax": { + "type": "string" + }, + "timeMin": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.settings.watch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.customEmojis.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CustomEmoji object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CustomEmoji: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "properties": { + "fileContent": { + "type": "string" + }, + "filename": { + "type": "string" + } + }, + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.media.upload2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON UploadAttachmentRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type UploadAttachmentRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "filename": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.completeImport2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CompleteImportSpaceRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CompleteImportSpaceRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "type": "object" +}
- Changed
chat.spaces.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Space object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Space: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "joinSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "viewSpaceMembershipSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.members.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Membership object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Membership: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "member": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.members.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Membership object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Membership: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "member": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.messagePins.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON MessagePin object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type MessagePin: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "message": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Message object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Message: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "accessoryWidgets": { + "items": { + "properties": { + "buttonList": { + "properties": { + "buttons": { + "items": { + "properties": { + "altText": { + "type": "string" + }, + "color": { + "type": "object" + }, + "disabled": { + "type": "boolean" + }, + "icon": { + "type": "object" + }, + "onClick": { + "type": "object" + }, + "text": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLINED", + "FILLED", + "FILLED_TONAL", + "BORDERLESS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "properties": { + "dialogAction": { + "properties": { + "actionStatus": { + "properties": { + "statusCode": { + "enum": [ + "OK", + "CANCELLED", + "UNKNOWN", + "INVALID_ARGUMENT", + "DEADLINE_EXCEEDED", + "NOT_FOUND", + "ALREADY_EXISTS", + "PERMISSION_DENIED", + "UNAUTHENTICATED", + "RESOURCE_EXHAUSTED", + "FAILED_PRECONDITION", + "ABORTED", + "OUT_OF_RANGE", + "UNIMPLEMENTED", + "INTERNAL", + "UNAVAILABLE", + "DATA_LOSS" + ], + "type": "string" + }, + "userFacingMessage": { + "type": "string" + } + }, + "type": "object" + }, + "dialog": { + "properties": { + "body": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "NEW_MESSAGE", + "UPDATE_MESSAGE", + "UPDATE_USER_MESSAGE_CARDS", + "REQUEST_CONFIG", + "DIALOG", + "UPDATE_WIDGET" + ], + "type": "string" + }, + "updatedWidget": { + "properties": { + "suggestions": { + "properties": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "widget": { + "type": "string" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "properties": { + "calendarEventLinkData": { + "properties": { + "calendarId": { + "type": "string" + }, + "eventId": { + "type": "string" + } + }, + "type": "object" + }, + "chatSpaceLinkData": { + "properties": { + "message": { + "type": "string" + }, + "space": { + "type": "string" + }, + "thread": { + "type": "string" + } + }, + "type": "object" + }, + "driveLinkData": { + "properties": { + "driveDataRef": { + "type": "object" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + }, + "meetSpaceLinkData": { + "properties": { + "huddleStatus": { + "enum": [ + "HUDDLE_STATUS_UNSPECIFIED", + "STARTED", + "ENDED", + "MISSED" + ], + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "MEETING", + "HUDDLE" + ], + "type": "string" + } + }, + "type": "object" + }, + "richLinkType": { + "enum": [ + "RICH_LINK_TYPE_UNSPECIFIED", + "DRIVE_FILE", + "CHAT_SPACE", + "GMAIL_MESSAGE", + "MEET_SPACE", + "CALENDAR_EVENT" + ], + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "slashCommand": { + "properties": { + "bot": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "commandId": { + "type": "string" + }, + "commandName": { + "type": "string" + }, + "triggersDialog": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "INVOKE" + ], + "type": "string" + } + }, + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "properties": { + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "MENTION" + ], + "type": "string" + }, + "user": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "properties": { + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "properties": { + "attachmentDataRef": { + "properties": { + "attachmentUploadToken": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "properties": { + "driveFileId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "properties": { + "action": { + "type": "object" + }, + "openLink": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "header": { + "properties": { + "imageStyle": { + "enum": [ + "IMAGE_STYLE_UNSPECIFIED", + "IMAGE", + "AVATAR" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "sections": { + "items": { + "properties": { + "header": { + "type": "string" + }, + "widgets": { + "items": { + "properties": { + "buttons": { + "items": { + "type": "object" + }, + "type": "array" + }, + "image": { + "type": "object" + }, + "keyValue": { + "type": "object" + }, + "textParagraph": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "properties": { + "card": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "displayStyle": { + "enum": [ + "DISPLAY_STYLE_UNSPECIFIED", + "PEEK", + "REPLACE" + ], + "type": "string" + }, + "expressionData": { + "items": { + "properties": { + "conditions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "eventActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "expression": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fixedFooter": { + "properties": { + "primaryButton": { + "type": "object" + }, + "secondaryButton": { + "type": "object" + } + }, + "type": "object" + }, + "header": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "peekCardHeader": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sectionDividerStyle": { + "enum": [ + "DIVIDER_STYLE_UNSPECIFIED", + "SOLID_DIVIDER", + "NO_DIVIDER" + ], + "type": "string" + }, + "sections": { + "items": { + "properties": { + "collapseControl": { + "type": "object" + }, + "collapsible": { + "type": "boolean" + }, + "header": { + "type": "string" + }, + "id": { + "type": "string" + }, + "uncollapsibleWidgetsCount": { + "type": "integer" + }, + "widgets": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "cardId": { + "type": "string" + }, + "ownerUser": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "properties": { + "deletionType": { + "enum": [ + "DELETION_TYPE_UNSPECIFIED", + "CREATOR", + "SPACE_OWNER", + "ADMIN", + "APP_MESSAGE_EXPIRY", + "CREATOR_VIA_APP", + "SPACE_OWNER_VIA_APP", + "SPACE_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "reactionCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "properties": { + "url": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "quotedMessageMetadata": { + "properties": { + "forwardedMetadata": { + "properties": { + "space": { + "type": "string" + }, + "spaceDisplayName": { + "type": "string" + } + }, + "type": "object" + }, + "lastUpdateTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quoteType": { + "enum": [ + "QUOTE_TYPE_UNSPECIFIED", + "REPLY", + "FORWARD" + ], + "type": "string" + }, + "quotedMessageSnapshot": { + "properties": { + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "type": "object" + }, + "slashCommand": { + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachments": { + "items": { + "properties": { + "attachmentDataRef": { + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "formattedText": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "sender": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "properties": { + "commandId": { + "type": "string" + } + }, + "type": "object" + }, + "space": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "type": "object" + }, + "joinSpaceSetting": { + "type": "object" + }, + "viewSpaceMembershipSetting": { + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "properties": { + "name": { + "type": "string" + }, + "threadKey": { + "type": "string" + } + }, + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Message object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Message: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "accessoryWidgets": { + "items": { + "properties": { + "buttonList": { + "properties": { + "buttons": { + "items": { + "properties": { + "altText": { + "type": "string" + }, + "color": { + "type": "object" + }, + "disabled": { + "type": "boolean" + }, + "icon": { + "type": "object" + }, + "onClick": { + "type": "object" + }, + "text": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLINED", + "FILLED", + "FILLED_TONAL", + "BORDERLESS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "properties": { + "dialogAction": { + "properties": { + "actionStatus": { + "properties": { + "statusCode": { + "enum": [ + "OK", + "CANCELLED", + "UNKNOWN", + "INVALID_ARGUMENT", + "DEADLINE_EXCEEDED", + "NOT_FOUND", + "ALREADY_EXISTS", + "PERMISSION_DENIED", + "UNAUTHENTICATED", + "RESOURCE_EXHAUSTED", + "FAILED_PRECONDITION", + "ABORTED", + "OUT_OF_RANGE", + "UNIMPLEMENTED", + "INTERNAL", + "UNAVAILABLE", + "DATA_LOSS" + ], + "type": "string" + }, + "userFacingMessage": { + "type": "string" + } + }, + "type": "object" + }, + "dialog": { + "properties": { + "body": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "NEW_MESSAGE", + "UPDATE_MESSAGE", + "UPDATE_USER_MESSAGE_CARDS", + "REQUEST_CONFIG", + "DIALOG", + "UPDATE_WIDGET" + ], + "type": "string" + }, + "updatedWidget": { + "properties": { + "suggestions": { + "properties": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "widget": { + "type": "string" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "properties": { + "calendarEventLinkData": { + "properties": { + "calendarId": { + "type": "string" + }, + "eventId": { + "type": "string" + } + }, + "type": "object" + }, + "chatSpaceLinkData": { + "properties": { + "message": { + "type": "string" + }, + "space": { + "type": "string" + }, + "thread": { + "type": "string" + } + }, + "type": "object" + }, + "driveLinkData": { + "properties": { + "driveDataRef": { + "type": "object" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + }, + "meetSpaceLinkData": { + "properties": { + "huddleStatus": { + "enum": [ + "HUDDLE_STATUS_UNSPECIFIED", + "STARTED", + "ENDED", + "MISSED" + ], + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "MEETING", + "HUDDLE" + ], + "type": "string" + } + }, + "type": "object" + }, + "richLinkType": { + "enum": [ + "RICH_LINK_TYPE_UNSPECIFIED", + "DRIVE_FILE", + "CHAT_SPACE", + "GMAIL_MESSAGE", + "MEET_SPACE", + "CALENDAR_EVENT" + ], + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "slashCommand": { + "properties": { + "bot": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "commandId": { + "type": "string" + }, + "commandName": { + "type": "string" + }, + "triggersDialog": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "INVOKE" + ], + "type": "string" + } + }, + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "properties": { + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "MENTION" + ], + "type": "string" + }, + "user": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "properties": { + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "properties": { + "attachmentDataRef": { + "properties": { + "attachmentUploadToken": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "properties": { + "driveFileId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "properties": { + "action": { + "type": "object" + }, + "openLink": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "header": { + "properties": { + "imageStyle": { + "enum": [ + "IMAGE_STYLE_UNSPECIFIED", + "IMAGE", + "AVATAR" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "sections": { + "items": { + "properties": { + "header": { + "type": "string" + }, + "widgets": { + "items": { + "properties": { + "buttons": { + "items": { + "type": "object" + }, + "type": "array" + }, + "image": { + "type": "object" + }, + "keyValue": { + "type": "object" + }, + "textParagraph": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "properties": { + "card": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "displayStyle": { + "enum": [ + "DISPLAY_STYLE_UNSPECIFIED", + "PEEK", + "REPLACE" + ], + "type": "string" + }, + "expressionData": { + "items": { + "properties": { + "conditions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "eventActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "expression": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fixedFooter": { + "properties": { + "primaryButton": { + "type": "object" + }, + "secondaryButton": { + "type": "object" + } + }, + "type": "object" + }, + "header": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "peekCardHeader": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sectionDividerStyle": { + "enum": [ + "DIVIDER_STYLE_UNSPECIFIED", + "SOLID_DIVIDER", + "NO_DIVIDER" + ], + "type": "string" + }, + "sections": { + "items": { + "properties": { + "collapseControl": { + "type": "object" + }, + "collapsible": { + "type": "boolean" + }, + "header": { + "type": "string" + }, + "id": { + "type": "string" + }, + "uncollapsibleWidgetsCount": { + "type": "integer" + }, + "widgets": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "cardId": { + "type": "string" + }, + "ownerUser": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "properties": { + "deletionType": { + "enum": [ + "DELETION_TYPE_UNSPECIFIED", + "CREATOR", + "SPACE_OWNER", + "ADMIN", + "APP_MESSAGE_EXPIRY", + "CREATOR_VIA_APP", + "SPACE_OWNER_VIA_APP", + "SPACE_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "reactionCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "properties": { + "url": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "quotedMessageMetadata": { + "properties": { + "forwardedMetadata": { + "properties": { + "space": { + "type": "string" + }, + "spaceDisplayName": { + "type": "string" + } + }, + "type": "object" + }, + "lastUpdateTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quoteType": { + "enum": [ + "QUOTE_TYPE_UNSPECIFIED", + "REPLY", + "FORWARD" + ], + "type": "string" + }, + "quotedMessageSnapshot": { + "properties": { + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "type": "object" + }, + "slashCommand": { + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachments": { + "items": { + "properties": { + "attachmentDataRef": { + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "formattedText": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "sender": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "properties": { + "commandId": { + "type": "string" + } + }, + "type": "object" + }, + "space": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "type": "object" + }, + "joinSpaceSetting": { + "type": "object" + }, + "viewSpaceMembershipSetting": { + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "properties": { + "name": { + "type": "string" + }, + "threadKey": { + "type": "string" + } + }, + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.reactions.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Reaction object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Reaction: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "properties": { + "fileContent": { + "type": "string" + }, + "filename": { + "type": "string" + } + }, + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "user": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.replaceCards2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ReplaceMessageCardsRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ReplaceMessageCardsRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "cardsV2": { + "items": { + "properties": { + "card": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "displayStyle": { + "enum": [ + "DISPLAY_STYLE_UNSPECIFIED", + "PEEK", + "REPLACE" + ], + "type": "string" + }, + "expressionData": { + "items": { + "properties": { + "conditions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "eventActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "expression": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fixedFooter": { + "properties": { + "primaryButton": { + "type": "object" + }, + "secondaryButton": { + "type": "object" + } + }, + "type": "object" + }, + "header": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "peekCardHeader": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sectionDividerStyle": { + "enum": [ + "DIVIDER_STYLE_UNSPECIFIED", + "SOLID_DIVIDER", + "NO_DIVIDER" + ], + "type": "string" + }, + "sections": { + "items": { + "properties": { + "collapseControl": { + "type": "object" + }, + "collapsible": { + "type": "boolean" + }, + "header": { + "type": "string" + }, + "id": { + "type": "string" + }, + "uncollapsibleWidgetsCount": { + "type": "integer" + }, + "widgets": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "cardId": { + "type": "string" + }, + "ownerUser": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.search2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SearchMessagesRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type SearchMessagesRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "filter": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "orderBy": { + "type": "string" + }, + "pageSize": { + "type": "integer" + }, + "pageToken": { + "type": "string" + }, + "view": { + "enum": [ + "SEARCH_MESSAGES_VIEW_UNSPECIFIED", + "SEARCH_MESSAGES_VIEW_BASIC", + "SEARCH_MESSAGES_VIEW_FULL" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Message object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Message: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "accessoryWidgets": { + "items": { + "properties": { + "buttonList": { + "properties": { + "buttons": { + "items": { + "properties": { + "altText": { + "type": "string" + }, + "color": { + "type": "object" + }, + "disabled": { + "type": "boolean" + }, + "icon": { + "type": "object" + }, + "onClick": { + "type": "object" + }, + "text": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLINED", + "FILLED", + "FILLED_TONAL", + "BORDERLESS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "properties": { + "dialogAction": { + "properties": { + "actionStatus": { + "properties": { + "statusCode": { + "enum": [ + "OK", + "CANCELLED", + "UNKNOWN", + "INVALID_ARGUMENT", + "DEADLINE_EXCEEDED", + "NOT_FOUND", + "ALREADY_EXISTS", + "PERMISSION_DENIED", + "UNAUTHENTICATED", + "RESOURCE_EXHAUSTED", + "FAILED_PRECONDITION", + "ABORTED", + "OUT_OF_RANGE", + "UNIMPLEMENTED", + "INTERNAL", + "UNAVAILABLE", + "DATA_LOSS" + ], + "type": "string" + }, + "userFacingMessage": { + "type": "string" + } + }, + "type": "object" + }, + "dialog": { + "properties": { + "body": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "NEW_MESSAGE", + "UPDATE_MESSAGE", + "UPDATE_USER_MESSAGE_CARDS", + "REQUEST_CONFIG", + "DIALOG", + "UPDATE_WIDGET" + ], + "type": "string" + }, + "updatedWidget": { + "properties": { + "suggestions": { + "properties": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "widget": { + "type": "string" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "properties": { + "calendarEventLinkData": { + "properties": { + "calendarId": { + "type": "string" + }, + "eventId": { + "type": "string" + } + }, + "type": "object" + }, + "chatSpaceLinkData": { + "properties": { + "message": { + "type": "string" + }, + "space": { + "type": "string" + }, + "thread": { + "type": "string" + } + }, + "type": "object" + }, + "driveLinkData": { + "properties": { + "driveDataRef": { + "type": "object" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + }, + "meetSpaceLinkData": { + "properties": { + "huddleStatus": { + "enum": [ + "HUDDLE_STATUS_UNSPECIFIED", + "STARTED", + "ENDED", + "MISSED" + ], + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "MEETING", + "HUDDLE" + ], + "type": "string" + } + }, + "type": "object" + }, + "richLinkType": { + "enum": [ + "RICH_LINK_TYPE_UNSPECIFIED", + "DRIVE_FILE", + "CHAT_SPACE", + "GMAIL_MESSAGE", + "MEET_SPACE", + "CALENDAR_EVENT" + ], + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "slashCommand": { + "properties": { + "bot": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "commandId": { + "type": "string" + }, + "commandName": { + "type": "string" + }, + "triggersDialog": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "INVOKE" + ], + "type": "string" + } + }, + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "properties": { + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "MENTION" + ], + "type": "string" + }, + "user": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "properties": { + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "properties": { + "attachmentDataRef": { + "properties": { + "attachmentUploadToken": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "properties": { + "driveFileId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "properties": { + "action": { + "type": "object" + }, + "openLink": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "header": { + "properties": { + "imageStyle": { + "enum": [ + "IMAGE_STYLE_UNSPECIFIED", + "IMAGE", + "AVATAR" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "sections": { + "items": { + "properties": { + "header": { + "type": "string" + }, + "widgets": { + "items": { + "properties": { + "buttons": { + "items": { + "type": "object" + }, + "type": "array" + }, + "image": { + "type": "object" + }, + "keyValue": { + "type": "object" + }, + "textParagraph": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "properties": { + "card": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "displayStyle": { + "enum": [ + "DISPLAY_STYLE_UNSPECIFIED", + "PEEK", + "REPLACE" + ], + "type": "string" + }, + "expressionData": { + "items": { + "properties": { + "conditions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "eventActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "expression": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fixedFooter": { + "properties": { + "primaryButton": { + "type": "object" + }, + "secondaryButton": { + "type": "object" + } + }, + "type": "object" + }, + "header": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "peekCardHeader": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sectionDividerStyle": { + "enum": [ + "DIVIDER_STYLE_UNSPECIFIED", + "SOLID_DIVIDER", + "NO_DIVIDER" + ], + "type": "string" + }, + "sections": { + "items": { + "properties": { + "collapseControl": { + "type": "object" + }, + "collapsible": { + "type": "boolean" + }, + "header": { + "type": "string" + }, + "id": { + "type": "string" + }, + "uncollapsibleWidgetsCount": { + "type": "integer" + }, + "widgets": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "cardId": { + "type": "string" + }, + "ownerUser": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "properties": { + "deletionType": { + "enum": [ + "DELETION_TYPE_UNSPECIFIED", + "CREATOR", + "SPACE_OWNER", + "ADMIN", + "APP_MESSAGE_EXPIRY", + "CREATOR_VIA_APP", + "SPACE_OWNER_VIA_APP", + "SPACE_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "reactionCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "properties": { + "url": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "quotedMessageMetadata": { + "properties": { + "forwardedMetadata": { + "properties": { + "space": { + "type": "string" + }, + "spaceDisplayName": { + "type": "string" + } + }, + "type": "object" + }, + "lastUpdateTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quoteType": { + "enum": [ + "QUOTE_TYPE_UNSPECIFIED", + "REPLY", + "FORWARD" + ], + "type": "string" + }, + "quotedMessageSnapshot": { + "properties": { + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "type": "object" + }, + "slashCommand": { + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachments": { + "items": { + "properties": { + "attachmentDataRef": { + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "formattedText": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "sender": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "properties": { + "commandId": { + "type": "string" + } + }, + "type": "object" + }, + "space": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "type": "object" + }, + "joinSpaceSetting": { + "type": "object" + }, + "viewSpaceMembershipSetting": { + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "properties": { + "name": { + "type": "string" + }, + "threadKey": { + "type": "string" + } + }, + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
chat.spaces.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Space object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Space: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "joinSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "viewSpaceMembershipSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.setup2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SetUpSpaceRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type SetUpSpaceRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "memberships": { + "items": { + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "member": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "requestId": { + "type": "string" + }, + "space": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "type": "object" + }, + "joinSpaceSetting": { + "type": "object" + }, + "viewSpaceMembershipSetting": { + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
chat.users.availability.markAsActive2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON MarkAsActiveRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type MarkAsActiveRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "expireTime": { + "type": "string" + }, + "ttl": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.availability.markAsAway2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON MarkAsAwayRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type MarkAsAwayRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "type": "object" +}
- Changed
chat.users.availability.markAsDoNotDisturb2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON MarkAsDoNotDisturbRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type MarkAsDoNotDisturbRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "expireTime": { + "type": "string" + }, + "ttl": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.availability.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Availability object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Availability: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "customStatus": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "expireTime": { + "type": "string" + }, + "text": { + "type": "string" + }, + "ttl": { + "type": "string" + } + }, + "type": "object" + }, + "doNotDisturbMetadata": { + "properties": { + "expirationTime": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "IDLE", + "AWAY", + "DO_NOT_DISTURB" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.sections.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleChatV1Section object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleChatV1Section: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sortOrder": { + "type": "integer" + }, + "type": { + "enum": [ + "SECTION_TYPE_UNSPECIFIED", + "CUSTOM_SECTION", + "DEFAULT_DIRECT_MESSAGES", + "DEFAULT_SPACES", + "DEFAULT_APPS" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.sections.items.move2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON MoveSectionItemRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type MoveSectionItemRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "targetSection": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.sections.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GoogleChatV1Section object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GoogleChatV1Section: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sortOrder": { + "type": "integer" + }, + "type": { + "enum": [ + "SECTION_TYPE_UNSPECIFIED", + "CUSTOM_SECTION", + "DEFAULT_DIRECT_MESSAGES", + "DEFAULT_SPACES", + "DEFAULT_APPS" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.sections.position2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON PositionSectionRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type PositionSectionRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "relativePosition": { + "enum": [ + "POSITION_UNSPECIFIED", + "START", + "END" + ], + "type": "string" + }, + "sortOrder": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
chat.users.spaces.spaceNotificationSetting.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SpaceNotificationSetting object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type SpaceNotificationSetting: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "muteSetting": { + "enum": [ + "MUTE_SETTING_UNSPECIFIED", + "UNMUTED", + "MUTED" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "notificationSetting": { + "enum": [ + "NOTIFICATION_SETTING_UNSPECIFIED", + "ALL", + "MAIN_CONVERSATIONS", + "FOR_YOU", + "OFF" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.spaces.updateSpaceReadState2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SpaceReadState object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type SpaceReadState: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "lastReadTime": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
docs.documents.batchUpdate2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdateDocumentRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchUpdateDocumentRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "requests": { + "items": { + "properties": { + "acceptSuggestion": { + "properties": { + "suggestionId": { + "type": "string" + } + }, + "type": "object" + }, + "addCommentReply": { + "properties": { + "commentId": { + "type": "string" + }, + "post": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "suggestionId": { + "type": "string" + } + }, + "type": "object" + }, + "addDocumentTab": { + "properties": { + "tabProperties": { + "properties": { + "iconEmoji": { + "type": "string" + }, + "index": { + "type": "integer" + }, + "nestingLevel": { + "type": "integer" + }, + "parentTabId": { + "type": "string" + }, + "tabId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "createDropdownDefinition": { + "properties": { + "dropdownDefinition": { + "properties": { + "dropdownDefinitionId": { + "type": "string" + }, + "dropdownDefinitionProperties": { + "type": "object" + }, + "suggestedDeletionId": { + "type": "string" + }, + "suggestedDropdownDefinitionPropertiesChanges": { + "type": "object" + }, + "suggestedInsertionId": { + "type": "string" + } + }, + "type": "object" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "createFooter": { + "properties": { + "sectionBreakLocation": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "HEADER_FOOTER_TYPE_UNSPECIFIED", + "DEFAULT" + ], + "type": "string" + } + }, + "type": "object" + }, + "createFootnote": { + "properties": { + "endOfSegmentLocation": { + "properties": { + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "location": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "createHeader": { + "properties": { + "sectionBreakLocation": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "HEADER_FOOTER_TYPE_UNSPECIFIED", + "DEFAULT" + ], + "type": "string" + } + }, + "type": "object" + }, + "createNamedRange": { + "properties": { + "name": { + "type": "string" + }, + "range": { + "properties": { + "endIndex": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "startIndex": { + "type": "integer" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "createParagraphBullets": { + "properties": { + "bulletPreset": { + "enum": [ + "BULLET_GLYPH_PRESET_UNSPECIFIED", + "BULLET_DISC_CIRCLE_SQUARE", + "BULLET_DIAMONDX_ARROW3D_SQUARE", + "BULLET_CHECKBOX", + "BULLET_ARROW_DIAMOND_DISC", + "BULLET_STAR_CIRCLE_SQUARE", + "BULLET_ARROW3D_CIRCLE_SQUARE", + "BULLET_LEFTTRIANGLE_DIAMOND_DISC", + "BULLET_DIAMONDX_HOLLOWDIAMOND_SQUARE", + "BULLET_DIAMOND_CIRCLE_SQUARE", + "NUMBERED_DECIMAL_ALPHA_ROMAN", + "NUMBERED_DECIMAL_ALPHA_ROMAN_PARENS", + "NUMBERED_DECIMAL_NESTED", + "NUMBERED_UPPERALPHA_ALPHA_ROMAN", + "NUMBERED_UPPERROMAN_UPPERALPHA_DECIMAL", + "NUMBERED_ZERODECIMAL_ALPHA_ROMAN" + ], + "type": "string" + }, + "range": { + "properties": { + "endIndex": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "startIndex": { + "type": "integer" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deleteComment": { + "properties": { + "commentId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteCommentReply": { + "properties": { + "commentId": { + "type": "string" + }, + "postId": { + "type": "string" + }, + "suggestionId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteContentRange": { + "properties": { + "range": { + "properties": { + "endIndex": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "startIndex": { + "type": "integer" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deleteDropdownDefinition": { + "properties": { + "dropdownDefinitionId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteFooter": { + "properties": { + "footerId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteHeader": { + "properties": { + "headerId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteNamedRange": { + "properties": { + "name": { + "type": "string" + }, + "namedRangeId": { + "type": "string" + }, + "tabsCriteria": { + "properties": { + "tabIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deleteParagraphBullets": { + "properties": { + "range": { + "properties": { + "endIndex": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "startIndex": { + "type": "integer" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deletePositionedObject": { + "properties": { + "objectId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteSuggestion": { + "properties": { + "suggestionId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteTab": { + "properties": { + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteTableColumn": { + "properties": { + "tableCellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + }, + "tableStartLocation": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deleteTableRow": { + "properties": { + "tableCellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + }, + "tableStartLocation": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "insertComment": { + "properties": { + "assigneeEmailAddress": { + "type": "string" + }, + "content": { + "type": "string" + }, + "range": { + "properties": { + "endIndex": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "startIndex": { + "type": "integer" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "insertDate": { + "properties": { + "dateElementProperties": { + "properties": { + "dateFormat": { + "enum": [ + "DATE_FORMAT_UNSPECIFIED", + "DATE_FORMAT_CUSTOM", + "DATE_FORMAT_MONTH_DAY_ABBREVIATED", + "DATE_FORMAT_MONTH_DAY_FULL", + "DATE_FORMAT_MONTH_DAY_YEAR_ABBREVIATED", + "DATE_FORMAT_ISO8601" + ], + "type": "string" + }, + "displayText": { + "type": "string" + }, + "locale": { + "type": "string" + }, + "timeFormat": { + "enum": [ + "TIME_FORMAT_UNSPECIFIED", + "TIME_FORMAT_DISABLED", + "TIME_FORMAT_HOUR_MINUTE", + "TIME_FORMAT_HOUR_MINUTE_TIMEZONE" + ], + "type": "string" + }, + "timeZoneId": { + "type": "string" + }, + "timestamp": { + "type": "string" + } + }, + "type": "object" + }, + "endOfSegmentLocation": { + "properties": { + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "location": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "insertDropdown": { + "properties": { + "dropdownDefinitionId": { + "type": "string" + }, + "endOfSegmentLocation": { + "properties": { + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "location": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "selectedOptionId": { + "type": "string" + } + }, + "type": "object" + }, + "insertInlineImage": { + "properties": { + "endOfSegmentLocation": { + "properties": { + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "location": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "objectSize": { + "properties": { + "height": { + "type": "object" + }, + "width": { + "type": "object" + } + }, + "type": "object" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "insertPageBreak": { + "properties": { + "endOfSegmentLocation": { + "properties": { + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "location": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "insertPerson": { + "properties": { + "endOfSegmentLocation": { + "properties": { + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "location": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "personProperties": { + "properties": { + "email": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "insertRichLink": { + "properties": { + "endOfSegmentLocation": { + "properties": { + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "location": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "richLinkProperties": { + "properties": { + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "insertSectionBreak": { + "properties": { + "endOfSegmentLocation": { + "properties": { + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "location": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "sectionType": { + "enum": [ + "SECTION_TYPE_UNSPECIFIED", + "CONTINUOUS", + "NEXT_PAGE" + ], + "type": "string" + } + }, + "type": "object" + }, + "insertTable": { + "properties": { + "columns": { + "type": "integer" + }, + "endOfSegmentLocation": { + "properties": { + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "location": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "rows": { + "type": "integer" + } + }, + "type": "object" + }, + "insertTableColumn": { + "properties": { + "insertRight": { + "type": "boolean" + }, + "tableCellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + }, + "tableStartLocation": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "insertTableRow": { + "properties": { + "insertBelow": { + "type": "boolean" + }, + "tableCellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + }, + "tableStartLocation": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "insertText": { + "properties": { + "endOfSegmentLocation": { + "properties": { + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "location": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "mergeTableCells": { + "properties": { + "tableRange": { + "properties": { + "columnSpan": { + "type": "integer" + }, + "rowSpan": { + "type": "integer" + }, + "tableCellLocation": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pinTableHeaderRows": { + "properties": { + "pinnedHeaderRowsCount": { + "type": "integer" + }, + "tableStartLocation": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "rejectSuggestion": { + "properties": { + "suggestionId": { + "type": "string" + } + }, + "type": "object" + }, + "replaceAllText": { + "properties": { + "containsText": { + "properties": { + "matchCase": { + "type": "boolean" + }, + "searchByRegex": { + "type": "boolean" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "replaceText": { + "type": "string" + }, + "tabsCriteria": { + "properties": { + "tabIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "replaceImage": { + "properties": { + "imageObjectId": { + "type": "string" + }, + "imageReplaceMethod": { + "enum": [ + "IMAGE_REPLACE_METHOD_UNSPECIFIED", + "CENTER_CROP" + ], + "type": "string" + }, + "tabId": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "replaceNamedRangeContent": { + "properties": { + "namedRangeId": { + "type": "string" + }, + "namedRangeName": { + "type": "string" + }, + "tabsCriteria": { + "properties": { + "tabIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "unmergeTableCells": { + "properties": { + "tableRange": { + "properties": { + "columnSpan": { + "type": "integer" + }, + "rowSpan": { + "type": "integer" + }, + "tableCellLocation": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateCommentPost": { + "properties": { + "commentId": { + "type": "string" + }, + "content": { + "type": "string" + }, + "postId": { + "type": "string" + }, + "suggestionId": { + "type": "string" + } + }, + "type": "object" + }, + "updateDocumentStyle": { + "properties": { + "documentStyle": { + "properties": { + "background": { + "type": "object" + }, + "defaultFooterId": { + "type": "string" + }, + "defaultHeaderId": { + "type": "string" + }, + "documentFormat": { + "type": "object" + }, + "evenPageFooterId": { + "type": "string" + }, + "evenPageHeaderId": { + "type": "string" + }, + "firstPageFooterId": { + "type": "string" + }, + "firstPageHeaderId": { + "type": "string" + }, + "flipPageOrientation": { + "type": "boolean" + }, + "marginBottom": { + "type": "object" + }, + "marginFooter": { + "type": "object" + }, + "marginHeader": { + "type": "object" + }, + "marginLeft": { + "type": "object" + }, + "marginRight": { + "type": "object" + }, + "marginTop": { + "type": "object" + }, + "pageNumberStart": { + "type": "integer" + }, + "pageSize": { + "type": "object" + }, + "useCustomHeaderFooterMargins": { + "type": "boolean" + }, + "useEvenPageHeaderFooter": { + "type": "boolean" + }, + "useFirstPageHeaderFooter": { + "type": "boolean" + } + }, + "type": "object" + }, + "fields": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "updateDocumentTabProperties": { + "properties": { + "fields": { + "type": "string" + }, + "tabProperties": { + "properties": { + "iconEmoji": { + "type": "string" + }, + "index": { + "type": "integer" + }, + "nestingLevel": { + "type": "integer" + }, + "parentTabId": { + "type": "string" + }, + "tabId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateDropdownDefinitionProperties": { + "properties": { + "dropdownDefinitionId": { + "type": "string" + }, + "dropdownDefinitionProperties": { + "properties": { + "options": { + "items": { + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "fields": { + "type": "string" + }, + "selectedOptionIdReplacements": { + "type": "object" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "updateDropdownProperties": { + "properties": { + "dropdownId": { + "type": "string" + }, + "dropdownProperties": { + "properties": { + "displayValue": { + "type": "string" + }, + "dropdownDefinitionId": { + "type": "string" + }, + "selectedOptionId": { + "type": "string" + } + }, + "type": "object" + }, + "fields": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "updateNamedStyle": { + "properties": { + "fields": { + "type": "string" + }, + "namedStyle": { + "properties": { + "namedStyleType": { + "enum": [ + "NAMED_STYLE_TYPE_UNSPECIFIED", + "NORMAL_TEXT", + "TITLE", + "SUBTITLE", + "HEADING_1", + "HEADING_2", + "HEADING_3", + "HEADING_4", + "HEADING_5", + "HEADING_6" + ], + "type": "string" + }, + "paragraphStyle": { + "type": "object" + }, + "textStyle": { + "type": "object" + } + }, + "type": "object" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "updateParagraphStyle": { + "properties": { + "fields": { + "type": "string" + }, + "paragraphStyle": { + "properties": { + "alignment": { + "enum": [ + "ALIGNMENT_UNSPECIFIED", + "START", + "CENTER", + "END", + "JUSTIFIED" + ], + "type": "string" + }, + "avoidWidowAndOrphan": { + "type": "boolean" + }, + "borderBetween": { + "type": "object" + }, + "borderBottom": { + "type": "object" + }, + "borderLeft": { + "type": "object" + }, + "borderRight": { + "type": "object" + }, + "borderTop": { + "type": "object" + }, + "direction": { + "enum": [ + "CONTENT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "type": "string" + }, + "headingId": { + "type": "string" + }, + "indentEnd": { + "type": "object" + }, + "indentFirstLine": { + "type": "object" + }, + "indentStart": { + "type": "object" + }, + "keepLinesTogether": { + "type": "boolean" + }, + "keepWithNext": { + "type": "boolean" + }, + "lineSpacing": { + "type": "number" + }, + "namedStyleType": { + "enum": [ + "NAMED_STYLE_TYPE_UNSPECIFIED", + "NORMAL_TEXT", + "TITLE", + "SUBTITLE", + "HEADING_1", + "HEADING_2", + "HEADING_3", + "HEADING_4", + "HEADING_5", + "HEADING_6" + ], + "type": "string" + }, + "pageBreakBefore": { + "type": "boolean" + }, + "shading": { + "type": "object" + }, + "spaceAbove": { + "type": "object" + }, + "spaceBelow": { + "type": "object" + }, + "spacingMode": { + "enum": [ + "SPACING_MODE_UNSPECIFIED", + "NEVER_COLLAPSE", + "COLLAPSE_LISTS" + ], + "type": "string" + }, + "tabStops": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "range": { + "properties": { + "endIndex": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "startIndex": { + "type": "integer" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateSectionStyle": { + "properties": { + "fields": { + "type": "string" + }, + "range": { + "properties": { + "endIndex": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "startIndex": { + "type": "integer" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "sectionStyle": { + "properties": { + "columnProperties": { + "items": { + "type": "object" + }, + "type": "array" + }, + "columnSeparatorStyle": { + "enum": [ + "COLUMN_SEPARATOR_STYLE_UNSPECIFIED", + "NONE", + "BETWEEN_EACH_COLUMN" + ], + "type": "string" + }, + "contentDirection": { + "enum": [ + "CONTENT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "type": "string" + }, + "defaultFooterId": { + "type": "string" + }, + "defaultHeaderId": { + "type": "string" + }, + "evenPageFooterId": { + "type": "string" + }, + "evenPageHeaderId": { + "type": "string" + }, + "firstPageFooterId": { + "type": "string" + }, + "firstPageHeaderId": { + "type": "string" + }, + "flipPageOrientation": { + "type": "boolean" + }, + "marginBottom": { + "type": "object" + }, + "marginFooter": { + "type": "object" + }, + "marginHeader": { + "type": "object" + }, + "marginLeft": { + "type": "object" + }, + "marginRight": { + "type": "object" + }, + "marginTop": { + "type": "object" + }, + "pageNumberStart": { + "type": "integer" + }, + "sectionType": { + "enum": [ + "SECTION_TYPE_UNSPECIFIED", + "CONTINUOUS", + "NEXT_PAGE" + ], + "type": "string" + }, + "useFirstPageHeaderFooter": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateTableCellStyle": { + "properties": { + "fields": { + "type": "string" + }, + "tableCellStyle": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "borderBottom": { + "type": "object" + }, + "borderLeft": { + "type": "object" + }, + "borderRight": { + "type": "object" + }, + "borderTop": { + "type": "object" + }, + "columnSpan": { + "type": "integer" + }, + "contentAlignment": { + "enum": [ + "CONTENT_ALIGNMENT_UNSPECIFIED", + "CONTENT_ALIGNMENT_UNSUPPORTED", + "TOP", + "MIDDLE", + "BOTTOM" + ], + "type": "string" + }, + "paddingBottom": { + "type": "object" + }, + "paddingLeft": { + "type": "object" + }, + "paddingRight": { + "type": "object" + }, + "paddingTop": { + "type": "object" + }, + "rowSpan": { + "type": "integer" + } + }, + "type": "object" + }, + "tableRange": { + "properties": { + "columnSpan": { + "type": "integer" + }, + "rowSpan": { + "type": "integer" + }, + "tableCellLocation": { + "type": "object" + } + }, + "type": "object" + }, + "tableStartLocation": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateTableColumnProperties": { + "properties": { + "columnIndices": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "fields": { + "type": "string" + }, + "tableColumnProperties": { + "properties": { + "width": { + "type": "object" + }, + "widthType": { + "enum": [ + "WIDTH_TYPE_UNSPECIFIED", + "EVENLY_DISTRIBUTED", + "FIXED_WIDTH" + ], + "type": "string" + } + }, + "type": "object" + }, + "tableStartLocation": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateTableRowStyle": { + "properties": { + "fields": { + "type": "string" + }, + "rowIndices": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "tableRowStyle": { + "properties": { + "minRowHeight": { + "type": "object" + }, + "preventOverflow": { + "type": "boolean" + }, + "tableHeader": { + "type": "boolean" + } + }, + "type": "object" + }, + "tableStartLocation": { + "properties": { + "index": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateTextStyle": { + "properties": { + "fields": { + "type": "string" + }, + "range": { + "properties": { + "endIndex": { + "type": "integer" + }, + "segmentId": { + "type": "string" + }, + "startIndex": { + "type": "integer" + }, + "tabId": { + "type": "string" + } + }, + "type": "object" + }, + "textStyle": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "baselineOffset": { + "enum": [ + "BASELINE_OFFSET_UNSPECIFIED", + "NONE", + "SUPERSCRIPT", + "SUBSCRIPT" + ], + "type": "string" + }, + "bold": { + "type": "boolean" + }, + "fontSize": { + "type": "object" + }, + "foregroundColor": { + "type": "object" + }, + "italic": { + "type": "boolean" + }, + "link": { + "type": "object" + }, + "smallCaps": { + "type": "boolean" + }, + "strikethrough": { + "type": "boolean" + }, + "underline": { + "type": "boolean" + }, + "weightedFontFamily": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "writeControl": { + "properties": { + "requiredRevisionId": { + "type": "string" + }, + "targetRevisionId": { + "type": "string" + }, + "writeMode": { + "enum": [ + "WRITE_MODE_UNSPECIFIED", + "EDIT", + "SUGGEST" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
docs.documents.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Document object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Document: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "body": { + "properties": { + "content": { + "items": { + "properties": { + "endIndex": { + "type": "integer" + }, + "paragraph": { + "properties": { + "bullet": { + "type": "object" + }, + "elements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "paragraphStyle": { + "type": "object" + }, + "positionedObjectIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedBulletChanges": { + "type": "object" + }, + "suggestedParagraphStyleChanges": { + "type": "object" + }, + "suggestedPositionedObjectIds": { + "type": "object" + } + }, + "type": "object" + }, + "sectionBreak": { + "properties": { + "sectionStyle": { + "type": "object" + }, + "suggestedDeletionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "rows": { + "type": "integer" + }, + "suggestedDeletionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableStyle": { + "type": "object" + } + }, + "type": "object" + }, + "tableOfContents": { + "properties": { + "content": { + "items": { + "type": "object" + }, + "type": "array" + }, + "suggestedDeletionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "documentId": { + "type": "string" + }, + "documentStyle": { + "properties": { + "background": { + "properties": { + "color": { + "properties": { + "color": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "defaultFooterId": { + "type": "string" + }, + "defaultHeaderId": { + "type": "string" + }, + "documentFormat": { + "properties": { + "documentMode": { + "enum": [ + "DOCUMENT_MODE_UNSPECIFIED", + "PAGES", + "PAGELESS" + ], + "type": "string" + } + }, + "type": "object" + }, + "evenPageFooterId": { + "type": "string" + }, + "evenPageHeaderId": { + "type": "string" + }, + "firstPageFooterId": { + "type": "string" + }, + "firstPageHeaderId": { + "type": "string" + }, + "flipPageOrientation": { + "type": "boolean" + }, + "marginBottom": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginFooter": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginHeader": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginLeft": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginRight": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginTop": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "pageNumberStart": { + "type": "integer" + }, + "pageSize": { + "properties": { + "height": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "width": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "useCustomHeaderFooterMargins": { + "type": "boolean" + }, + "useEvenPageHeaderFooter": { + "type": "boolean" + }, + "useFirstPageHeaderFooter": { + "type": "boolean" + } + }, + "type": "object" + }, + "footers": { + "type": "object" + }, + "footnotes": { + "type": "object" + }, + "headers": { + "type": "object" + }, + "inlineObjects": { + "type": "object" + }, + "lists": { + "type": "object" + }, + "namedRanges": { + "type": "object" + }, + "namedStyles": { + "properties": { + "styles": { + "items": { + "properties": { + "namedStyleType": { + "enum": [ + "NAMED_STYLE_TYPE_UNSPECIFIED", + "NORMAL_TEXT", + "TITLE", + "SUBTITLE", + "HEADING_1", + "HEADING_2", + "HEADING_3", + "HEADING_4", + "HEADING_5", + "HEADING_6" + ], + "type": "string" + }, + "paragraphStyle": { + "properties": { + "alignment": { + "enum": [ + "ALIGNMENT_UNSPECIFIED", + "START", + "CENTER", + "END", + "JUSTIFIED" + ], + "type": "string" + }, + "avoidWidowAndOrphan": { + "type": "boolean" + }, + "borderBetween": { + "type": "object" + }, + "borderBottom": { + "type": "object" + }, + "borderLeft": { + "type": "object" + }, + "borderRight": { + "type": "object" + }, + "borderTop": { + "type": "object" + }, + "direction": { + "enum": [ + "CONTENT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "type": "string" + }, + "headingId": { + "type": "string" + }, + "indentEnd": { + "type": "object" + }, + "indentFirstLine": { + "type": "object" + }, + "indentStart": { + "type": "object" + }, + "keepLinesTogether": { + "type": "boolean" + }, + "keepWithNext": { + "type": "boolean" + }, + "lineSpacing": { + "type": "number" + }, + "namedStyleType": { + "enum": [ + "NAMED_STYLE_TYPE_UNSPECIFIED", + "NORMAL_TEXT", + "TITLE", + "SUBTITLE", + "HEADING_1", + "HEADING_2", + "HEADING_3", + "HEADING_4", + "HEADING_5", + "HEADING_6" + ], + "type": "string" + }, + "pageBreakBefore": { + "type": "boolean" + }, + "shading": { + "type": "object" + }, + "spaceAbove": { + "type": "object" + }, + "spaceBelow": { + "type": "object" + }, + "spacingMode": { + "enum": [ + "SPACING_MODE_UNSPECIFIED", + "NEVER_COLLAPSE", + "COLLAPSE_LISTS" + ], + "type": "string" + }, + "tabStops": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "textStyle": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "baselineOffset": { + "enum": [ + "BASELINE_OFFSET_UNSPECIFIED", + "NONE", + "SUPERSCRIPT", + "SUBSCRIPT" + ], + "type": "string" + }, + "bold": { + "type": "boolean" + }, + "fontSize": { + "type": "object" + }, + "foregroundColor": { + "type": "object" + }, + "italic": { + "type": "boolean" + }, + "link": { + "type": "object" + }, + "smallCaps": { + "type": "boolean" + }, + "strikethrough": { + "type": "boolean" + }, + "underline": { + "type": "boolean" + }, + "weightedFontFamily": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "positionedObjects": { + "type": "object" + }, + "revisionId": { + "type": "string" + }, + "suggestedDocumentStyleChanges": { + "type": "object" + }, + "suggestedNamedStylesChanges": { + "type": "object" + }, + "suggestions": { + "items": { + "properties": { + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "ACCEPTED", + "REJECTED" + ], + "type": "string" + }, + "suggestionId": { + "type": "string" + }, + "summaryHtml": { + "type": "string" + }, + "summaryText": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "suggestionsViewMode": { + "enum": [ + "DEFAULT_FOR_CURRENT_ACCESS", + "SUGGESTIONS_INLINE", + "PREVIEW_SUGGESTIONS_ACCEPTED", + "PREVIEW_WITHOUT_SUGGESTIONS" + ], + "type": "string" + }, + "tabs": { + "items": { + "properties": { + "childTabs": { + "items": { + "properties": { + "childTabs": { + "items": { + "properties": { + "childTabs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "documentTab": { + "type": "object" + }, + "tabProperties": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "documentTab": { + "properties": { + "body": { + "type": "object" + }, + "commentAnchors": { + "type": "object" + }, + "documentStyle": { + "type": "object" + }, + "dropdownDefinitions": { + "type": "object" + }, + "footers": { + "type": "object" + }, + "footnotes": { + "type": "object" + }, + "headers": { + "type": "object" + }, + "inlineObjects": { + "type": "object" + }, + "lists": { + "type": "object" + }, + "namedRanges": { + "type": "object" + }, + "namedStyles": { + "type": "object" + }, + "positionedObjects": { + "type": "object" + }, + "suggestedDocumentStyleChanges": { + "type": "object" + }, + "suggestedNamedStylesChanges": { + "type": "object" + } + }, + "type": "object" + }, + "tabProperties": { + "properties": { + "iconEmoji": { + "type": "string" + }, + "index": { + "type": "integer" + }, + "nestingLevel": { + "type": "integer" + }, + "parentTabId": { + "type": "string" + }, + "tabId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "documentTab": { + "properties": { + "body": { + "properties": { + "content": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "commentAnchors": { + "type": "object" + }, + "documentStyle": { + "properties": { + "background": { + "type": "object" + }, + "defaultFooterId": { + "type": "string" + }, + "defaultHeaderId": { + "type": "string" + }, + "documentFormat": { + "type": "object" + }, + "evenPageFooterId": { + "type": "string" + }, + "evenPageHeaderId": { + "type": "string" + }, + "firstPageFooterId": { + "type": "string" + }, + "firstPageHeaderId": { + "type": "string" + }, + "flipPageOrientation": { + "type": "boolean" + }, + "marginBottom": { + "type": "object" + }, + "marginFooter": { + "type": "object" + }, + "marginHeader": { + "type": "object" + }, + "marginLeft": { + "type": "object" + }, + "marginRight": { + "type": "object" + }, + "marginTop": { + "type": "object" + }, + "pageNumberStart": { + "type": "integer" + }, + "pageSize": { + "type": "object" + }, + "useCustomHeaderFooterMargins": { + "type": "boolean" + }, + "useEvenPageHeaderFooter": { + "type": "boolean" + }, + "useFirstPageHeaderFooter": { + "type": "boolean" + } + }, + "type": "object" + }, + "dropdownDefinitions": { + "type": "object" + }, + "footers": { + "type": "object" + }, + "footnotes": { + "type": "object" + }, + "headers": { + "type": "object" + }, + "inlineObjects": { + "type": "object" + }, + "lists": { + "type": "object" + }, + "namedRanges": { + "type": "object" + }, + "namedStyles": { + "properties": { + "styles": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "positionedObjects": { + "type": "object" + }, + "suggestedDocumentStyleChanges": { + "type": "object" + }, + "suggestedNamedStylesChanges": { + "type": "object" + } + }, + "type": "object" + }, + "tabProperties": { + "properties": { + "iconEmoji": { + "type": "string" + }, + "index": { + "type": "integer" + }, + "nestingLevel": { + "type": "integer" + }, + "parentTabId": { + "type": "string" + }, + "tabId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.accessproposals.resolve2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ResolveAccessProposalRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ResolveAccessProposalRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "action": { + "enum": [ + "ACTION_UNSPECIFIED", + "ACCEPT", + "DENY" + ], + "type": "string" + }, + "role": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sendNotification": { + "type": "boolean" + }, + "view": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.approvals.approve2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ApproveApprovalRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ApproveApprovalRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "message": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.approvals.cancel2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CancelApprovalRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CancelApprovalRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "message": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.approvals.comment2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CommentApprovalRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CommentApprovalRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "message": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.approvals.decline2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON DeclineApprovalRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type DeclineApprovalRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "message": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.approvals.reassign2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ReassignApprovalRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ReassignApprovalRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "addReviewers": { + "items": { + "properties": { + "addedReviewerEmail": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "message": { + "type": "string" + }, + "replaceReviewers": { + "items": { + "properties": { + "addedReviewerEmail": { + "type": "string" + }, + "removedReviewerEmail": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
drive.approvals.start2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON StartApprovalRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type StartApprovalRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "dueTime": { + "type": "string" + }, + "fileContentChangeBehavior": { + "enum": [ + "FILE_CONTENT_CHANGE_BEHAVIOR_UNSPECIFIED", + "RESET_APPROVAL", + "NO_APPROVAL_ACTION" + ], + "type": "string" + }, + "lockFile": { + "type": "boolean" + }, + "message": { + "type": "string" + }, + "reviewerEmails": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
drive.changes.watch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.channels.stop2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.comments.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Comment object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Comment: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "anchor": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + }, + "quotedFileContent": { + "properties": { + "mimeType": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "replies": { + "items": { + "properties": { + "action": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resolved": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
drive.comments.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Comment object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Comment: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "anchor": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + }, + "quotedFileContent": { + "properties": { + "mimeType": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "replies": { + "items": { + "properties": { + "action": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resolved": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
drive.drives.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Drive object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Drive: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeDriveBackground": { + "type": "boolean" + }, + "canChangeDriveMembersOnlyRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameDrive": { + "type": "boolean" + }, + "canResetDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "driveMembersOnly": { + "type": "boolean" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.drives.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Drive object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Drive: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeDriveBackground": { + "type": "boolean" + }, + "canChangeDriveMembersOnlyRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameDrive": { + "type": "boolean" + }, + "canResetDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "driveMembersOnly": { + "type": "boolean" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.files.copy2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON File object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type File: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "appProperties": { + "type": "object" + }, + "capabilities": { + "properties": { + "canAcceptOwnership": { + "type": "boolean" + }, + "canAccessViaGenAi": { + "type": "boolean" + }, + "canAddChildren": { + "type": "boolean" + }, + "canAddFolderFromAnotherDrive": { + "type": "boolean" + }, + "canAddMyDriveParent": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermission": { + "type": "boolean" + }, + "canChangeItemDownloadRestriction": { + "type": "boolean" + }, + "canChangeSecurityUpdateEnabled": { + "type": "boolean" + }, + "canChangeViewersCanCopyContent": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDelete": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDisableInheritedPermissions": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canEnableInheritedPermissions": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canModifyContent": { + "type": "boolean" + }, + "canModifyContentRestriction": { + "type": "boolean" + }, + "canModifyEditorContentRestriction": { + "type": "boolean" + }, + "canModifyLabels": { + "type": "boolean" + }, + "canModifyOwnerContentRestriction": { + "type": "boolean" + }, + "canMoveChildrenOutOfDrive": { + "type": "boolean" + }, + "canMoveChildrenOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinTeamDrive": { + "type": "boolean" + }, + "canMoveItemIntoTeamDrive": { + "type": "boolean" + }, + "canMoveItemOutOfDrive": { + "type": "boolean" + }, + "canMoveItemOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveItemWithinDrive": { + "type": "boolean" + }, + "canMoveItemWithinTeamDrive": { + "type": "boolean" + }, + "canMoveTeamDriveItem": { + "type": "boolean" + }, + "canReadDrive": { + "type": "boolean" + }, + "canReadLabels": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canReadTeamDrive": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRemoveContentRestriction": { + "type": "boolean" + }, + "canRemoveMyDriveParent": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canStartApproval": { + "type": "boolean" + }, + "canTrash": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + }, + "canUntrash": { + "type": "boolean" + } + }, + "type": "object" + }, + "clientEncryptionDetails": { + "properties": { + "decryptionMetadata": { + "properties": { + "aes256GcmChunkSize": { + "type": "string" + }, + "encryptionResourceKeyHash": { + "type": "string" + }, + "jwt": { + "type": "string" + }, + "kaclsId": { + "type": "string" + }, + "kaclsName": { + "type": "string" + }, + "keyFormat": { + "type": "string" + }, + "wrappedKey": { + "type": "string" + } + }, + "type": "object" + }, + "encryptionState": { + "type": "string" + } + }, + "type": "object" + }, + "contentHints": { + "properties": { + "indexableText": { + "type": "string" + }, + "thumbnail": { + "properties": { + "image": { + "type": "string" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "contentRestrictions": { + "items": { + "properties": { + "ownerRestricted": { + "type": "boolean" + }, + "readOnly": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "restrictingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "restrictionTime": { + "type": "string" + }, + "systemRestricted": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "createdTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "downloadRestrictions": { + "properties": { + "effectiveDownloadRestrictionWithContext": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "itemDownloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "driveId": { + "type": "string" + }, + "explicitlyTrashed": { + "type": "boolean" + }, + "exportLinks": { + "type": "object" + }, + "fileExtension": { + "type": "string" + }, + "folderColorRgb": { + "type": "string" + }, + "fullFileExtension": { + "type": "string" + }, + "hasAugmentedPermissions": { + "type": "boolean" + }, + "hasThumbnail": { + "type": "boolean" + }, + "headRevisionId": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageMediaMetadata": { + "properties": { + "aperture": { + "type": "number" + }, + "cameraMake": { + "type": "string" + }, + "cameraModel": { + "type": "string" + }, + "colorSpace": { + "type": "string" + }, + "exposureBias": { + "type": "number" + }, + "exposureMode": { + "type": "string" + }, + "exposureTime": { + "type": "number" + }, + "flashUsed": { + "type": "boolean" + }, + "focalLength": { + "type": "number" + }, + "height": { + "type": "integer" + }, + "isoSpeed": { + "type": "integer" + }, + "lens": { + "type": "string" + }, + "location": { + "properties": { + "altitude": { + "type": "number" + }, + "latitude": { + "type": "number" + }, + "longitude": { + "type": "number" + } + }, + "type": "object" + }, + "maxApertureValue": { + "type": "number" + }, + "meteringMode": { + "type": "string" + }, + "rotation": { + "type": "integer" + }, + "sensor": { + "type": "string" + }, + "subjectDistance": { + "type": "integer" + }, + "time": { + "type": "string" + }, + "whiteBalance": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "isAppAuthorized": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "labelInfo": { + "properties": { + "labels": { + "items": { + "properties": { + "fields": { + "type": "object" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "revisionId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "lastModifyingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "linkShareMetadata": { + "properties": { + "securityUpdateEligible": { + "type": "boolean" + }, + "securityUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "md5Checksum": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modifiedByMe": { + "type": "boolean" + }, + "modifiedByMeTime": { + "type": "string" + }, + "modifiedTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "originalFilename": { + "type": "string" + }, + "ownedByMe": { + "type": "boolean" + }, + "owners": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "parents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissions": { + "items": { + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "type": "object" + }, + "quotaBytesUsed": { + "type": "string" + }, + "resourceKey": { + "type": "string" + }, + "sha1Checksum": { + "type": "string" + }, + "sha256Checksum": { + "type": "string" + }, + "shared": { + "type": "boolean" + }, + "sharedWithMeTime": { + "type": "string" + }, + "sharingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "shortcutDetails": { + "properties": { + "targetId": { + "type": "string" + }, + "targetMimeType": { + "type": "string" + }, + "targetResourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "type": "string" + }, + "spaces": { + "items": { + "type": "string" + }, + "type": "array" + }, + "starred": { + "type": "boolean" + }, + "teamDriveId": { + "type": "string" + }, + "thumbnailLink": { + "type": "string" + }, + "thumbnailVersion": { + "type": "string" + }, + "trashed": { + "type": "boolean" + }, + "trashedTime": { + "type": "string" + }, + "trashingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "version": { + "type": "string" + }, + "videoMediaMetadata": { + "properties": { + "durationMillis": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "viewedByMe": { + "type": "boolean" + }, + "viewedByMeTime": { + "type": "string" + }, + "viewersCanCopyContent": { + "type": "boolean" + }, + "webContentLink": { + "type": "string" + }, + "webViewLink": { + "type": "string" + }, + "writersCanShare": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
drive.files.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON File object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type File: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "appProperties": { + "type": "object" + }, + "capabilities": { + "properties": { + "canAcceptOwnership": { + "type": "boolean" + }, + "canAccessViaGenAi": { + "type": "boolean" + }, + "canAddChildren": { + "type": "boolean" + }, + "canAddFolderFromAnotherDrive": { + "type": "boolean" + }, + "canAddMyDriveParent": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermission": { + "type": "boolean" + }, + "canChangeItemDownloadRestriction": { + "type": "boolean" + }, + "canChangeSecurityUpdateEnabled": { + "type": "boolean" + }, + "canChangeViewersCanCopyContent": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDelete": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDisableInheritedPermissions": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canEnableInheritedPermissions": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canModifyContent": { + "type": "boolean" + }, + "canModifyContentRestriction": { + "type": "boolean" + }, + "canModifyEditorContentRestriction": { + "type": "boolean" + }, + "canModifyLabels": { + "type": "boolean" + }, + "canModifyOwnerContentRestriction": { + "type": "boolean" + }, + "canMoveChildrenOutOfDrive": { + "type": "boolean" + }, + "canMoveChildrenOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinTeamDrive": { + "type": "boolean" + }, + "canMoveItemIntoTeamDrive": { + "type": "boolean" + }, + "canMoveItemOutOfDrive": { + "type": "boolean" + }, + "canMoveItemOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveItemWithinDrive": { + "type": "boolean" + }, + "canMoveItemWithinTeamDrive": { + "type": "boolean" + }, + "canMoveTeamDriveItem": { + "type": "boolean" + }, + "canReadDrive": { + "type": "boolean" + }, + "canReadLabels": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canReadTeamDrive": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRemoveContentRestriction": { + "type": "boolean" + }, + "canRemoveMyDriveParent": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canStartApproval": { + "type": "boolean" + }, + "canTrash": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + }, + "canUntrash": { + "type": "boolean" + } + }, + "type": "object" + }, + "clientEncryptionDetails": { + "properties": { + "decryptionMetadata": { + "properties": { + "aes256GcmChunkSize": { + "type": "string" + }, + "encryptionResourceKeyHash": { + "type": "string" + }, + "jwt": { + "type": "string" + }, + "kaclsId": { + "type": "string" + }, + "kaclsName": { + "type": "string" + }, + "keyFormat": { + "type": "string" + }, + "wrappedKey": { + "type": "string" + } + }, + "type": "object" + }, + "encryptionState": { + "type": "string" + } + }, + "type": "object" + }, + "contentHints": { + "properties": { + "indexableText": { + "type": "string" + }, + "thumbnail": { + "properties": { + "image": { + "type": "string" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "contentRestrictions": { + "items": { + "properties": { + "ownerRestricted": { + "type": "boolean" + }, + "readOnly": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "restrictingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "restrictionTime": { + "type": "string" + }, + "systemRestricted": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "createdTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "downloadRestrictions": { + "properties": { + "effectiveDownloadRestrictionWithContext": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "itemDownloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "driveId": { + "type": "string" + }, + "explicitlyTrashed": { + "type": "boolean" + }, + "exportLinks": { + "type": "object" + }, + "fileExtension": { + "type": "string" + }, + "folderColorRgb": { + "type": "string" + }, + "fullFileExtension": { + "type": "string" + }, + "hasAugmentedPermissions": { + "type": "boolean" + }, + "hasThumbnail": { + "type": "boolean" + }, + "headRevisionId": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageMediaMetadata": { + "properties": { + "aperture": { + "type": "number" + }, + "cameraMake": { + "type": "string" + }, + "cameraModel": { + "type": "string" + }, + "colorSpace": { + "type": "string" + }, + "exposureBias": { + "type": "number" + }, + "exposureMode": { + "type": "string" + }, + "exposureTime": { + "type": "number" + }, + "flashUsed": { + "type": "boolean" + }, + "focalLength": { + "type": "number" + }, + "height": { + "type": "integer" + }, + "isoSpeed": { + "type": "integer" + }, + "lens": { + "type": "string" + }, + "location": { + "properties": { + "altitude": { + "type": "number" + }, + "latitude": { + "type": "number" + }, + "longitude": { + "type": "number" + } + }, + "type": "object" + }, + "maxApertureValue": { + "type": "number" + }, + "meteringMode": { + "type": "string" + }, + "rotation": { + "type": "integer" + }, + "sensor": { + "type": "string" + }, + "subjectDistance": { + "type": "integer" + }, + "time": { + "type": "string" + }, + "whiteBalance": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "isAppAuthorized": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "labelInfo": { + "properties": { + "labels": { + "items": { + "properties": { + "fields": { + "type": "object" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "revisionId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "lastModifyingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "linkShareMetadata": { + "properties": { + "securityUpdateEligible": { + "type": "boolean" + }, + "securityUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "md5Checksum": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modifiedByMe": { + "type": "boolean" + }, + "modifiedByMeTime": { + "type": "string" + }, + "modifiedTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "originalFilename": { + "type": "string" + }, + "ownedByMe": { + "type": "boolean" + }, + "owners": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "parents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissions": { + "items": { + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "type": "object" + }, + "quotaBytesUsed": { + "type": "string" + }, + "resourceKey": { + "type": "string" + }, + "sha1Checksum": { + "type": "string" + }, + "sha256Checksum": { + "type": "string" + }, + "shared": { + "type": "boolean" + }, + "sharedWithMeTime": { + "type": "string" + }, + "sharingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "shortcutDetails": { + "properties": { + "targetId": { + "type": "string" + }, + "targetMimeType": { + "type": "string" + }, + "targetResourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "type": "string" + }, + "spaces": { + "items": { + "type": "string" + }, + "type": "array" + }, + "starred": { + "type": "boolean" + }, + "teamDriveId": { + "type": "string" + }, + "thumbnailLink": { + "type": "string" + }, + "thumbnailVersion": { + "type": "string" + }, + "trashed": { + "type": "boolean" + }, + "trashedTime": { + "type": "string" + }, + "trashingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "version": { + "type": "string" + }, + "videoMediaMetadata": { + "properties": { + "durationMillis": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "viewedByMe": { + "type": "boolean" + }, + "viewedByMeTime": { + "type": "string" + }, + "viewersCanCopyContent": { + "type": "boolean" + }, + "webContentLink": { + "type": "string" + }, + "webViewLink": { + "type": "string" + }, + "writersCanShare": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
drive.files.modifyLabels2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ModifyLabelsRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ModifyLabelsRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "kind": { + "type": "string" + }, + "labelModifications": { + "items": { + "properties": { + "fieldModifications": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "setDateValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "setIntegerValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "setSelectionValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "setTextValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "setUserValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "unsetValues": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "labelId": { + "type": "string" + }, + "removeLabel": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
drive.files.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON File object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type File: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "appProperties": { + "type": "object" + }, + "capabilities": { + "properties": { + "canAcceptOwnership": { + "type": "boolean" + }, + "canAccessViaGenAi": { + "type": "boolean" + }, + "canAddChildren": { + "type": "boolean" + }, + "canAddFolderFromAnotherDrive": { + "type": "boolean" + }, + "canAddMyDriveParent": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermission": { + "type": "boolean" + }, + "canChangeItemDownloadRestriction": { + "type": "boolean" + }, + "canChangeSecurityUpdateEnabled": { + "type": "boolean" + }, + "canChangeViewersCanCopyContent": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDelete": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDisableInheritedPermissions": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canEnableInheritedPermissions": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canModifyContent": { + "type": "boolean" + }, + "canModifyContentRestriction": { + "type": "boolean" + }, + "canModifyEditorContentRestriction": { + "type": "boolean" + }, + "canModifyLabels": { + "type": "boolean" + }, + "canModifyOwnerContentRestriction": { + "type": "boolean" + }, + "canMoveChildrenOutOfDrive": { + "type": "boolean" + }, + "canMoveChildrenOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinTeamDrive": { + "type": "boolean" + }, + "canMoveItemIntoTeamDrive": { + "type": "boolean" + }, + "canMoveItemOutOfDrive": { + "type": "boolean" + }, + "canMoveItemOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveItemWithinDrive": { + "type": "boolean" + }, + "canMoveItemWithinTeamDrive": { + "type": "boolean" + }, + "canMoveTeamDriveItem": { + "type": "boolean" + }, + "canReadDrive": { + "type": "boolean" + }, + "canReadLabels": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canReadTeamDrive": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRemoveContentRestriction": { + "type": "boolean" + }, + "canRemoveMyDriveParent": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canStartApproval": { + "type": "boolean" + }, + "canTrash": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + }, + "canUntrash": { + "type": "boolean" + } + }, + "type": "object" + }, + "clientEncryptionDetails": { + "properties": { + "decryptionMetadata": { + "properties": { + "aes256GcmChunkSize": { + "type": "string" + }, + "encryptionResourceKeyHash": { + "type": "string" + }, + "jwt": { + "type": "string" + }, + "kaclsId": { + "type": "string" + }, + "kaclsName": { + "type": "string" + }, + "keyFormat": { + "type": "string" + }, + "wrappedKey": { + "type": "string" + } + }, + "type": "object" + }, + "encryptionState": { + "type": "string" + } + }, + "type": "object" + }, + "contentHints": { + "properties": { + "indexableText": { + "type": "string" + }, + "thumbnail": { + "properties": { + "image": { + "type": "string" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "contentRestrictions": { + "items": { + "properties": { + "ownerRestricted": { + "type": "boolean" + }, + "readOnly": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "restrictingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "restrictionTime": { + "type": "string" + }, + "systemRestricted": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "createdTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "downloadRestrictions": { + "properties": { + "effectiveDownloadRestrictionWithContext": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "itemDownloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "driveId": { + "type": "string" + }, + "explicitlyTrashed": { + "type": "boolean" + }, + "exportLinks": { + "type": "object" + }, + "fileExtension": { + "type": "string" + }, + "folderColorRgb": { + "type": "string" + }, + "fullFileExtension": { + "type": "string" + }, + "hasAugmentedPermissions": { + "type": "boolean" + }, + "hasThumbnail": { + "type": "boolean" + }, + "headRevisionId": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageMediaMetadata": { + "properties": { + "aperture": { + "type": "number" + }, + "cameraMake": { + "type": "string" + }, + "cameraModel": { + "type": "string" + }, + "colorSpace": { + "type": "string" + }, + "exposureBias": { + "type": "number" + }, + "exposureMode": { + "type": "string" + }, + "exposureTime": { + "type": "number" + }, + "flashUsed": { + "type": "boolean" + }, + "focalLength": { + "type": "number" + }, + "height": { + "type": "integer" + }, + "isoSpeed": { + "type": "integer" + }, + "lens": { + "type": "string" + }, + "location": { + "properties": { + "altitude": { + "type": "number" + }, + "latitude": { + "type": "number" + }, + "longitude": { + "type": "number" + } + }, + "type": "object" + }, + "maxApertureValue": { + "type": "number" + }, + "meteringMode": { + "type": "string" + }, + "rotation": { + "type": "integer" + }, + "sensor": { + "type": "string" + }, + "subjectDistance": { + "type": "integer" + }, + "time": { + "type": "string" + }, + "whiteBalance": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "isAppAuthorized": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "labelInfo": { + "properties": { + "labels": { + "items": { + "properties": { + "fields": { + "type": "object" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "revisionId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "lastModifyingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "linkShareMetadata": { + "properties": { + "securityUpdateEligible": { + "type": "boolean" + }, + "securityUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "md5Checksum": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modifiedByMe": { + "type": "boolean" + }, + "modifiedByMeTime": { + "type": "string" + }, + "modifiedTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "originalFilename": { + "type": "string" + }, + "ownedByMe": { + "type": "boolean" + }, + "owners": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "parents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissions": { + "items": { + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "type": "object" + }, + "quotaBytesUsed": { + "type": "string" + }, + "resourceKey": { + "type": "string" + }, + "sha1Checksum": { + "type": "string" + }, + "sha256Checksum": { + "type": "string" + }, + "shared": { + "type": "boolean" + }, + "sharedWithMeTime": { + "type": "string" + }, + "sharingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "shortcutDetails": { + "properties": { + "targetId": { + "type": "string" + }, + "targetMimeType": { + "type": "string" + }, + "targetResourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "type": "string" + }, + "spaces": { + "items": { + "type": "string" + }, + "type": "array" + }, + "starred": { + "type": "boolean" + }, + "teamDriveId": { + "type": "string" + }, + "thumbnailLink": { + "type": "string" + }, + "thumbnailVersion": { + "type": "string" + }, + "trashed": { + "type": "boolean" + }, + "trashedTime": { + "type": "string" + }, + "trashingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "version": { + "type": "string" + }, + "videoMediaMetadata": { + "properties": { + "durationMillis": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "viewedByMe": { + "type": "boolean" + }, + "viewedByMeTime": { + "type": "string" + }, + "viewersCanCopyContent": { + "type": "boolean" + }, + "webContentLink": { + "type": "string" + }, + "webViewLink": { + "type": "string" + }, + "writersCanShare": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
drive.files.watch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Channel object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Channel: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.permissions.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Permission object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Permission: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.permissions.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Permission object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Permission: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.replies.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Reply object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Reply: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "action": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.replies.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Reply object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Reply: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "action": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.revisions.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Revision object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Revision: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "exportLinks": { + "type": "object" + }, + "id": { + "type": "string" + }, + "keepForever": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "lastModifyingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "md5Checksum": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modifiedTime": { + "type": "string" + }, + "originalFilename": { + "type": "string" + }, + "publishAuto": { + "type": "boolean" + }, + "published": { + "type": "boolean" + }, + "publishedLink": { + "type": "string" + }, + "publishedOutsideDomain": { + "type": "boolean" + }, + "size": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.teamdrives.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON TeamDrive object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type TeamDrive: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canChangeTeamDriveBackground": { + "type": "boolean" + }, + "canChangeTeamMembersOnlyRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteTeamDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameTeamDrive": { + "type": "boolean" + }, + "canResetTeamDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + }, + "teamMembersOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.teamdrives.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON TeamDrive object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type TeamDrive: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canChangeTeamDriveBackground": { + "type": "boolean" + }, + "canChangeTeamMembersOnlyRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteTeamDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameTeamDrive": { + "type": "boolean" + }, + "canResetTeamDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + }, + "teamMembersOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
forms.forms.batchUpdate2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdateFormRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchUpdateFormRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "includeFormInResponse": { + "type": "boolean" + }, + "requests": { + "items": { + "properties": { + "createItem": { + "properties": { + "item": { + "properties": { + "description": { + "type": "string" + }, + "imageItem": { + "type": "object" + }, + "itemId": { + "type": "string" + }, + "pageBreakItem": { + "type": "object" + }, + "questionGroupItem": { + "type": "object" + }, + "questionItem": { + "type": "object" + }, + "textItem": { + "type": "object" + }, + "title": { + "type": "string" + }, + "videoItem": { + "type": "object" + } + }, + "type": "object" + }, + "location": { + "properties": { + "index": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deleteItem": { + "properties": { + "location": { + "properties": { + "index": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "moveItem": { + "properties": { + "newLocation": { + "properties": { + "index": { + "type": "integer" + } + }, + "type": "object" + }, + "originalLocation": { + "properties": { + "index": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateFormInfo": { + "properties": { + "info": { + "properties": { + "description": { + "type": "string" + }, + "documentTitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "updateMask": { + "type": "string" + } + }, + "type": "object" + }, + "updateItem": { + "properties": { + "item": { + "properties": { + "description": { + "type": "string" + }, + "imageItem": { + "type": "object" + }, + "itemId": { + "type": "string" + }, + "pageBreakItem": { + "type": "object" + }, + "questionGroupItem": { + "type": "object" + }, + "questionItem": { + "type": "object" + }, + "textItem": { + "type": "object" + }, + "title": { + "type": "string" + }, + "videoItem": { + "type": "object" + } + }, + "type": "object" + }, + "location": { + "properties": { + "index": { + "type": "integer" + } + }, + "type": "object" + }, + "updateMask": { + "type": "string" + } + }, + "type": "object" + }, + "updateSettings": { + "properties": { + "settings": { + "properties": { + "emailCollectionType": { + "enum": [ + "EMAIL_COLLECTION_TYPE_UNSPECIFIED", + "DO_NOT_COLLECT", + "VERIFIED", + "RESPONDER_INPUT" + ], + "type": "string" + }, + "quizSettings": { + "type": "object" + } + }, + "type": "object" + }, + "updateMask": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "writeControl": { + "properties": { + "requiredRevisionId": { + "type": "string" + }, + "targetRevisionId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
forms.forms.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Form object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Form: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "formId": { + "type": "string" + }, + "info": { + "properties": { + "description": { + "type": "string" + }, + "documentTitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "items": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "imageItem": { + "properties": { + "image": { + "properties": { + "altText": { + "type": "string" + }, + "contentUri": { + "type": "string" + }, + "properties": { + "type": "object" + }, + "sourceUri": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "itemId": { + "type": "string" + }, + "pageBreakItem": { + "type": "object" + }, + "questionGroupItem": { + "properties": { + "grid": { + "properties": { + "columns": { + "type": "object" + }, + "shuffleQuestions": { + "type": "boolean" + } + }, + "type": "object" + }, + "image": { + "properties": { + "altText": { + "type": "string" + }, + "contentUri": { + "type": "string" + }, + "properties": { + "type": "object" + }, + "sourceUri": { + "type": "string" + } + }, + "type": "object" + }, + "questions": { + "items": { + "properties": { + "choiceQuestion": { + "type": "object" + }, + "dateQuestion": { + "type": "object" + }, + "fileUploadQuestion": { + "type": "object" + }, + "grading": { + "type": "object" + }, + "questionId": { + "type": "string" + }, + "ratingQuestion": { + "type": "object" + }, + "required": { + "type": "boolean" + }, + "rowQuestion": { + "type": "object" + }, + "scaleQuestion": { + "type": "object" + }, + "textQuestion": { + "type": "object" + }, + "timeQuestion": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "questionItem": { + "properties": { + "image": { + "properties": { + "altText": { + "type": "string" + }, + "contentUri": { + "type": "string" + }, + "properties": { + "type": "object" + }, + "sourceUri": { + "type": "string" + } + }, + "type": "object" + }, + "question": { + "properties": { + "choiceQuestion": { + "type": "object" + }, + "dateQuestion": { + "type": "object" + }, + "fileUploadQuestion": { + "type": "object" + }, + "grading": { + "type": "object" + }, + "questionId": { + "type": "string" + }, + "ratingQuestion": { + "type": "object" + }, + "required": { + "type": "boolean" + }, + "rowQuestion": { + "type": "object" + }, + "scaleQuestion": { + "type": "object" + }, + "textQuestion": { + "type": "object" + }, + "timeQuestion": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "textItem": { + "type": "object" + }, + "title": { + "type": "string" + }, + "videoItem": { + "properties": { + "caption": { + "type": "string" + }, + "video": { + "properties": { + "properties": { + "type": "object" + }, + "youtubeUri": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "linkedSheetId": { + "type": "string" + }, + "publishSettings": { + "properties": { + "publishState": { + "properties": { + "isAcceptingResponses": { + "type": "boolean" + }, + "isPublished": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "responderUri": { + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "settings": { + "properties": { + "emailCollectionType": { + "enum": [ + "EMAIL_COLLECTION_TYPE_UNSPECIFIED", + "DO_NOT_COLLECT", + "VERIFIED", + "RESPONDER_INPUT" + ], + "type": "string" + }, + "quizSettings": { + "properties": { + "isQuiz": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
forms.forms.setPublishSettings2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SetPublishSettingsRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type SetPublishSettingsRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "publishSettings": { + "properties": { + "publishState": { + "properties": { + "isAcceptingResponses": { + "type": "boolean" + }, + "isPublished": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateMask": { + "type": "string" + } + }, + "type": "object" +}
- Changed
forms.forms.watches.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CreateWatchRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CreateWatchRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "watch": { + "properties": { + "createTime": { + "type": "string" + }, + "errorType": { + "enum": [ + "ERROR_TYPE_UNSPECIFIED", + "PROJECT_NOT_AUTHORIZED", + "NO_USER_ACCESS", + "OTHER_ERRORS" + ], + "type": "string" + }, + "eventType": { + "enum": [ + "EVENT_TYPE_UNSPECIFIED", + "SCHEMA", + "RESPONSES" + ], + "type": "string" + }, + "expireTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "SUSPENDED" + ], + "type": "string" + }, + "target": { + "properties": { + "topic": { + "properties": { + "topicName": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "watchId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
forms.forms.watches.renew2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON RenewWatchRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type RenewWatchRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "type": "object" +}
- Changed
gmail.users.drafts.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Draft object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Draft: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "id": { + "type": "string" + }, + "message": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
gmail.users.drafts.send2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Draft object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Draft: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "id": { + "type": "string" + }, + "message": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
gmail.users.drafts.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Draft object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Draft: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "id": { + "type": "string" + }, + "message": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
gmail.users.labels.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Label object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Label: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "color": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "textColor": { + "type": "string" + } + }, + "type": "object" + }, + "id": { + "type": "string" + }, + "labelListVisibility": { + "enum": [ + "labelShow", + "labelShowIfUnread", + "labelHide" + ], + "type": "string" + }, + "messageListVisibility": { + "enum": [ + "show", + "hide" + ], + "type": "string" + }, + "messagesTotal": { + "type": "integer" + }, + "messagesUnread": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "threadsTotal": { + "type": "integer" + }, + "threadsUnread": { + "type": "integer" + }, + "type": { + "enum": [ + "system", + "user" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.labels.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Label object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Label: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "color": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "textColor": { + "type": "string" + } + }, + "type": "object" + }, + "id": { + "type": "string" + }, + "labelListVisibility": { + "enum": [ + "labelShow", + "labelShowIfUnread", + "labelHide" + ], + "type": "string" + }, + "messageListVisibility": { + "enum": [ + "show", + "hide" + ], + "type": "string" + }, + "messagesTotal": { + "type": "integer" + }, + "messagesUnread": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "threadsTotal": { + "type": "integer" + }, + "threadsUnread": { + "type": "integer" + }, + "type": { + "enum": [ + "system", + "user" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.labels.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Label object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Label: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "color": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "textColor": { + "type": "string" + } + }, + "type": "object" + }, + "id": { + "type": "string" + }, + "labelListVisibility": { + "enum": [ + "labelShow", + "labelShowIfUnread", + "labelHide" + ], + "type": "string" + }, + "messageListVisibility": { + "enum": [ + "show", + "hide" + ], + "type": "string" + }, + "messagesTotal": { + "type": "integer" + }, + "messagesUnread": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "threadsTotal": { + "type": "integer" + }, + "threadsUnread": { + "type": "integer" + }, + "type": { + "enum": [ + "system", + "user" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.batchDelete2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchDeleteMessagesRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchDeleteMessagesRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "ids": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.batchModify2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchModifyMessagesRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchModifyMessagesRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "addClassificationLabels": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "addLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ids": { + "items": { + "type": "string" + }, + "type": "array" + }, + "removeClassificationLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "removeLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.import2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Message object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Message: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.insert2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Message object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Message: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.modify2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ModifyMessageRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ModifyMessageRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "addClassificationLabels": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "addLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "removeClassificationLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "removeLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.send2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Message object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Message: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.identities.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CseIdentity object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CseIdentity: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "emailAddress": { + "type": "string" + }, + "primaryKeyPairId": { + "type": "string" + }, + "signAndEncryptKeyPairs": { + "properties": { + "encryptionKeyPairId": { + "type": "string" + }, + "signingKeyPairId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.identities.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CseIdentity object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CseIdentity: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "emailAddress": { + "type": "string" + }, + "primaryKeyPairId": { + "type": "string" + }, + "signAndEncryptKeyPairs": { + "properties": { + "encryptionKeyPairId": { + "type": "string" + }, + "signingKeyPairId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.keypairs.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CseKeyPair object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CseKeyPair: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "disableTime": { + "type": "string" + }, + "enablementState": { + "enum": [ + "stateUnspecified", + "enabled", + "disabled" + ], + "type": "string" + }, + "keyPairId": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "pkcs7": { + "type": "string" + }, + "privateKeyMetadata": { + "items": { + "properties": { + "hardwareKeyMetadata": { + "properties": { + "description": { + "type": "string" + } + }, + "type": "object" + }, + "kaclsKeyMetadata": { + "properties": { + "kaclsData": { + "type": "string" + }, + "kaclsUri": { + "type": "string" + } + }, + "type": "object" + }, + "privateKeyMetadataId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "subjectEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.keypairs.disable2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON DisableCseKeyPairRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type DisableCseKeyPairRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "type": "object" +}
- Changed
gmail.users.settings.cse.keypairs.enable2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON EnableCseKeyPairRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type EnableCseKeyPairRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "type": "object" +}
- Changed
gmail.users.settings.cse.keypairs.obliterate2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ObliterateCseKeyPairRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ObliterateCseKeyPairRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "type": "object" +}
- Changed
gmail.users.settings.delegates.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Delegate object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Delegate: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "delegateEmail": { + "type": "string" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending", + "rejected", + "expired" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.filters.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Filter object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Filter: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "action": { + "properties": { + "addLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "forward": { + "type": "string" + }, + "removeLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "criteria": { + "properties": { + "excludeChats": { + "type": "boolean" + }, + "from": { + "type": "string" + }, + "hasAttachment": { + "type": "boolean" + }, + "negatedQuery": { + "type": "string" + }, + "query": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "sizeComparison": { + "enum": [ + "unspecified", + "smaller", + "larger" + ], + "type": "string" + }, + "subject": { + "type": "string" + }, + "to": { + "type": "string" + } + }, + "type": "object" + }, + "id": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.forwardingAddresses.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ForwardingAddress object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ForwardingAddress: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "forwardingEmail": { + "type": "string" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.sendAs.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SendAs object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type SendAs: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "displayName": { + "type": "string" + }, + "isDefault": { + "type": "boolean" + }, + "isPrimary": { + "type": "boolean" + }, + "replyToAddress": { + "type": "string" + }, + "sendAsEmail": { + "type": "string" + }, + "signature": { + "type": "string" + }, + "smtpMsa": { + "properties": { + "host": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "securityMode": { + "enum": [ + "securityModeUnspecified", + "none", + "ssl", + "starttls" + ], + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "treatAsAlias": { + "type": "boolean" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.sendAs.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SendAs object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type SendAs: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "displayName": { + "type": "string" + }, + "isDefault": { + "type": "boolean" + }, + "isPrimary": { + "type": "boolean" + }, + "replyToAddress": { + "type": "string" + }, + "sendAsEmail": { + "type": "string" + }, + "signature": { + "type": "string" + }, + "smtpMsa": { + "properties": { + "host": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "securityMode": { + "enum": [ + "securityModeUnspecified", + "none", + "ssl", + "starttls" + ], + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "treatAsAlias": { + "type": "boolean" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.sendAs.smimeInfo.insert2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SmimeInfo object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type SmimeInfo: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "encryptedKeyPassword": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isDefault": { + "type": "boolean" + }, + "issuerCn": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "pkcs12": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.sendAs.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SendAs object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type SendAs: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "displayName": { + "type": "string" + }, + "isDefault": { + "type": "boolean" + }, + "isPrimary": { + "type": "boolean" + }, + "replyToAddress": { + "type": "string" + }, + "sendAsEmail": { + "type": "string" + }, + "signature": { + "type": "string" + }, + "smtpMsa": { + "properties": { + "host": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "securityMode": { + "enum": [ + "securityModeUnspecified", + "none", + "ssl", + "starttls" + ], + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "treatAsAlias": { + "type": "boolean" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.updateAutoForwarding2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON AutoForwarding object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type AutoForwarding: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "disposition": { + "enum": [ + "dispositionUnspecified", + "leaveInInbox", + "archive", + "trash", + "markRead" + ], + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "enabled": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.updateImap2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ImapSettings object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ImapSettings: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "autoExpunge": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "expungeBehavior": { + "enum": [ + "expungeBehaviorUnspecified", + "archive", + "trash", + "deleteForever" + ], + "type": "string" + }, + "maxFolderSize": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.updateLanguage2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON LanguageSettings object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type LanguageSettings: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "displayLanguage": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.updatePop2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON PopSettings object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type PopSettings: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "accessWindow": { + "enum": [ + "accessWindowUnspecified", + "disabled", + "fromNowOn", + "allMail" + ], + "type": "string" + }, + "disposition": { + "enum": [ + "dispositionUnspecified", + "leaveInInbox", + "archive", + "trash", + "markRead" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.updateVacation2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON VacationSettings object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type VacationSettings: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "enableAutoReply": { + "type": "boolean" + }, + "endTime": { + "type": "string" + }, + "responseBodyHtml": { + "type": "string" + }, + "responseBodyPlainText": { + "type": "string" + }, + "responseSubject": { + "type": "string" + }, + "restrictToContacts": { + "type": "boolean" + }, + "restrictToDomain": { + "type": "boolean" + }, + "startTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.threads.modify2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ModifyThreadRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ModifyThreadRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "addLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "removeLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.watch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON WatchRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type WatchRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "labelFilterAction": { + "enum": [ + "include", + "exclude" + ], + "type": "string" + }, + "labelFilterBehavior": { + "enum": [ + "include", + "exclude" + ], + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "topicName": { + "type": "string" + } + }, + "type": "object" +}
- Changed
people.contactGroups.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CreateContactGroupRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CreateContactGroupRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "contactGroup": { + "properties": { + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "formattedName": { + "type": "string" + }, + "groupType": { + "enum": [ + "GROUP_TYPE_UNSPECIFIED", + "USER_CONTACT_GROUP", + "SYSTEM_CONTACT_GROUP" + ], + "type": "string" + }, + "memberCount": { + "type": "integer" + }, + "memberResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + }, + "readGroupFields": { + "type": "string" + } + }, + "type": "object" +}
- Changed
people.contactGroups.members.modify2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ModifyContactGroupMembersRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ModifyContactGroupMembersRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "resourceNamesToAdd": { + "items": { + "type": "string" + }, + "type": "array" + }, + "resourceNamesToRemove": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.contactGroups.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON UpdateContactGroupRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type UpdateContactGroupRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "contactGroup": { + "properties": { + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "formattedName": { + "type": "string" + }, + "groupType": { + "enum": [ + "GROUP_TYPE_UNSPECIFIED", + "USER_CONTACT_GROUP", + "SYSTEM_CONTACT_GROUP" + ], + "type": "string" + }, + "memberCount": { + "type": "integer" + }, + "memberResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + }, + "readGroupFields": { + "type": "string" + }, + "updateGroupFields": { + "type": "string" + } + }, + "type": "object" +}
- Changed
people.otherContacts.copyOtherContactToMyContactsGroup2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CopyOtherContactToMyContactsGroupRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CopyOtherContactToMyContactsGroupRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "copyMask": { + "type": "string" + }, + "readMask": { + "type": "string" + }, + "sources": { + "items": { + "enum": [ + "READ_SOURCE_TYPE_UNSPECIFIED", + "READ_SOURCE_TYPE_PROFILE", + "READ_SOURCE_TYPE_CONTACT", + "READ_SOURCE_TYPE_DOMAIN_CONTACT", + "READ_SOURCE_TYPE_OTHER_CONTACT" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.people.batchCreateContacts2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchCreateContactsRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchCreateContactsRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "contacts": { + "items": { + "properties": { + "contactPerson": { + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "type": "object" + }, + "metadata": { + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "type": "object" + }, + "domainMembership": { + "type": "object" + }, + "metadata": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "readMask": { + "type": "string" + }, + "sources": { + "items": { + "enum": [ + "READ_SOURCE_TYPE_UNSPECIFIED", + "READ_SOURCE_TYPE_PROFILE", + "READ_SOURCE_TYPE_CONTACT", + "READ_SOURCE_TYPE_DOMAIN_CONTACT", + "READ_SOURCE_TYPE_OTHER_CONTACT" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.people.batchDeleteContacts2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchDeleteContactsRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchDeleteContactsRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "resourceNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.people.batchUpdateContacts2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdateContactsRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchUpdateContactsRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "contacts": { + "type": "object" + }, + "readMask": { + "type": "string" + }, + "sources": { + "items": { + "enum": [ + "READ_SOURCE_TYPE_UNSPECIFIED", + "READ_SOURCE_TYPE_PROFILE", + "READ_SOURCE_TYPE_CONTACT", + "READ_SOURCE_TYPE_DOMAIN_CONTACT", + "READ_SOURCE_TYPE_OTHER_CONTACT" + ], + "type": "string" + }, + "type": "array" + }, + "updateMask": { + "type": "string" + } + }, + "type": "object" +}
- Changed
people.people.createContact2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Person object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Person: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "properties": { + "contactGroupId": { + "type": "string" + }, + "contactGroupResourceName": { + "type": "string" + } + }, + "type": "object" + }, + "domainMembership": { + "properties": { + "inViewerDomain": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "properties": { + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "userTypes": { + "items": { + "enum": [ + "USER_TYPE_UNKNOWN", + "GOOGLE_USER", + "GPLUS_USER", + "GOOGLE_APPS_USER" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.people.updateContact2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Person object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Person: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "properties": { + "contactGroupId": { + "type": "string" + }, + "contactGroupResourceName": { + "type": "string" + } + }, + "type": "object" + }, + "domainMembership": { + "properties": { + "inViewerDomain": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "properties": { + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "userTypes": { + "items": { + "enum": [ + "USER_TYPE_UNKNOWN", + "GOOGLE_USER", + "GPLUS_USER", + "GOOGLE_APPS_USER" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.people.updateContactPhoto2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON UpdateContactPhotoRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type UpdateContactPhotoRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "personFields": { + "type": "string" + }, + "photoBytes": { + "type": "string" + }, + "sources": { + "items": { + "enum": [ + "READ_SOURCE_TYPE_UNSPECIFIED", + "READ_SOURCE_TYPE_PROFILE", + "READ_SOURCE_TYPE_CONTACT", + "READ_SOURCE_TYPE_DOMAIN_CONTACT", + "READ_SOURCE_TYPE_OTHER_CONTACT" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
script.projects.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CreateProjectRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CreateProjectRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "parentId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" +}
- Changed
script.projects.deployments.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON DeploymentConfig object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type DeploymentConfig: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "description": { + "type": "string" + }, + "manifestFileName": { + "type": "string" + }, + "scriptId": { + "type": "string" + }, + "versionNumber": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
script.projects.deployments.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON UpdateDeploymentRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type UpdateDeploymentRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "deploymentConfig": { + "properties": { + "description": { + "type": "string" + }, + "manifestFileName": { + "type": "string" + }, + "scriptId": { + "type": "string" + }, + "versionNumber": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
script.projects.updateContent2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Content object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Content: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "files": { + "items": { + "properties": { + "createTime": { + "type": "string" + }, + "functionSet": { + "properties": { + "values": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "lastModifyUser": { + "properties": { + "domain": { + "type": "string" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + }, + "photoUrl": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "type": "string" + }, + "type": { + "enum": [ + "ENUM_TYPE_UNSPECIFIED", + "SERVER_JS", + "HTML", + "JSON" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "scriptId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
script.projects.versions.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Version object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Version: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "createTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "scriptId": { + "type": "string" + }, + "versionNumber": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
script.scripts.run2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ExecutionRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ExecutionRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "devMode": { + "type": "boolean" + }, + "function": { + "type": "string" + }, + "parameters": { + "items": { + "type": "any" + }, + "type": "array" + }, + "sessionState": { + "type": "string" + } + }, + "type": "object" +}
- Changed
searchconsole.searchanalytics.query2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SearchAnalyticsQueryRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type SearchAnalyticsQueryRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "aggregationType": { + "enum": [ + "AUTO", + "BY_PROPERTY", + "BY_PAGE", + "BY_NEWS_SHOWCASE_PANEL" + ], + "type": "string" + }, + "dataState": { + "enum": [ + "DATA_STATE_UNSPECIFIED", + "FINAL", + "ALL", + "HOURLY_ALL" + ], + "type": "string" + }, + "dimensionFilterGroups": { + "items": { + "properties": { + "filters": { + "items": { + "properties": { + "dimension": { + "enum": [ + "QUERY", + "PAGE", + "COUNTRY", + "DEVICE", + "SEARCH_APPEARANCE" + ], + "type": "string" + }, + "expression": { + "type": "string" + }, + "operator": { + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "INCLUDING_REGEX", + "EXCLUDING_REGEX" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "groupType": { + "enum": [ + "AND" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "dimensions": { + "items": { + "enum": [ + "DATE", + "QUERY", + "PAGE", + "COUNTRY", + "DEVICE", + "SEARCH_APPEARANCE", + "HOUR" + ], + "type": "string" + }, + "type": "array" + }, + "endDate": { + "type": "string" + }, + "rowLimit": { + "type": "integer" + }, + "searchType": { + "enum": [ + "WEB", + "IMAGE", + "VIDEO", + "NEWS", + "DISCOVER", + "GOOGLE_NEWS" + ], + "type": "string" + }, + "startDate": { + "type": "string" + }, + "startRow": { + "type": "integer" + }, + "type": { + "enum": [ + "WEB", + "IMAGE", + "VIDEO", + "NEWS", + "DISCOVER", + "GOOGLE_NEWS" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
searchconsole.urlInspection.index.inspect2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON InspectUrlIndexRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type InspectUrlIndexRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "inspectionUrl": { + "type": "string" + }, + "languageCode": { + "type": "string" + }, + "siteUrl": { + "type": "string" + } + }, + "type": "object" +}
- Changed
searchconsole.urlTestingTools.mobileFriendlyTest.run2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON RunMobileFriendlyTestRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type RunMobileFriendlyTestRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "requestScreenshot": { + "type": "boolean" + }, + "url": { + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.batchUpdate2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdateSpreadsheetRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchUpdateSpreadsheetRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "includeSpreadsheetInResponse": { + "type": "boolean" + }, + "requests": { + "items": { + "properties": { + "addBanding": { + "properties": { + "bandedRange": { + "properties": { + "bandedRangeId": { + "type": "integer" + }, + "bandedRangeReference": { + "type": "string" + }, + "columnProperties": { + "type": "object" + }, + "range": { + "type": "object" + }, + "rowProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addChart": { + "properties": { + "chart": { + "properties": { + "border": { + "type": "object" + }, + "chartId": { + "type": "integer" + }, + "position": { + "type": "object" + }, + "spec": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addCommentReply": { + "properties": { + "commentId": { + "type": "string" + }, + "post": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedSpreadsheet": { + "type": "boolean" + }, + "fromImportedSpreadsheet": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addConditionalFormatRule": { + "properties": { + "index": { + "type": "integer" + }, + "rule": { + "properties": { + "booleanRule": { + "type": "object" + }, + "gradientRule": { + "type": "object" + }, + "ranges": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addDataSource": { + "properties": { + "dataSource": { + "properties": { + "calculatedColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "dataSourceId": { + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spec": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addDimensionGroup": { + "properties": { + "range": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addFilterView": { + "properties": { + "filter": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "filterViewId": { + "type": "integer" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "type": "object" + }, + "sortSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addNamedRange": { + "properties": { + "namedRange": { + "properties": { + "name": { + "type": "string" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addProtectedRange": { + "properties": { + "protectedRange": { + "properties": { + "description": { + "type": "string" + }, + "editors": { + "type": "object" + }, + "namedRangeId": { + "type": "string" + }, + "protectedRangeId": { + "type": "integer" + }, + "range": { + "type": "object" + }, + "requestingUserCanEdit": { + "type": "boolean" + }, + "tableId": { + "type": "string" + }, + "unprotectedRanges": { + "items": { + "type": "object" + }, + "type": "array" + }, + "warningOnly": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addSheet": { + "properties": { + "properties": { + "properties": { + "dataSourceSheetProperties": { + "type": "object" + }, + "gridProperties": { + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "index": { + "type": "integer" + }, + "rightToLeft": { + "type": "boolean" + }, + "sheetId": { + "type": "integer" + }, + "sheetType": { + "enum": [ + "SHEET_TYPE_UNSPECIFIED", + "GRID", + "OBJECT", + "DATA_SOURCE" + ], + "type": "string" + }, + "tabColor": { + "type": "object" + }, + "tabColorStyle": { + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addSlicer": { + "properties": { + "slicer": { + "properties": { + "position": { + "type": "object" + }, + "slicerId": { + "type": "integer" + }, + "spec": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addTable": { + "properties": { + "table": { + "properties": { + "columnProperties": { + "items": { + "type": "object" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "range": { + "type": "object" + }, + "rowsProperties": { + "type": "object" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "appendCells": { + "properties": { + "fields": { + "type": "string" + }, + "rows": { + "items": { + "properties": { + "values": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "sheetId": { + "type": "integer" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + }, + "appendDimension": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "length": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "autoFill": { + "properties": { + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "sourceAndDestination": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "fillLength": { + "type": "integer" + }, + "source": { + "type": "object" + } + }, + "type": "object" + }, + "useAlternateSeries": { + "type": "boolean" + } + }, + "type": "object" + }, + "autoResizeDimensions": { + "properties": { + "dataSourceSheetDimensions": { + "properties": { + "columnReferences": { + "items": { + "type": "object" + }, + "type": "array" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "dimensions": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "cancelDataSourceRefresh": { + "properties": { + "dataSourceId": { + "type": "string" + }, + "isAll": { + "type": "boolean" + }, + "references": { + "properties": { + "references": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "clearBasicFilter": { + "properties": { + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "copyPaste": { + "properties": { + "destination": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "pasteOrientation": { + "enum": [ + "NORMAL", + "TRANSPOSE" + ], + "type": "string" + }, + "pasteType": { + "enum": [ + "PASTE_NORMAL", + "PASTE_VALUES", + "PASTE_FORMAT", + "PASTE_NO_BORDERS", + "PASTE_FORMULA", + "PASTE_DATA_VALIDATION", + "PASTE_CONDITIONAL_FORMATTING" + ], + "type": "string" + }, + "source": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "createDeveloperMetadata": { + "properties": { + "developerMetadata": { + "properties": { + "location": { + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "cutPaste": { + "properties": { + "destination": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "pasteType": { + "enum": [ + "PASTE_NORMAL", + "PASTE_VALUES", + "PASTE_FORMAT", + "PASTE_NO_BORDERS", + "PASTE_FORMULA", + "PASTE_DATA_VALIDATION", + "PASTE_CONDITIONAL_FORMATTING" + ], + "type": "string" + }, + "source": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deleteBanding": { + "properties": { + "bandedRangeId": { + "type": "integer" + } + }, + "type": "object" + }, + "deleteComment": { + "properties": { + "commentId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteCommentReply": { + "properties": { + "commentId": { + "type": "string" + }, + "postId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteConditionalFormatRule": { + "properties": { + "index": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "deleteDataSource": { + "properties": { + "dataSourceId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteDeveloperMetadata": { + "properties": { + "dataFilter": { + "properties": { + "a1Range": { + "type": "string" + }, + "developerMetadataLookup": { + "type": "object" + }, + "gridRange": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deleteDimension": { + "properties": { + "range": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deleteDimensionGroup": { + "properties": { + "range": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deleteDuplicates": { + "properties": { + "comparisonColumns": { + "items": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deleteEmbeddedObject": { + "properties": { + "objectId": { + "type": "integer" + } + }, + "type": "object" + }, + "deleteFilterView": { + "properties": { + "filterId": { + "type": "integer" + } + }, + "type": "object" + }, + "deleteNamedRange": { + "properties": { + "namedRangeId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteProtectedRange": { + "properties": { + "protectedRangeId": { + "type": "integer" + } + }, + "type": "object" + }, + "deleteRange": { + "properties": { + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "shiftDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + } + }, + "type": "object" + }, + "deleteSheet": { + "properties": { + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "deleteTable": { + "properties": { + "tableId": { + "type": "string" + } + }, + "type": "object" + }, + "duplicateFilterView": { + "properties": { + "filterId": { + "type": "integer" + } + }, + "type": "object" + }, + "duplicateSheet": { + "properties": { + "insertSheetIndex": { + "type": "integer" + }, + "newSheetId": { + "type": "integer" + }, + "newSheetName": { + "type": "string" + }, + "sourceSheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "findReplace": { + "properties": { + "allSheets": { + "type": "boolean" + }, + "find": { + "type": "string" + }, + "includeFormulas": { + "type": "boolean" + }, + "matchCase": { + "type": "boolean" + }, + "matchEntireCell": { + "type": "boolean" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "replacement": { + "type": "string" + }, + "searchByRegex": { + "type": "boolean" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "insertComment": { + "properties": { + "assigneeEmailAddress": { + "type": "string" + }, + "content": { + "type": "string" + }, + "coordinate": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "insertDimension": { + "properties": { + "inheritFromBefore": { + "type": "boolean" + }, + "range": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "insertRange": { + "properties": { + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "shiftDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + } + }, + "type": "object" + }, + "mergeCells": { + "properties": { + "mergeType": { + "enum": [ + "MERGE_ALL", + "MERGE_COLUMNS", + "MERGE_ROWS" + ], + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "moveDimension": { + "properties": { + "destinationIndex": { + "type": "integer" + }, + "source": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pasteData": { + "properties": { + "coordinate": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "data": { + "type": "string" + }, + "delimiter": { + "type": "string" + }, + "html": { + "type": "boolean" + }, + "type": { + "enum": [ + "PASTE_NORMAL", + "PASTE_VALUES", + "PASTE_FORMAT", + "PASTE_NO_BORDERS", + "PASTE_FORMULA", + "PASTE_DATA_VALIDATION", + "PASTE_CONDITIONAL_FORMATTING" + ], + "type": "string" + } + }, + "type": "object" + }, + "randomizeRange": { + "properties": { + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "refreshDataSource": { + "properties": { + "dataSourceId": { + "type": "string" + }, + "force": { + "type": "boolean" + }, + "isAll": { + "type": "boolean" + }, + "references": { + "properties": { + "references": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "repeatCell": { + "properties": { + "cell": { + "properties": { + "chipRuns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "dataSourceFormula": { + "type": "object" + }, + "dataSourceTable": { + "type": "object" + }, + "dataValidation": { + "type": "object" + }, + "effectiveFormat": { + "type": "object" + }, + "effectiveValue": { + "type": "object" + }, + "formattedValue": { + "type": "string" + }, + "hyperlink": { + "type": "string" + }, + "note": { + "type": "string" + }, + "pivotTable": { + "type": "object" + }, + "textFormatRuns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "userEnteredFormat": { + "type": "object" + }, + "userEnteredValue": { + "type": "object" + } + }, + "type": "object" + }, + "fields": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "setBasicFilter": { + "properties": { + "filter": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "range": { + "type": "object" + }, + "sortSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "setDataValidation": { + "properties": { + "filteredRowsIncluded": { + "type": "boolean" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "rule": { + "properties": { + "condition": { + "type": "object" + }, + "inputMessage": { + "type": "string" + }, + "showCustomUi": { + "type": "boolean" + }, + "strict": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "sortRange": { + "properties": { + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "sortSpecs": { + "items": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "dimensionIndex": { + "type": "integer" + }, + "foregroundColor": { + "type": "object" + }, + "foregroundColorStyle": { + "type": "object" + }, + "sortOrder": { + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "textToColumns": { + "properties": { + "delimiter": { + "type": "string" + }, + "delimiterType": { + "enum": [ + "DELIMITER_TYPE_UNSPECIFIED", + "COMMA", + "SEMICOLON", + "PERIOD", + "SPACE", + "CUSTOM", + "AUTODETECT" + ], + "type": "string" + }, + "source": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "trimWhitespace": { + "properties": { + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "unmergeCells": { + "properties": { + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateBanding": { + "properties": { + "bandedRange": { + "properties": { + "bandedRangeId": { + "type": "integer" + }, + "bandedRangeReference": { + "type": "string" + }, + "columnProperties": { + "type": "object" + }, + "range": { + "type": "object" + }, + "rowProperties": { + "type": "object" + } + }, + "type": "object" + }, + "fields": { + "type": "string" + } + }, + "type": "object" + }, + "updateBorders": { + "properties": { + "bottom": { + "properties": { + "color": { + "type": "object" + }, + "colorStyle": { + "type": "object" + }, + "style": { + "enum": [ + "STYLE_UNSPECIFIED", + "DOTTED", + "DASHED", + "SOLID", + "SOLID_MEDIUM", + "SOLID_THICK", + "NONE", + "DOUBLE" + ], + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "innerHorizontal": { + "properties": { + "color": { + "type": "object" + }, + "colorStyle": { + "type": "object" + }, + "style": { + "enum": [ + "STYLE_UNSPECIFIED", + "DOTTED", + "DASHED", + "SOLID", + "SOLID_MEDIUM", + "SOLID_THICK", + "NONE", + "DOUBLE" + ], + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "innerVertical": { + "properties": { + "color": { + "type": "object" + }, + "colorStyle": { + "type": "object" + }, + "style": { + "enum": [ + "STYLE_UNSPECIFIED", + "DOTTED", + "DASHED", + "SOLID", + "SOLID_MEDIUM", + "SOLID_THICK", + "NONE", + "DOUBLE" + ], + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "left": { + "properties": { + "color": { + "type": "object" + }, + "colorStyle": { + "type": "object" + }, + "style": { + "enum": [ + "STYLE_UNSPECIFIED", + "DOTTED", + "DASHED", + "SOLID", + "SOLID_MEDIUM", + "SOLID_THICK", + "NONE", + "DOUBLE" + ], + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "right": { + "properties": { + "color": { + "type": "object" + }, + "colorStyle": { + "type": "object" + }, + "style": { + "enum": [ + "STYLE_UNSPECIFIED", + "DOTTED", + "DASHED", + "SOLID", + "SOLID_MEDIUM", + "SOLID_THICK", + "NONE", + "DOUBLE" + ], + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "top": { + "properties": { + "color": { + "type": "object" + }, + "colorStyle": { + "type": "object" + }, + "style": { + "enum": [ + "STYLE_UNSPECIFIED", + "DOTTED", + "DASHED", + "SOLID", + "SOLID_MEDIUM", + "SOLID_THICK", + "NONE", + "DOUBLE" + ], + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateCells": { + "properties": { + "fields": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "rows": { + "items": { + "properties": { + "values": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "start": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateChartSpec": { + "properties": { + "chartId": { + "type": "integer" + }, + "spec": { + "properties": { + "altText": { + "type": "string" + }, + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "basicChart": { + "type": "object" + }, + "bubbleChart": { + "type": "object" + }, + "candlestickChart": { + "type": "object" + }, + "dataSourceChartProperties": { + "type": "object" + }, + "filterSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "fontName": { + "type": "string" + }, + "hiddenDimensionStrategy": { + "enum": [ + "CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED", + "SKIP_HIDDEN_ROWS_AND_COLUMNS", + "SKIP_HIDDEN_ROWS", + "SKIP_HIDDEN_COLUMNS", + "SHOW_ALL" + ], + "type": "string" + }, + "histogramChart": { + "type": "object" + }, + "maximized": { + "type": "boolean" + }, + "orgChart": { + "type": "object" + }, + "pieChart": { + "type": "object" + }, + "scorecardChart": { + "type": "object" + }, + "sortSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "subtitle": { + "type": "string" + }, + "subtitleTextFormat": { + "type": "object" + }, + "subtitleTextPosition": { + "type": "object" + }, + "title": { + "type": "string" + }, + "titleTextFormat": { + "type": "object" + }, + "titleTextPosition": { + "type": "object" + }, + "treemapChart": { + "type": "object" + }, + "waterfallChart": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateCommentPost": { + "properties": { + "commentId": { + "type": "string" + }, + "content": { + "type": "string" + }, + "postId": { + "type": "string" + } + }, + "type": "object" + }, + "updateConditionalFormatRule": { + "properties": { + "index": { + "type": "integer" + }, + "newIndex": { + "type": "integer" + }, + "rule": { + "properties": { + "booleanRule": { + "type": "object" + }, + "gradientRule": { + "type": "object" + }, + "ranges": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "updateDataSource": { + "properties": { + "dataSource": { + "properties": { + "calculatedColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "dataSourceId": { + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spec": { + "type": "object" + } + }, + "type": "object" + }, + "fields": { + "type": "string" + } + }, + "type": "object" + }, + "updateDeveloperMetadata": { + "properties": { + "dataFilters": { + "items": { + "properties": { + "a1Range": { + "type": "string" + }, + "developerMetadataLookup": { + "type": "object" + }, + "gridRange": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "developerMetadata": { + "properties": { + "location": { + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "fields": { + "type": "string" + } + }, + "type": "object" + }, + "updateDimensionGroup": { + "properties": { + "dimensionGroup": { + "properties": { + "collapsed": { + "type": "boolean" + }, + "depth": { + "type": "integer" + }, + "range": { + "type": "object" + } + }, + "type": "object" + }, + "fields": { + "type": "string" + } + }, + "type": "object" + }, + "updateDimensionProperties": { + "properties": { + "dataSourceSheetRange": { + "properties": { + "columnReferences": { + "items": { + "type": "object" + }, + "type": "array" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "fields": { + "type": "string" + }, + "properties": { + "properties": { + "dataSourceColumnReference": { + "type": "object" + }, + "developerMetadata": { + "items": { + "type": "object" + }, + "type": "array" + }, + "hiddenByFilter": { + "type": "boolean" + }, + "hiddenByUser": { + "type": "boolean" + }, + "pixelSize": { + "type": "integer" + } + }, + "type": "object" + }, + "range": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateEmbeddedObjectBorder": { + "properties": { + "border": { + "properties": { + "color": { + "type": "object" + }, + "colorStyle": { + "type": "object" + } + }, + "type": "object" + }, + "fields": { + "type": "string" + }, + "objectId": { + "type": "integer" + } + }, + "type": "object" + }, + "updateEmbeddedObjectPosition": { + "properties": { + "fields": { + "type": "string" + }, + "newPosition": { + "properties": { + "newSheet": { + "type": "boolean" + }, + "overlayPosition": { + "type": "object" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "objectId": { + "type": "integer" + } + }, + "type": "object" + }, + "updateFilterView": { + "properties": { + "fields": { + "type": "string" + }, + "filter": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "filterViewId": { + "type": "integer" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "type": "object" + }, + "sortSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateNamedRange": { + "properties": { + "fields": { + "type": "string" + }, + "namedRange": { + "properties": { + "name": { + "type": "string" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateProtectedRange": { + "properties": { + "fields": { + "type": "string" + }, + "protectedRange": { + "properties": { + "description": { + "type": "string" + }, + "editors": { + "type": "object" + }, + "namedRangeId": { + "type": "string" + }, + "protectedRangeId": { + "type": "integer" + }, + "range": { + "type": "object" + }, + "requestingUserCanEdit": { + "type": "boolean" + }, + "tableId": { + "type": "string" + }, + "unprotectedRanges": { + "items": { + "type": "object" + }, + "type": "array" + }, + "warningOnly": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateSheetProperties": { + "properties": { + "fields": { + "type": "string" + }, + "properties": { + "properties": { + "dataSourceSheetProperties": { + "type": "object" + }, + "gridProperties": { + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "index": { + "type": "integer" + }, + "rightToLeft": { + "type": "boolean" + }, + "sheetId": { + "type": "integer" + }, + "sheetType": { + "enum": [ + "SHEET_TYPE_UNSPECIFIED", + "GRID", + "OBJECT", + "DATA_SOURCE" + ], + "type": "string" + }, + "tabColor": { + "type": "object" + }, + "tabColorStyle": { + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateSlicerSpec": { + "properties": { + "fields": { + "type": "string" + }, + "slicerId": { + "type": "integer" + }, + "spec": { + "properties": { + "applyToPivotTables": { + "type": "boolean" + }, + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "columnIndex": { + "type": "integer" + }, + "dataRange": { + "type": "object" + }, + "filterCriteria": { + "type": "object" + }, + "horizontalAlignment": { + "enum": [ + "HORIZONTAL_ALIGN_UNSPECIFIED", + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "textFormat": { + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateSpreadsheetProperties": { + "properties": { + "fields": { + "type": "string" + }, + "properties": { + "properties": { + "autoRecalc": { + "enum": [ + "RECALCULATION_INTERVAL_UNSPECIFIED", + "ON_CHANGE", + "MINUTE", + "HOUR" + ], + "type": "string" + }, + "defaultFormat": { + "type": "object" + }, + "importFunctionsExternalUrlAccessAllowed": { + "type": "boolean" + }, + "iterativeCalculationSettings": { + "type": "object" + }, + "locale": { + "type": "string" + }, + "spreadsheetTheme": { + "type": "object" + }, + "timeZone": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateTable": { + "properties": { + "fields": { + "type": "string" + }, + "table": { + "properties": { + "columnProperties": { + "items": { + "type": "object" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "range": { + "type": "object" + }, + "rowsProperties": { + "type": "object" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "responseIncludeGridData": { + "type": "boolean" + }, + "responseRanges": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Spreadsheet object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Spreadsheet: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedSpreadsheet": { + "type": "boolean" + }, + "fromImportedSpreadsheet": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedSpreadsheet": { + "type": "boolean" + }, + "fromImportedSpreadsheet": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "dataSourceSchedules": { + "items": { + "properties": { + "dailySchedule": { + "properties": { + "startTime": { + "properties": { + "hours": { + "type": "integer" + }, + "minutes": { + "type": "integer" + }, + "nanos": { + "type": "integer" + }, + "seconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "monthlySchedule": { + "properties": { + "daysOfMonth": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "startTime": { + "properties": { + "hours": { + "type": "integer" + }, + "minutes": { + "type": "integer" + }, + "nanos": { + "type": "integer" + }, + "seconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "nextRun": { + "properties": { + "endTime": { + "type": "string" + }, + "startTime": { + "type": "string" + } + }, + "type": "object" + }, + "refreshScope": { + "enum": [ + "DATA_SOURCE_REFRESH_SCOPE_UNSPECIFIED", + "ALL_DATA_SOURCES" + ], + "type": "string" + }, + "weeklySchedule": { + "properties": { + "daysOfWeek": { + "items": { + "enum": [ + "DAY_OF_WEEK_UNSPECIFIED", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ], + "type": "string" + }, + "type": "array" + }, + "startTime": { + "properties": { + "hours": { + "type": "integer" + }, + "minutes": { + "type": "integer" + }, + "nanos": { + "type": "integer" + }, + "seconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "dataSources": { + "items": { + "properties": { + "calculatedColumns": { + "items": { + "properties": { + "formula": { + "type": "string" + }, + "reference": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "dataSourceId": { + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spec": { + "properties": { + "bigQuery": { + "properties": { + "projectId": { + "type": "string" + }, + "querySpec": { + "type": "object" + }, + "tableSpec": { + "type": "object" + } + }, + "type": "object" + }, + "looker": { + "properties": { + "explore": { + "type": "string" + }, + "instanceUri": { + "type": "string" + }, + "model": { + "type": "string" + } + }, + "type": "object" + }, + "parameters": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "developerMetadata": { + "items": { + "properties": { + "location": { + "properties": { + "dimensionRange": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "namedRanges": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "properties": { + "autoRecalc": { + "enum": [ + "RECALCULATION_INTERVAL_UNSPECIFIED", + "ON_CHANGE", + "MINUTE", + "HOUR" + ], + "type": "string" + }, + "defaultFormat": { + "properties": { + "backgroundColor": { + "properties": { + "alpha": { + "type": "number" + }, + "blue": { + "type": "number" + }, + "green": { + "type": "number" + }, + "red": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundColorStyle": { + "properties": { + "rgbColor": { + "type": "object" + }, + "themeColor": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "TEXT", + "BACKGROUND", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "LINK" + ], + "type": "string" + } + }, + "type": "object" + }, + "borders": { + "properties": { + "bottom": { + "type": "object" + }, + "left": { + "type": "object" + }, + "right": { + "type": "object" + }, + "top": { + "type": "object" + } + }, + "type": "object" + }, + "horizontalAlignment": { + "enum": [ + "HORIZONTAL_ALIGN_UNSPECIFIED", + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "hyperlinkDisplayType": { + "enum": [ + "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED", + "LINKED", + "PLAIN_TEXT" + ], + "type": "string" + }, + "numberFormat": { + "properties": { + "pattern": { + "type": "string" + }, + "type": { + "enum": [ + "NUMBER_FORMAT_TYPE_UNSPECIFIED", + "TEXT", + "NUMBER", + "PERCENT", + "CURRENCY", + "DATE", + "TIME", + "DATE_TIME", + "SCIENTIFIC" + ], + "type": "string" + } + }, + "type": "object" + }, + "padding": { + "properties": { + "bottom": { + "type": "integer" + }, + "left": { + "type": "integer" + }, + "right": { + "type": "integer" + }, + "top": { + "type": "integer" + } + }, + "type": "object" + }, + "textDirection": { + "enum": [ + "TEXT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "type": "string" + }, + "textFormat": { + "properties": { + "bold": { + "type": "boolean" + }, + "fontFamily": { + "type": "string" + }, + "fontSize": { + "type": "integer" + }, + "foregroundColor": { + "type": "object" + }, + "foregroundColorStyle": { + "type": "object" + }, + "italic": { + "type": "boolean" + }, + "link": { + "type": "object" + }, + "strikethrough": { + "type": "boolean" + }, + "underline": { + "type": "boolean" + } + }, + "type": "object" + }, + "textRotation": { + "properties": { + "angle": { + "type": "integer" + }, + "vertical": { + "type": "boolean" + } + }, + "type": "object" + }, + "verticalAlignment": { + "enum": [ + "VERTICAL_ALIGN_UNSPECIFIED", + "TOP", + "MIDDLE", + "BOTTOM" + ], + "type": "string" + }, + "wrapStrategy": { + "enum": [ + "WRAP_STRATEGY_UNSPECIFIED", + "OVERFLOW_CELL", + "LEGACY_WRAP", + "CLIP", + "WRAP" + ], + "type": "string" + } + }, + "type": "object" + }, + "importFunctionsExternalUrlAccessAllowed": { + "type": "boolean" + }, + "iterativeCalculationSettings": { + "properties": { + "convergenceThreshold": { + "type": "number" + }, + "maxIterations": { + "type": "integer" + } + }, + "type": "object" + }, + "locale": { + "type": "string" + }, + "spreadsheetTheme": { + "properties": { + "primaryFontFamily": { + "type": "string" + }, + "themeColors": { + "items": { + "properties": { + "color": { + "type": "object" + }, + "colorType": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "TEXT", + "BACKGROUND", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "LINK" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "timeZone": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sheets": { + "items": { + "properties": { + "bandedRanges": { + "items": { + "properties": { + "bandedRangeId": { + "type": "integer" + }, + "bandedRangeReference": { + "type": "string" + }, + "columnProperties": { + "properties": { + "firstBandColor": { + "type": "object" + }, + "firstBandColorStyle": { + "type": "object" + }, + "footerColor": { + "type": "object" + }, + "footerColorStyle": { + "type": "object" + }, + "headerColor": { + "type": "object" + }, + "headerColorStyle": { + "type": "object" + }, + "secondBandColor": { + "type": "object" + }, + "secondBandColorStyle": { + "type": "object" + } + }, + "type": "object" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "rowProperties": { + "properties": { + "firstBandColor": { + "type": "object" + }, + "firstBandColorStyle": { + "type": "object" + }, + "footerColor": { + "type": "object" + }, + "footerColorStyle": { + "type": "object" + }, + "headerColor": { + "type": "object" + }, + "headerColorStyle": { + "type": "object" + }, + "secondBandColor": { + "type": "object" + }, + "secondBandColorStyle": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "basicFilter": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "filterCriteria": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "sortSpecs": { + "items": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "dimensionIndex": { + "type": "integer" + }, + "foregroundColor": { + "type": "object" + }, + "foregroundColorStyle": { + "type": "object" + }, + "sortOrder": { + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + }, + "charts": { + "items": { + "properties": { + "border": { + "properties": { + "color": { + "type": "object" + }, + "colorStyle": { + "type": "object" + } + }, + "type": "object" + }, + "chartId": { + "type": "integer" + }, + "position": { + "properties": { + "newSheet": { + "type": "boolean" + }, + "overlayPosition": { + "type": "object" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "spec": { + "properties": { + "altText": { + "type": "string" + }, + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "basicChart": { + "type": "object" + }, + "bubbleChart": { + "type": "object" + }, + "candlestickChart": { + "type": "object" + }, + "dataSourceChartProperties": { + "type": "object" + }, + "filterSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "fontName": { + "type": "string" + }, + "hiddenDimensionStrategy": { + "enum": [ + "CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED", + "SKIP_HIDDEN_ROWS_AND_COLUMNS", + "SKIP_HIDDEN_ROWS", + "SKIP_HIDDEN_COLUMNS", + "SHOW_ALL" + ], + "type": "string" + }, + "histogramChart": { + "type": "object" + }, + "maximized": { + "type": "boolean" + }, + "orgChart": { + "type": "object" + }, + "pieChart": { + "type": "object" + }, + "scorecardChart": { + "type": "object" + }, + "sortSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "subtitle": { + "type": "string" + }, + "subtitleTextFormat": { + "type": "object" + }, + "subtitleTextPosition": { + "type": "object" + }, + "title": { + "type": "string" + }, + "titleTextFormat": { + "type": "object" + }, + "titleTextPosition": { + "type": "object" + }, + "treemapChart": { + "type": "object" + }, + "waterfallChart": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "columnGroups": { + "items": { + "properties": { + "collapsed": { + "type": "boolean" + }, + "depth": { + "type": "integer" + }, + "range": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "conditionalFormats": { + "items": { + "properties": { + "booleanRule": { + "properties": { + "condition": { + "type": "object" + }, + "format": { + "type": "object" + } + }, + "type": "object" + }, + "gradientRule": { + "properties": { + "maxpoint": { + "type": "object" + }, + "midpoint": { + "type": "object" + }, + "minpoint": { + "type": "object" + } + }, + "type": "object" + }, + "ranges": { + "items": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "data": { + "items": { + "properties": { + "columnMetadata": { + "items": { + "properties": { + "dataSourceColumnReference": { + "type": "object" + }, + "developerMetadata": { + "items": { + "type": "object" + }, + "type": "array" + }, + "hiddenByFilter": { + "type": "boolean" + }, + "hiddenByUser": { + "type": "boolean" + }, + "pixelSize": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowData": { + "items": { + "properties": { + "values": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowMetadata": { + "items": { + "properties": { + "dataSourceColumnReference": { + "type": "object" + }, + "developerMetadata": { + "items": { + "type": "object" + }, + "type": "array" + }, + "hiddenByFilter": { + "type": "boolean" + }, + "hiddenByUser": { + "type": "boolean" + }, + "pixelSize": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "startColumn": { + "type": "integer" + }, + "startRow": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "developerMetadata": { + "items": { + "properties": { + "location": { + "properties": { + "dimensionRange": { + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "filterViews": { + "items": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "filterCriteria": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "filterViewId": { + "type": "integer" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "sortSpecs": { + "items": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "dimensionIndex": { + "type": "integer" + }, + "foregroundColor": { + "type": "object" + }, + "foregroundColorStyle": { + "type": "object" + }, + "sortOrder": { + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "merges": { + "items": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "properties": { + "dataSourceSheetProperties": { + "properties": { + "columns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "dataExecutionStatus": { + "type": "object" + }, + "dataSourceId": { + "type": "string" + } + }, + "type": "object" + }, + "gridProperties": { + "properties": { + "columnCount": { + "type": "integer" + }, + "columnGroupControlAfter": { + "type": "boolean" + }, + "frozenColumnCount": { + "type": "integer" + }, + "frozenRowCount": { + "type": "integer" + }, + "hideGridlines": { + "type": "boolean" + }, + "rowCount": { + "type": "integer" + }, + "rowGroupControlAfter": { + "type": "boolean" + } + }, + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "index": { + "type": "integer" + }, + "rightToLeft": { + "type": "boolean" + }, + "sheetId": { + "type": "integer" + }, + "sheetType": { + "enum": [ + "SHEET_TYPE_UNSPECIFIED", + "GRID", + "OBJECT", + "DATA_SOURCE" + ], + "type": "string" + }, + "tabColor": { + "properties": { + "alpha": { + "type": "number" + }, + "blue": { + "type": "number" + }, + "green": { + "type": "number" + }, + "red": { + "type": "number" + } + }, + "type": "object" + }, + "tabColorStyle": { + "properties": { + "rgbColor": { + "type": "object" + }, + "themeColor": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "TEXT", + "BACKGROUND", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "LINK" + ], + "type": "string" + } + }, + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "protectedRanges": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "editors": { + "properties": { + "domainUsersCanEdit": { + "type": "boolean" + }, + "groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "users": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "namedRangeId": { + "type": "string" + }, + "protectedRangeId": { + "type": "integer" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "requestingUserCanEdit": { + "type": "boolean" + }, + "tableId": { + "type": "string" + }, + "unprotectedRanges": { + "items": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "warningOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowGroups": { + "items": { + "properties": { + "collapsed": { + "type": "boolean" + }, + "depth": { + "type": "integer" + }, + "range": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "slicers": { + "items": { + "properties": { + "position": { + "properties": { + "newSheet": { + "type": "boolean" + }, + "overlayPosition": { + "type": "object" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "slicerId": { + "type": "integer" + }, + "spec": { + "properties": { + "applyToPivotTables": { + "type": "boolean" + }, + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "columnIndex": { + "type": "integer" + }, + "dataRange": { + "type": "object" + }, + "filterCriteria": { + "type": "object" + }, + "horizontalAlignment": { + "enum": [ + "HORIZONTAL_ALIGN_UNSPECIFIED", + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "textFormat": { + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "tables": { + "items": { + "properties": { + "columnProperties": { + "items": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "columnName": { + "type": "string" + }, + "columnType": { + "enum": [ + "COLUMN_TYPE_UNSPECIFIED", + "DOUBLE", + "CURRENCY", + "PERCENT", + "DATE", + "TIME", + "DATE_TIME", + "TEXT", + "BOOLEAN", + "DROPDOWN", + "FILES_CHIP", + "PEOPLE_CHIP", + "FINANCE_CHIP", + "PLACE_CHIP", + "RATINGS_CHIP" + ], + "type": "string" + }, + "dataValidationRule": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "rowsProperties": { + "properties": { + "firstBandColorStyle": { + "type": "object" + }, + "footerColorStyle": { + "type": "object" + }, + "headerColorStyle": { + "type": "object" + }, + "secondBandColorStyle": { + "type": "object" + } + }, + "type": "object" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "spreadsheetId": { + "type": "string" + }, + "spreadsheetUrl": { + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.developerMetadata.search2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON SearchDeveloperMetadataRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type SearchDeveloperMetadataRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "dataFilters": { + "items": { + "properties": { + "a1Range": { + "type": "string" + }, + "developerMetadataLookup": { + "properties": { + "locationMatchingStrategy": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED", + "EXACT_LOCATION", + "INTERSECTING_LOCATION" + ], + "type": "string" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataLocation": { + "properties": { + "dimensionRange": { + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "gridRange": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.getByDataFilter2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON GetSpreadsheetByDataFilterRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type GetSpreadsheetByDataFilterRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "dataFilters": { + "items": { + "properties": { + "a1Range": { + "type": "string" + }, + "developerMetadataLookup": { + "properties": { + "locationMatchingStrategy": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED", + "EXACT_LOCATION", + "INTERSECTING_LOCATION" + ], + "type": "string" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataLocation": { + "properties": { + "dimensionRange": { + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "gridRange": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "excludeTablesInBandedRanges": { + "type": "boolean" + }, + "includeGridData": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.sheets.copyTo2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON CopySheetToAnotherSpreadsheetRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type CopySheetToAnotherSpreadsheetRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "destinationSpreadsheetId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.append2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ValueRange object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ValueRange: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "range": { + "type": "string" + }, + "values": { + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.batchClear2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchClearValuesRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchClearValuesRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "ranges": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.batchClearByDataFilter2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchClearValuesByDataFilterRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchClearValuesByDataFilterRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "dataFilters": { + "items": { + "properties": { + "a1Range": { + "type": "string" + }, + "developerMetadataLookup": { + "properties": { + "locationMatchingStrategy": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED", + "EXACT_LOCATION", + "INTERSECTING_LOCATION" + ], + "type": "string" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataLocation": { + "properties": { + "dimensionRange": { + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "gridRange": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.batchGetByDataFilter2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchGetValuesByDataFilterRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchGetValuesByDataFilterRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "dataFilters": { + "items": { + "properties": { + "a1Range": { + "type": "string" + }, + "developerMetadataLookup": { + "properties": { + "locationMatchingStrategy": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED", + "EXACT_LOCATION", + "INTERSECTING_LOCATION" + ], + "type": "string" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataLocation": { + "properties": { + "dimensionRange": { + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "gridRange": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "dateTimeRenderOption": { + "enum": [ + "SERIAL_NUMBER", + "FORMATTED_STRING" + ], + "type": "string" + }, + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "valueRenderOption": { + "enum": [ + "FORMATTED_VALUE", + "UNFORMATTED_VALUE", + "FORMULA" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.batchUpdate2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdateValuesRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchUpdateValuesRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "data": { + "items": { + "properties": { + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "range": { + "type": "string" + }, + "values": { + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "includeValuesInResponse": { + "type": "boolean" + }, + "responseDateTimeRenderOption": { + "enum": [ + "SERIAL_NUMBER", + "FORMATTED_STRING" + ], + "type": "string" + }, + "responseValueRenderOption": { + "enum": [ + "FORMATTED_VALUE", + "UNFORMATTED_VALUE", + "FORMULA" + ], + "type": "string" + }, + "valueInputOption": { + "enum": [ + "INPUT_VALUE_OPTION_UNSPECIFIED", + "RAW", + "USER_ENTERED" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.batchUpdateByDataFilter2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdateValuesByDataFilterRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchUpdateValuesByDataFilterRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "data": { + "items": { + "properties": { + "dataFilter": { + "properties": { + "a1Range": { + "type": "string" + }, + "developerMetadataLookup": { + "properties": { + "locationMatchingStrategy": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED", + "EXACT_LOCATION", + "INTERSECTING_LOCATION" + ], + "type": "string" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataLocation": { + "type": "object" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "gridRange": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "values": { + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "includeValuesInResponse": { + "type": "boolean" + }, + "responseDateTimeRenderOption": { + "enum": [ + "SERIAL_NUMBER", + "FORMATTED_STRING" + ], + "type": "string" + }, + "responseValueRenderOption": { + "enum": [ + "FORMATTED_VALUE", + "UNFORMATTED_VALUE", + "FORMULA" + ], + "type": "string" + }, + "valueInputOption": { + "enum": [ + "INPUT_VALUE_OPTION_UNSPECIFIED", + "RAW", + "USER_ENTERED" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.clear2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ClearValuesRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ClearValuesRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "type": "object" +}
- Changed
sheets.spreadsheets.values.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON ValueRange object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type ValueRange: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "range": { + "type": "string" + }, + "values": { + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
slides.presentations.batchUpdate2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON BatchUpdatePresentationRequest object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type BatchUpdatePresentationRequest: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "requests": { + "items": { + "properties": { + "addCommentReply": { + "properties": { + "commentId": { + "type": "string" + }, + "post": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "createImage": { + "properties": { + "elementProperties": { + "properties": { + "pageObjectId": { + "type": "string" + }, + "size": { + "type": "object" + }, + "transform": { + "type": "object" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "createLine": { + "properties": { + "category": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "elementProperties": { + "properties": { + "pageObjectId": { + "type": "string" + }, + "size": { + "type": "object" + }, + "transform": { + "type": "object" + } + }, + "type": "object" + }, + "lineCategory": { + "enum": [ + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "createParagraphBullets": { + "properties": { + "bulletPreset": { + "enum": [ + "BULLET_DISC_CIRCLE_SQUARE", + "BULLET_DIAMONDX_ARROW3D_SQUARE", + "BULLET_CHECKBOX", + "BULLET_ARROW_DIAMOND_DISC", + "BULLET_STAR_CIRCLE_SQUARE", + "BULLET_ARROW3D_CIRCLE_SQUARE", + "BULLET_LEFTTRIANGLE_DIAMOND_DISC", + "BULLET_DIAMONDX_HOLLOWDIAMOND_SQUARE", + "BULLET_DIAMOND_CIRCLE_SQUARE", + "NUMBERED_DIGIT_ALPHA_ROMAN", + "NUMBERED_DIGIT_ALPHA_ROMAN_PARENS", + "NUMBERED_DIGIT_NESTED", + "NUMBERED_UPPERALPHA_ALPHA_ROMAN", + "NUMBERED_UPPERROMAN_UPPERALPHA_DIGIT", + "NUMBERED_ZERODIGIT_ALPHA_ROMAN" + ], + "type": "string" + }, + "cellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "textRange": { + "properties": { + "endIndex": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "RANGE_TYPE_UNSPECIFIED", + "FIXED_RANGE", + "FROM_START_INDEX", + "ALL" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "createShape": { + "properties": { + "elementProperties": { + "properties": { + "pageObjectId": { + "type": "string" + }, + "size": { + "type": "object" + }, + "transform": { + "type": "object" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + } + }, + "type": "object" + }, + "createSheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "elementProperties": { + "properties": { + "pageObjectId": { + "type": "string" + }, + "size": { + "type": "object" + }, + "transform": { + "type": "object" + } + }, + "type": "object" + }, + "linkingMode": { + "enum": [ + "NOT_LINKED_IMAGE", + "LINKED" + ], + "type": "string" + }, + "objectId": { + "type": "string" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "createSlide": { + "properties": { + "insertionIndex": { + "type": "integer" + }, + "objectId": { + "type": "string" + }, + "placeholderIdMappings": { + "items": { + "properties": { + "layoutPlaceholder": { + "type": "object" + }, + "layoutPlaceholderObjectId": { + "type": "string" + }, + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "slideLayoutReference": { + "properties": { + "layoutId": { + "type": "string" + }, + "predefinedLayout": { + "enum": [ + "PREDEFINED_LAYOUT_UNSPECIFIED", + "BLANK", + "CAPTION_ONLY", + "TITLE", + "TITLE_AND_BODY", + "TITLE_AND_TWO_COLUMNS", + "TITLE_ONLY", + "SECTION_HEADER", + "SECTION_TITLE_AND_DESCRIPTION", + "ONE_COLUMN_TEXT", + "MAIN_POINT", + "BIG_NUMBER" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "createTable": { + "properties": { + "columns": { + "type": "integer" + }, + "elementProperties": { + "properties": { + "pageObjectId": { + "type": "string" + }, + "size": { + "type": "object" + }, + "transform": { + "type": "object" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "rows": { + "type": "integer" + } + }, + "type": "object" + }, + "createVideo": { + "properties": { + "elementProperties": { + "properties": { + "pageObjectId": { + "type": "string" + }, + "size": { + "type": "object" + }, + "transform": { + "type": "object" + } + }, + "type": "object" + }, + "id": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + } + }, + "type": "object" + }, + "deleteComment": { + "properties": { + "commentId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteCommentReply": { + "properties": { + "commentId": { + "type": "string" + }, + "postId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteObject": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteParagraphBullets": { + "properties": { + "cellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "textRange": { + "properties": { + "endIndex": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "RANGE_TYPE_UNSPECIFIED", + "FIXED_RANGE", + "FROM_START_INDEX", + "ALL" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deleteTableColumn": { + "properties": { + "cellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "tableObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteTableRow": { + "properties": { + "cellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "tableObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "deleteText": { + "properties": { + "cellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "textRange": { + "properties": { + "endIndex": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "RANGE_TYPE_UNSPECIFIED", + "FIXED_RANGE", + "FROM_START_INDEX", + "ALL" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "duplicateObject": { + "properties": { + "objectId": { + "type": "string" + }, + "objectIds": { + "type": "object" + } + }, + "type": "object" + }, + "groupObjects": { + "properties": { + "childrenObjectIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "groupObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "insertComment": { + "properties": { + "assigneeEmailAddress": { + "type": "string" + }, + "content": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "shapeTextAnchor": { + "properties": { + "objectId": { + "type": "string" + }, + "textRange": { + "type": "object" + } + }, + "type": "object" + }, + "tableAnchor": { + "properties": { + "objectId": { + "type": "string" + }, + "tableRange": { + "type": "object" + } + }, + "type": "object" + }, + "tableCellTextAnchor": { + "properties": { + "cellLocation": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "textRange": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "insertTableColumns": { + "properties": { + "cellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "insertRight": { + "type": "boolean" + }, + "number": { + "type": "integer" + }, + "tableObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "insertTableRows": { + "properties": { + "cellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "insertBelow": { + "type": "boolean" + }, + "number": { + "type": "integer" + }, + "tableObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "insertText": { + "properties": { + "cellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "insertionIndex": { + "type": "integer" + }, + "objectId": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "mergeTableCells": { + "properties": { + "objectId": { + "type": "string" + }, + "tableRange": { + "properties": { + "columnSpan": { + "type": "integer" + }, + "location": { + "type": "object" + }, + "rowSpan": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "refreshSheetsChart": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "replaceAllShapesWithImage": { + "properties": { + "containsText": { + "properties": { + "matchCase": { + "type": "boolean" + }, + "searchByRegex": { + "type": "boolean" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "imageReplaceMethod": { + "enum": [ + "IMAGE_REPLACE_METHOD_UNSPECIFIED", + "CENTER_INSIDE", + "CENTER_CROP" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "pageObjectIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "replaceMethod": { + "enum": [ + "CENTER_INSIDE", + "CENTER_CROP" + ], + "type": "string" + } + }, + "type": "object" + }, + "replaceAllShapesWithSheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "containsText": { + "properties": { + "matchCase": { + "type": "boolean" + }, + "searchByRegex": { + "type": "boolean" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "linkingMode": { + "enum": [ + "NOT_LINKED_IMAGE", + "LINKED" + ], + "type": "string" + }, + "pageObjectIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "replaceAllText": { + "properties": { + "containsText": { + "properties": { + "matchCase": { + "type": "boolean" + }, + "searchByRegex": { + "type": "boolean" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "pageObjectIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "replaceText": { + "type": "string" + } + }, + "type": "object" + }, + "replaceImage": { + "properties": { + "imageObjectId": { + "type": "string" + }, + "imageReplaceMethod": { + "enum": [ + "IMAGE_REPLACE_METHOD_UNSPECIFIED", + "CENTER_INSIDE", + "CENTER_CROP" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "rerouteLine": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "ungroupObjects": { + "properties": { + "objectIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "unmergeTableCells": { + "properties": { + "objectId": { + "type": "string" + }, + "tableRange": { + "properties": { + "columnSpan": { + "type": "integer" + }, + "location": { + "type": "object" + }, + "rowSpan": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateCommentPost": { + "properties": { + "commentId": { + "type": "string" + }, + "content": { + "type": "string" + }, + "postId": { + "type": "string" + } + }, + "type": "object" + }, + "updateImageProperties": { + "properties": { + "fields": { + "type": "string" + }, + "imageProperties": { + "properties": { + "brightness": { + "type": "number" + }, + "contrast": { + "type": "number" + }, + "cropProperties": { + "type": "object" + }, + "link": { + "type": "object" + }, + "outline": { + "type": "object" + }, + "recolor": { + "type": "object" + }, + "shadow": { + "type": "object" + }, + "transparency": { + "type": "number" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "updateLineCategory": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "updateLineProperties": { + "properties": { + "fields": { + "type": "string" + }, + "lineProperties": { + "properties": { + "dashStyle": { + "enum": [ + "DASH_STYLE_UNSPECIFIED", + "SOLID", + "DOT", + "DASH", + "DASH_DOT", + "LONG_DASH", + "LONG_DASH_DOT" + ], + "type": "string" + }, + "endArrow": { + "enum": [ + "ARROW_STYLE_UNSPECIFIED", + "NONE", + "STEALTH_ARROW", + "FILL_ARROW", + "FILL_CIRCLE", + "FILL_SQUARE", + "FILL_DIAMOND", + "OPEN_ARROW", + "OPEN_CIRCLE", + "OPEN_SQUARE", + "OPEN_DIAMOND" + ], + "type": "string" + }, + "endConnection": { + "type": "object" + }, + "lineFill": { + "type": "object" + }, + "link": { + "type": "object" + }, + "startArrow": { + "enum": [ + "ARROW_STYLE_UNSPECIFIED", + "NONE", + "STEALTH_ARROW", + "FILL_ARROW", + "FILL_CIRCLE", + "FILL_SQUARE", + "FILL_DIAMOND", + "OPEN_ARROW", + "OPEN_CIRCLE", + "OPEN_SQUARE", + "OPEN_DIAMOND" + ], + "type": "string" + }, + "startConnection": { + "type": "object" + }, + "weight": { + "type": "object" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "updatePageElementAltText": { + "properties": { + "description": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "updatePageElementTransform": { + "properties": { + "applyMode": { + "enum": [ + "APPLY_MODE_UNSPECIFIED", + "RELATIVE", + "ABSOLUTE" + ], + "type": "string" + }, + "objectId": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updatePageElementsZOrder": { + "properties": { + "operation": { + "enum": [ + "Z_ORDER_OPERATION_UNSPECIFIED", + "BRING_TO_FRONT", + "BRING_FORWARD", + "SEND_BACKWARD", + "SEND_TO_BACK" + ], + "type": "string" + }, + "pageElementObjectIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "updatePageProperties": { + "properties": { + "fields": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "type": "object" + }, + "pageBackgroundFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateParagraphStyle": { + "properties": { + "cellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "fields": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "style": { + "properties": { + "alignment": { + "enum": [ + "ALIGNMENT_UNSPECIFIED", + "START", + "CENTER", + "END", + "JUSTIFIED" + ], + "type": "string" + }, + "direction": { + "enum": [ + "TEXT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "type": "string" + }, + "indentEnd": { + "type": "object" + }, + "indentFirstLine": { + "type": "object" + }, + "indentStart": { + "type": "object" + }, + "lineSpacing": { + "type": "number" + }, + "spaceAbove": { + "type": "object" + }, + "spaceBelow": { + "type": "object" + }, + "spacingMode": { + "enum": [ + "SPACING_MODE_UNSPECIFIED", + "NEVER_COLLAPSE", + "COLLAPSE_LISTS" + ], + "type": "string" + } + }, + "type": "object" + }, + "textRange": { + "properties": { + "endIndex": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "RANGE_TYPE_UNSPECIFIED", + "FIXED_RANGE", + "FROM_START_INDEX", + "ALL" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateShapeProperties": { + "properties": { + "fields": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "shapeProperties": { + "properties": { + "autofit": { + "type": "object" + }, + "contentAlignment": { + "enum": [ + "CONTENT_ALIGNMENT_UNSPECIFIED", + "CONTENT_ALIGNMENT_UNSUPPORTED", + "TOP", + "MIDDLE", + "BOTTOM" + ], + "type": "string" + }, + "link": { + "type": "object" + }, + "outline": { + "type": "object" + }, + "shadow": { + "type": "object" + }, + "shapeBackgroundFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateSlideProperties": { + "properties": { + "fields": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateSlidesPosition": { + "properties": { + "insertionIndex": { + "type": "integer" + }, + "slideObjectIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "updateTableBorderProperties": { + "properties": { + "borderPosition": { + "enum": [ + "ALL", + "BOTTOM", + "INNER", + "INNER_HORIZONTAL", + "INNER_VERTICAL", + "LEFT", + "OUTER", + "RIGHT", + "TOP" + ], + "type": "string" + }, + "fields": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "tableBorderProperties": { + "properties": { + "dashStyle": { + "enum": [ + "DASH_STYLE_UNSPECIFIED", + "SOLID", + "DOT", + "DASH", + "DASH_DOT", + "LONG_DASH", + "LONG_DASH_DOT" + ], + "type": "string" + }, + "tableBorderFill": { + "type": "object" + }, + "weight": { + "type": "object" + } + }, + "type": "object" + }, + "tableRange": { + "properties": { + "columnSpan": { + "type": "integer" + }, + "location": { + "type": "object" + }, + "rowSpan": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateTableCellProperties": { + "properties": { + "fields": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "tableCellProperties": { + "properties": { + "contentAlignment": { + "enum": [ + "CONTENT_ALIGNMENT_UNSPECIFIED", + "CONTENT_ALIGNMENT_UNSUPPORTED", + "TOP", + "MIDDLE", + "BOTTOM" + ], + "type": "string" + }, + "tableCellBackgroundFill": { + "type": "object" + } + }, + "type": "object" + }, + "tableRange": { + "properties": { + "columnSpan": { + "type": "integer" + }, + "location": { + "type": "object" + }, + "rowSpan": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateTableColumnProperties": { + "properties": { + "columnIndices": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "fields": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "tableColumnProperties": { + "properties": { + "columnWidth": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateTableRowProperties": { + "properties": { + "fields": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "rowIndices": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "tableRowProperties": { + "properties": { + "minRowHeight": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateTextStyle": { + "properties": { + "cellLocation": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "rowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "fields": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "style": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "baselineOffset": { + "enum": [ + "BASELINE_OFFSET_UNSPECIFIED", + "NONE", + "SUPERSCRIPT", + "SUBSCRIPT" + ], + "type": "string" + }, + "bold": { + "type": "boolean" + }, + "fontFamily": { + "type": "string" + }, + "fontSize": { + "type": "object" + }, + "foregroundColor": { + "type": "object" + }, + "italic": { + "type": "boolean" + }, + "link": { + "type": "object" + }, + "smallCaps": { + "type": "boolean" + }, + "strikethrough": { + "type": "boolean" + }, + "underline": { + "type": "boolean" + }, + "weightedFontFamily": { + "type": "object" + } + }, + "type": "object" + }, + "textRange": { + "properties": { + "endIndex": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "RANGE_TYPE_UNSPECIFIED", + "FIXED_RANGE", + "FROM_START_INDEX", + "ALL" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateVideoProperties": { + "properties": { + "fields": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "videoProperties": { + "properties": { + "autoPlay": { + "type": "boolean" + }, + "end": { + "type": "integer" + }, + "mute": { + "type": "boolean" + }, + "outline": { + "type": "object" + }, + "start": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "writeControl": { + "properties": { + "requiredRevisionId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
slides.presentations.create2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Presentation object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Presentation: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layouts": { + "items": { + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "properties": { + "objectId": { + "type": "string" + }, + "shapeTextAnchors": { + "type": "object" + }, + "tableCellAnchors": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "properties": { + "children": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "image": { + "properties": { + "contentUrl": { + "type": "string" + }, + "imageProperties": { + "type": "object" + }, + "placeholder": { + "type": "object" + }, + "sourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "line": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "lineProperties": { + "type": "object" + }, + "lineType": { + "enum": [ + "TYPE_UNSPECIFIED", + "STRAIGHT_CONNECTOR_1", + "BENT_CONNECTOR_2", + "BENT_CONNECTOR_3", + "BENT_CONNECTOR_4", + "BENT_CONNECTOR_5", + "CURVED_CONNECTOR_2", + "CURVED_CONNECTOR_3", + "CURVED_CONNECTOR_4", + "CURVED_CONNECTOR_5", + "STRAIGHT_LINE" + ], + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "properties": { + "placeholder": { + "type": "object" + }, + "shapeProperties": { + "type": "object" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + }, + "text": { + "type": "object" + } + }, + "type": "object" + }, + "sheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "contentUrl": { + "type": "string" + }, + "sheetsChartProperties": { + "type": "object" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "properties": { + "height": { + "type": "object" + }, + "width": { + "type": "object" + } + }, + "type": "object" + }, + "speakerSpotlight": { + "properties": { + "speakerSpotlightProperties": { + "type": "object" + } + }, + "type": "object" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "horizontalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rows": { + "type": "integer" + }, + "tableColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "verticalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "video": { + "properties": { + "id": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "videoProperties": { + "type": "object" + } + }, + "type": "object" + }, + "wordArt": { + "properties": { + "renderedText": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "properties": { + "colors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "pageBackgroundFill": { + "properties": { + "propertyState": { + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "type": "string" + }, + "solidFill": { + "type": "object" + }, + "stretchedPictureFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "properties": { + "commentAnchors": { + "items": { + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "type": "object" + }, + "masterProperties": { + "type": "object" + }, + "notesProperties": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "locale": { + "type": "string" + }, + "masters": { + "items": { + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "properties": { + "objectId": { + "type": "string" + }, + "shapeTextAnchors": { + "type": "object" + }, + "tableCellAnchors": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "properties": { + "children": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "image": { + "properties": { + "contentUrl": { + "type": "string" + }, + "imageProperties": { + "type": "object" + }, + "placeholder": { + "type": "object" + }, + "sourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "line": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "lineProperties": { + "type": "object" + }, + "lineType": { + "enum": [ + "TYPE_UNSPECIFIED", + "STRAIGHT_CONNECTOR_1", + "BENT_CONNECTOR_2", + "BENT_CONNECTOR_3", + "BENT_CONNECTOR_4", + "BENT_CONNECTOR_5", + "CURVED_CONNECTOR_2", + "CURVED_CONNECTOR_3", + "CURVED_CONNECTOR_4", + "CURVED_CONNECTOR_5", + "STRAIGHT_LINE" + ], + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "properties": { + "placeholder": { + "type": "object" + }, + "shapeProperties": { + "type": "object" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + }, + "text": { + "type": "object" + } + }, + "type": "object" + }, + "sheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "contentUrl": { + "type": "string" + }, + "sheetsChartProperties": { + "type": "object" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "properties": { + "height": { + "type": "object" + }, + "width": { + "type": "object" + } + }, + "type": "object" + }, + "speakerSpotlight": { + "properties": { + "speakerSpotlightProperties": { + "type": "object" + } + }, + "type": "object" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "horizontalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rows": { + "type": "integer" + }, + "tableColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "verticalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "video": { + "properties": { + "id": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "videoProperties": { + "type": "object" + } + }, + "type": "object" + }, + "wordArt": { + "properties": { + "renderedText": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "properties": { + "colors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "pageBackgroundFill": { + "properties": { + "propertyState": { + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "type": "string" + }, + "solidFill": { + "type": "object" + }, + "stretchedPictureFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "properties": { + "commentAnchors": { + "items": { + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "type": "object" + }, + "masterProperties": { + "type": "object" + }, + "notesProperties": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "notesMaster": { + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "properties": { + "objectId": { + "type": "string" + }, + "shapeTextAnchors": { + "type": "object" + }, + "tableCellAnchors": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "properties": { + "children": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "image": { + "properties": { + "contentUrl": { + "type": "string" + }, + "imageProperties": { + "type": "object" + }, + "placeholder": { + "type": "object" + }, + "sourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "line": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "lineProperties": { + "type": "object" + }, + "lineType": { + "enum": [ + "TYPE_UNSPECIFIED", + "STRAIGHT_CONNECTOR_1", + "BENT_CONNECTOR_2", + "BENT_CONNECTOR_3", + "BENT_CONNECTOR_4", + "BENT_CONNECTOR_5", + "CURVED_CONNECTOR_2", + "CURVED_CONNECTOR_3", + "CURVED_CONNECTOR_4", + "CURVED_CONNECTOR_5", + "STRAIGHT_LINE" + ], + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "properties": { + "placeholder": { + "type": "object" + }, + "shapeProperties": { + "type": "object" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + }, + "text": { + "type": "object" + } + }, + "type": "object" + }, + "sheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "contentUrl": { + "type": "string" + }, + "sheetsChartProperties": { + "type": "object" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "properties": { + "height": { + "type": "object" + }, + "width": { + "type": "object" + } + }, + "type": "object" + }, + "speakerSpotlight": { + "properties": { + "speakerSpotlightProperties": { + "type": "object" + } + }, + "type": "object" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "horizontalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rows": { + "type": "integer" + }, + "tableColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "verticalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "video": { + "properties": { + "id": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "videoProperties": { + "type": "object" + } + }, + "type": "object" + }, + "wordArt": { + "properties": { + "renderedText": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "properties": { + "colors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "pageBackgroundFill": { + "properties": { + "propertyState": { + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "type": "string" + }, + "solidFill": { + "type": "object" + }, + "stretchedPictureFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "properties": { + "commentAnchors": { + "items": { + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "type": "object" + }, + "masterProperties": { + "type": "object" + }, + "notesProperties": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageSize": { + "properties": { + "height": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "width": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "presentationId": { + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slides": { + "items": { + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "properties": { + "objectId": { + "type": "string" + }, + "shapeTextAnchors": { + "type": "object" + }, + "tableCellAnchors": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "properties": { + "children": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "image": { + "properties": { + "contentUrl": { + "type": "string" + }, + "imageProperties": { + "type": "object" + }, + "placeholder": { + "type": "object" + }, + "sourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "line": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "lineProperties": { + "type": "object" + }, + "lineType": { + "enum": [ + "TYPE_UNSPECIFIED", + "STRAIGHT_CONNECTOR_1", + "BENT_CONNECTOR_2", + "BENT_CONNECTOR_3", + "BENT_CONNECTOR_4", + "BENT_CONNECTOR_5", + "CURVED_CONNECTOR_2", + "CURVED_CONNECTOR_3", + "CURVED_CONNECTOR_4", + "CURVED_CONNECTOR_5", + "STRAIGHT_LINE" + ], + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "properties": { + "placeholder": { + "type": "object" + }, + "shapeProperties": { + "type": "object" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + }, + "text": { + "type": "object" + } + }, + "type": "object" + }, + "sheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "contentUrl": { + "type": "string" + }, + "sheetsChartProperties": { + "type": "object" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "properties": { + "height": { + "type": "object" + }, + "width": { + "type": "object" + } + }, + "type": "object" + }, + "speakerSpotlight": { + "properties": { + "speakerSpotlightProperties": { + "type": "object" + } + }, + "type": "object" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "horizontalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rows": { + "type": "integer" + }, + "tableColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "verticalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "video": { + "properties": { + "id": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "videoProperties": { + "type": "object" + } + }, + "type": "object" + }, + "wordArt": { + "properties": { + "renderedText": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "properties": { + "colors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "pageBackgroundFill": { + "properties": { + "propertyState": { + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "type": "string" + }, + "solidFill": { + "type": "object" + }, + "stretchedPictureFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "properties": { + "commentAnchors": { + "items": { + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "type": "object" + }, + "masterProperties": { + "type": "object" + }, + "notesProperties": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasklists.insert2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON TaskList object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type TaskList: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasklists.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON TaskList object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type TaskList: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasklists.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON TaskList object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type TaskList: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasks.insert2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Task object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Task: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "assignmentInfo": { + "properties": { + "driveResourceInfo": { + "properties": { + "driveFileId": { + "type": "string" + }, + "resourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "linkToTask": { + "type": "string" + }, + "spaceInfo": { + "properties": { + "space": { + "type": "string" + } + }, + "type": "object" + }, + "surfaceType": { + "enum": [ + "CONTEXT_TYPE_UNSPECIFIED", + "GMAIL", + "DOCUMENT", + "SPACE" + ], + "type": "string" + } + }, + "type": "object" + }, + "completed": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "due": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "links": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "link": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "position": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "status": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "webViewLink": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasks.patch2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Task object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Task: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "assignmentInfo": { + "properties": { + "driveResourceInfo": { + "properties": { + "driveFileId": { + "type": "string" + }, + "resourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "linkToTask": { + "type": "string" + }, + "spaceInfo": { + "properties": { + "space": { + "type": "string" + } + }, + "type": "object" + }, + "surfaceType": { + "enum": [ + "CONTEXT_TYPE_UNSPECIFIED", + "GMAIL", + "DOCUMENT", + "SPACE" + ], + "type": "string" + } + }, + "type": "object" + }, + "completed": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "due": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "links": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "link": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "position": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "status": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "webViewLink": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasks.update2 fields changed- changed
Input schema / properties / body_file / descriptionPrevious value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Task object." - added
Input schema / properties / request_bodyAdded value: +{ + "description": "Request body of type Task: pass it via `params` (merged into the built body) or whole via `body_file`.", + "properties": { + "assignmentInfo": { + "properties": { + "driveResourceInfo": { + "properties": { + "driveFileId": { + "type": "string" + }, + "resourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "linkToTask": { + "type": "string" + }, + "spaceInfo": { + "properties": { + "space": { + "type": "string" + } + }, + "type": "object" + }, + "surfaceType": { + "enum": [ + "CONTEXT_TYPE_UNSPECIFIED", + "GMAIL", + "DOCUMENT", + "SPACE" + ], + "type": "string" + } + }, + "type": "object" + }, + "completed": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "due": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "links": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "link": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "position": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "status": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "webViewLink": { + "type": "string" + } + }, + "type": "object" +}
400 tool updates
- Changed
analyticsadmin.accounts.delete3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the Account to soft-delete. Format: accounts/{account} Example: \"accounts/100\""New value: +"[URL path segment] Required. The name of the Account to soft-delete. Format: accounts/{account} Example: \"accounts/100\"" - added
Input schema / properties / name / patternAdded value: +"^accounts/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
analyticsadmin.accounts.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the account to lookup. Format: accounts/{account} Example: \"accounts/100\""New value: +"[URL path segment] Required. The name of the account to lookup. Format: accounts/{account} Example: \"accounts/100\"" - added
Input schema / properties / name / patternAdded value: +"^accounts/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "gmpOrganization": { + "type": "string" + }, + "name": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.accounts.getDataSharingSettings3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the settings to lookup. Format: accounts/{account}/dataSharingSettings Example: `accounts/1000/dataSharingSettings`"New value: +"[URL path segment] Required. The name of the settings to lookup. Format: accounts/{account}/dataSharingSettings Example: `accounts/1000/dataSharingSettings`" - added
Input schema / properties / name / patternAdded value: +"^accounts/[^/]+/dataSharingSettings$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "name": { + "type": "string" + }, + "sharingWithGoogleAnySalesEnabled": { + "type": "boolean" + }, + "sharingWithGoogleAssignedSalesEnabled": { + "type": "boolean" + }, + "sharingWithGoogleProductsEnabled": { + "type": "boolean" + }, + "sharingWithGoogleSupportEnabled": { + "type": "boolean" + }, + "sharingWithOthersEnabled": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
analyticsadmin.accounts.list5 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 5"New value: +"[query parameter] Optional. The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 5" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous `ListAccounts` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provid"New value: +"[query parameter] Optional. A page token, received from a previous `ListAccounts` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provid" - changed
Input schema / properties / showDeleted / descriptionPrevious value: -"Whether to include soft-deleted (ie: \"trashed\") Accounts in the results. Accounts can be inspected to determine whether they are deleted or not."New value: +"[query parameter] Whether to include soft-deleted (ie: \"trashed\") Accounts in the results. Accounts can be inspected to determine whether they are deleted or not." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accounts": { + "items": { + "properties": { + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "gmpOrganization": { + "type": "string" + }, + "name": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.accounts.patch5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name of this account. Format: accounts/{account} Example: \"accounts/100\""New value: +"[URL path segment] Identifier. Resource name of this account. Format: accounts/{account} Example: \"accounts/100\"" - added
Input schema / properties / name / patternAdded value: +"^accounts/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The list of fields to be updated. Field names must be in snake case (for example, \"field_to_update\"). Omitted fields will not be updated. To replace t"New value: +"[query parameter] Required. The list of fields to be updated. Field names must be in snake case (for example, \"field_to_update\"). Omitted fields will not be updated. To replace t" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "gmpOrganization": { + "type": "string" + }, + "name": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.accounts.provisionAccountTicket1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accountTicketId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.accounts.runAccessReport3 fields changed- changed
Input schema / properties / entity / descriptionPrevious value: -"The Data Access Report supports requesting at the property level or account level. If requested at the account level, Data Access Reports include all access for"New value: +"[URL path segment] The Data Access Report supports requesting at the property level or account level. If requested at the account level, Data Access Reports include all access for" - added
Input schema / properties / entity / patternAdded value: +"^accounts/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "dimensionHeaders": { + "items": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricHeaders": { + "items": { + "properties": { + "metricName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "quota": { + "properties": { + "concurrentRequests": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "serverErrorsPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerDay": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "rowCount": { + "type": "integer" + }, + "rows": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
analyticsadmin.accounts.searchChangeHistoryEvents3 fields changed- changed
Input schema / properties / account / descriptionPrevious value: -"Required. The account resource for which to return change history resources. Format: accounts/{account} Example: `accounts/100`"New value: +"[URL path segment] Required. The account resource for which to return change history resources. Format: accounts/{account} Example: `accounts/100`" - added
Input schema / properties / account / patternAdded value: +"^accounts/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "changeHistoryEvents": { + "items": { + "properties": { + "actorType": { + "enum": [ + "ACTOR_TYPE_UNSPECIFIED", + "USER", + "SYSTEM", + "SUPPORT" + ], + "type": "string" + }, + "changeTime": { + "type": "string" + }, + "changes": { + "items": { + "properties": { + "action": { + "enum": [ + "ACTION_TYPE_UNSPECIFIED", + "CREATED", + "UPDATED", + "DELETED" + ], + "type": "string" + }, + "resource": { + "type": "string" + }, + "resourceAfterChange": { + "properties": { + "account": { + "type": "object" + }, + "conversionEvent": { + "type": "object" + }, + "dataRetentionSettings": { + "type": "object" + }, + "dataStream": { + "type": "object" + }, + "firebaseLink": { + "type": "object" + }, + "googleAdsLink": { + "type": "object" + }, + "measurementProtocolSecret": { + "type": "object" + }, + "property": { + "type": "object" + } + }, + "type": "object" + }, + "resourceBeforeChange": { + "properties": { + "account": { + "type": "object" + }, + "conversionEvent": { + "type": "object" + }, + "dataRetentionSettings": { + "type": "object" + }, + "dataStream": { + "type": "object" + }, + "firebaseLink": { + "type": "object" + }, + "googleAdsLink": { + "type": "object" + }, + "measurementProtocolSecret": { + "type": "object" + }, + "property": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "changesFiltered": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "userActorEmail": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.accountSummaries.list4 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of AccountSummary resources to return. The service may return fewer than this value, even if there are additional pages. If unspeci"New value: +"[query parameter] Optional. The maximum number of AccountSummary resources to return. The service may return fewer than this value, even if there are additional pages. If unspeci" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous `ListAccountSummaries` call. Provide this to retrieve the subsequent page. When paginating, all other parameter"New value: +"[query parameter] Optional. A page token, received from a previous `ListAccountSummaries` call. Provide this to retrieve the subsequent page. When paginating, all other parameter" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accountSummaries": { + "items": { + "properties": { + "account": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "propertySummaries": { + "items": { + "properties": { + "canEdit": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "property": { + "type": "string" + }, + "propertyType": { + "enum": [ + "PROPERTY_TYPE_UNSPECIFIED", + "PROPERTY_TYPE_ORDINARY", + "PROPERTY_TYPE_SUBPROPERTY", + "PROPERTY_TYPE_ROLLUP" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.acknowledgeUserDataCollection3 fields changed- changed
Input schema / properties / property / descriptionPrevious value: -"Required. The property for which to acknowledge user data collection."New value: +"[URL path segment] Required. The property for which to acknowledge user data collection." - added
Input schema / properties / property / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
analyticsadmin.properties.conversionEvents.create3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The resource name of the parent property where this conversion event will be created. Format: properties/123"New value: +"[URL path segment] Required. The resource name of the parent property where this conversion event will be created. Format: properties/123" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "countingMethod": { + "enum": [ + "CONVERSION_COUNTING_METHOD_UNSPECIFIED", + "ONCE_PER_EVENT", + "ONCE_PER_SESSION" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "custom": { + "type": "boolean" + }, + "defaultConversionValue": { + "properties": { + "currencyCode": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object" + }, + "deletable": { + "type": "boolean" + }, + "eventName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.conversionEvents.delete3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the conversion event to delete. Format: properties/{property}/conversionEvents/{conversion_event} Example: \"properties/123/conver"New value: +"[URL path segment] Required. The resource name of the conversion event to delete. Format: properties/{property}/conversionEvents/{conversion_event} Example: \"properties/123/conver" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/conversionEvents/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
analyticsadmin.properties.conversionEvents.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the conversion event to retrieve. Format: properties/{property}/conversionEvents/{conversion_event} Example: \"properties/123/conv"New value: +"[URL path segment] Required. The resource name of the conversion event to retrieve. Format: properties/{property}/conversionEvents/{conversion_event} Example: \"properties/123/conv" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/conversionEvents/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "countingMethod": { + "enum": [ + "CONVERSION_COUNTING_METHOD_UNSPECIFIED", + "ONCE_PER_EVENT", + "ONCE_PER_SESSION" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "custom": { + "type": "boolean" + }, + "defaultConversionValue": { + "properties": { + "currencyCode": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object" + }, + "deletable": { + "type": "boolean" + }, + "eventName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.conversionEvents.list6 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coe"New value: +"[query parameter] Optional. The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coe" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous `ListConversionEvents` call. Provide this to retrieve the subsequent page. When paginating, all other parameter"New value: +"[query parameter] Optional. A page token, received from a previous `ListConversionEvents` call. Provide this to retrieve the subsequent page. When paginating, all other parameter" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The resource name of the parent property. Example: 'properties/123'"New value: +"[URL path segment] Required. The resource name of the parent property. Example: 'properties/123'" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "conversionEvents": { + "items": { + "properties": { + "countingMethod": { + "enum": [ + "CONVERSION_COUNTING_METHOD_UNSPECIFIED", + "ONCE_PER_EVENT", + "ONCE_PER_SESSION" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "custom": { + "type": "boolean" + }, + "defaultConversionValue": { + "properties": { + "currencyCode": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object" + }, + "deletable": { + "type": "boolean" + }, + "eventName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.conversionEvents.patch5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name of this conversion event. Format: properties/{property}/conversionEvents/{conversion_event}"New value: +"[URL path segment] Identifier. Resource name of this conversion event. Format: properties/{property}/conversionEvents/{conversion_event}" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/conversionEvents/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the enti"New value: +"[query parameter] Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the enti" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "countingMethod": { + "enum": [ + "CONVERSION_COUNTING_METHOD_UNSPECIFIED", + "ONCE_PER_EVENT", + "ONCE_PER_SESSION" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "custom": { + "type": "boolean" + }, + "defaultConversionValue": { + "properties": { + "currencyCode": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "type": "object" + }, + "deletable": { + "type": "boolean" + }, + "eventName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.create1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "account": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "currencyCode": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "expireTime": { + "type": "string" + }, + "industryCategory": { + "enum": [ + "INDUSTRY_CATEGORY_UNSPECIFIED", + "AUTOMOTIVE", + "BUSINESS_AND_INDUSTRIAL_MARKETS", + "FINANCE", + "HEALTHCARE", + "TECHNOLOGY", + "TRAVEL", + "OTHER", + "ARTS_AND_ENTERTAINMENT", + "BEAUTY_AND_FITNESS", + "BOOKS_AND_LITERATURE", + "FOOD_AND_DRINK", + "GAMES", + "HOBBIES_AND_LEISURE", + "HOME_AND_GARDEN", + "INTERNET_AND_TELECOM", + "LAW_AND_GOVERNMENT", + "NEWS", + "ONLINE_COMMUNITIES", + "PEOPLE_AND_SOCIETY", + "PETS_AND_ANIMALS", + "REAL_ESTATE", + "REFERENCE", + "SCIENCE", + "SPORTS", + "JOBS_AND_EDUCATION", + "SHOPPING" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "propertyType": { + "enum": [ + "PROPERTY_TYPE_UNSPECIFIED", + "PROPERTY_TYPE_ORDINARY", + "PROPERTY_TYPE_SUBPROPERTY", + "PROPERTY_TYPE_ROLLUP" + ], + "type": "string" + }, + "serviceLevel": { + "enum": [ + "SERVICE_LEVEL_UNSPECIFIED", + "GOOGLE_ANALYTICS_STANDARD", + "GOOGLE_ANALYTICS_360" + ], + "type": "string" + }, + "timeZone": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.customDimensions.archive3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the CustomDimension to archive. Example format: properties/1234/customDimensions/5678"New value: +"[URL path segment] Required. The name of the CustomDimension to archive. Example format: properties/1234/customDimensions/5678" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/customDimensions/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
analyticsadmin.properties.customDimensions.create3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. Example format: properties/1234"New value: +"[URL path segment] Required. Example format: properties/1234" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "description": { + "type": "string" + }, + "disallowAdsPersonalization": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parameterName": { + "type": "string" + }, + "scope": { + "enum": [ + "DIMENSION_SCOPE_UNSPECIFIED", + "EVENT", + "USER", + "ITEM" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.customDimensions.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the CustomDimension to get. Example format: properties/1234/customDimensions/5678"New value: +"[URL path segment] Required. The name of the CustomDimension to get. Example format: properties/1234/customDimensions/5678" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/customDimensions/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "description": { + "type": "string" + }, + "disallowAdsPersonalization": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parameterName": { + "type": "string" + }, + "scope": { + "enum": [ + "DIMENSION_SCOPE_UNSPECIFIED", + "EVENT", + "USER", + "ITEM" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.customDimensions.list6 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coer"New value: +"[query parameter] Optional. The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coer" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous `ListCustomDimensions` call. Provide this to retrieve the subsequent page. When paginating, all other parameter"New value: +"[query parameter] Optional. A page token, received from a previous `ListCustomDimensions` call. Provide this to retrieve the subsequent page. When paginating, all other parameter" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. Example format: properties/1234"New value: +"[URL path segment] Required. Example format: properties/1234" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "customDimensions": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "disallowAdsPersonalization": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parameterName": { + "type": "string" + }, + "scope": { + "enum": [ + "DIMENSION_SCOPE_UNSPECIFIED", + "EVENT", + "USER", + "ITEM" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.customDimensions.patch5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name for this CustomDimension resource. Format: properties/{property}/customDimensions/{customDimension}"New value: +"[URL path segment] Identifier. Resource name for this CustomDimension resource. Format: properties/{property}/customDimensions/{customDimension}" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/customDimensions/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fiel"New value: +"[query parameter] Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fiel" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "description": { + "type": "string" + }, + "disallowAdsPersonalization": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parameterName": { + "type": "string" + }, + "scope": { + "enum": [ + "DIMENSION_SCOPE_UNSPECIFIED", + "EVENT", + "USER", + "ITEM" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.customMetrics.archive3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the CustomMetric to archive. Example format: properties/1234/customMetrics/5678"New value: +"[URL path segment] Required. The name of the CustomMetric to archive. Example format: properties/1234/customMetrics/5678" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/customMetrics/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
analyticsadmin.properties.customMetrics.create3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. Example format: properties/1234"New value: +"[URL path segment] Required. Example format: properties/1234" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "measurementUnit": { + "enum": [ + "MEASUREMENT_UNIT_UNSPECIFIED", + "STANDARD", + "CURRENCY", + "FEET", + "METERS", + "KILOMETERS", + "MILES", + "MILLISECONDS", + "SECONDS", + "MINUTES", + "HOURS" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "parameterName": { + "type": "string" + }, + "restrictedMetricType": { + "items": { + "enum": [ + "RESTRICTED_METRIC_TYPE_UNSPECIFIED", + "COST_DATA", + "REVENUE_DATA" + ], + "type": "string" + }, + "type": "array" + }, + "scope": { + "enum": [ + "METRIC_SCOPE_UNSPECIFIED", + "EVENT" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.customMetrics.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the CustomMetric to get. Example format: properties/1234/customMetrics/5678"New value: +"[URL path segment] Required. The name of the CustomMetric to get. Example format: properties/1234/customMetrics/5678" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/customMetrics/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "measurementUnit": { + "enum": [ + "MEASUREMENT_UNIT_UNSPECIFIED", + "STANDARD", + "CURRENCY", + "FEET", + "METERS", + "KILOMETERS", + "MILES", + "MILLISECONDS", + "SECONDS", + "MINUTES", + "HOURS" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "parameterName": { + "type": "string" + }, + "restrictedMetricType": { + "items": { + "enum": [ + "RESTRICTED_METRIC_TYPE_UNSPECIFIED", + "COST_DATA", + "REVENUE_DATA" + ], + "type": "string" + }, + "type": "array" + }, + "scope": { + "enum": [ + "METRIC_SCOPE_UNSPECIFIED", + "EVENT" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.customMetrics.list6 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the"New value: +"[query parameter] The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"A page token, received from a previous `ListCustomMetrics` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to"New value: +"[query parameter] A page token, received from a previous `ListCustomMetrics` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. Example format: properties/1234"New value: +"[URL path segment] Required. Example format: properties/1234" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "customMetrics": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "measurementUnit": { + "enum": [ + "MEASUREMENT_UNIT_UNSPECIFIED", + "STANDARD", + "CURRENCY", + "FEET", + "METERS", + "KILOMETERS", + "MILES", + "MILLISECONDS", + "SECONDS", + "MINUTES", + "HOURS" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "parameterName": { + "type": "string" + }, + "restrictedMetricType": { + "items": { + "enum": [ + "RESTRICTED_METRIC_TYPE_UNSPECIFIED", + "COST_DATA", + "REVENUE_DATA" + ], + "type": "string" + }, + "type": "array" + }, + "scope": { + "enum": [ + "METRIC_SCOPE_UNSPECIFIED", + "EVENT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.customMetrics.patch5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric}"New value: +"[URL path segment] Identifier. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric}" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/customMetrics/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fiel"New value: +"[query parameter] Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fiel" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "measurementUnit": { + "enum": [ + "MEASUREMENT_UNIT_UNSPECIFIED", + "STANDARD", + "CURRENCY", + "FEET", + "METERS", + "KILOMETERS", + "MILES", + "MILLISECONDS", + "SECONDS", + "MINUTES", + "HOURS" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "parameterName": { + "type": "string" + }, + "restrictedMetricType": { + "items": { + "enum": [ + "RESTRICTED_METRIC_TYPE_UNSPECIFIED", + "COST_DATA", + "REVENUE_DATA" + ], + "type": "string" + }, + "type": "array" + }, + "scope": { + "enum": [ + "METRIC_SCOPE_UNSPECIFIED", + "EVENT" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.create3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. Example format: properties/1234"New value: +"[URL path segment] Required. Example format: properties/1234" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "androidAppStreamData": { + "properties": { + "firebaseAppId": { + "type": "string" + }, + "packageName": { + "type": "string" + } + }, + "type": "object" + }, + "createTime": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "iosAppStreamData": { + "properties": { + "bundleId": { + "type": "string" + }, + "firebaseAppId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "DATA_STREAM_TYPE_UNSPECIFIED", + "WEB_DATA_STREAM", + "ANDROID_APP_DATA_STREAM", + "IOS_APP_DATA_STREAM" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + }, + "webStreamData": { + "properties": { + "defaultUri": { + "type": "string" + }, + "firebaseAppId": { + "type": "string" + }, + "measurementId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.delete3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the DataStream to delete. Example format: properties/1234/dataStreams/5678"New value: +"[URL path segment] Required. The name of the DataStream to delete. Example format: properties/1234/dataStreams/5678" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/dataStreams/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the DataStream to get. Example format: properties/1234/dataStreams/5678"New value: +"[URL path segment] Required. The name of the DataStream to get. Example format: properties/1234/dataStreams/5678" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/dataStreams/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "androidAppStreamData": { + "properties": { + "firebaseAppId": { + "type": "string" + }, + "packageName": { + "type": "string" + } + }, + "type": "object" + }, + "createTime": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "iosAppStreamData": { + "properties": { + "bundleId": { + "type": "string" + }, + "firebaseAppId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "DATA_STREAM_TYPE_UNSPECIFIED", + "WEB_DATA_STREAM", + "ANDROID_APP_DATA_STREAM", + "IOS_APP_DATA_STREAM" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + }, + "webStreamData": { + "properties": { + "defaultUri": { + "type": "string" + }, + "firebaseAppId": { + "type": "string" + }, + "measurementId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.list6 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the"New value: +"[query parameter] The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"A page token, received from a previous `ListDataStreams` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `"New value: +"[query parameter] A page token, received from a previous `ListDataStreams` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. Example format: properties/1234"New value: +"[URL path segment] Required. Example format: properties/1234" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "dataStreams": { + "items": { + "properties": { + "androidAppStreamData": { + "properties": { + "firebaseAppId": { + "type": "string" + }, + "packageName": { + "type": "string" + } + }, + "type": "object" + }, + "createTime": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "iosAppStreamData": { + "properties": { + "bundleId": { + "type": "string" + }, + "firebaseAppId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "DATA_STREAM_TYPE_UNSPECIFIED", + "WEB_DATA_STREAM", + "ANDROID_APP_DATA_STREAM", + "IOS_APP_DATA_STREAM" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + }, + "webStreamData": { + "properties": { + "defaultUri": { + "type": "string" + }, + "firebaseAppId": { + "type": "string" + }, + "measurementId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.create3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The parent resource where this secret will be created. Format: properties/{property}/dataStreams/{dataStream}"New value: +"[URL path segment] Required. The parent resource where this secret will be created. Format: properties/{property}/dataStreams/{dataStream}" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+/dataStreams/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "secretValue": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.delete3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the MeasurementProtocolSecret to delete. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementPro"New value: +"[URL path segment] Required. The name of the MeasurementProtocolSecret to delete. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementPro" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/dataStreams/[^/]+/measurementProtocolSecrets/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the measurement protocol secret to lookup. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementP"New value: +"[URL path segment] Required. The name of the measurement protocol secret to lookup. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementP" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/dataStreams/[^/]+/measurementProtocolSecrets/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "secretValue": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.list6 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of resources to return. If unspecified, at most 10 resources will be returned. The maximum value is 10. Higher values will be coerc"New value: +"[query parameter] Optional. The maximum number of resources to return. If unspecified, at most 10 resources will be returned. The maximum value is 10. Higher values will be coerc" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous `ListMeasurementProtocolSecrets` call. Provide this to retrieve the subsequent page. When paginating, all other"New value: +"[query parameter] Optional. A page token, received from a previous `ListMeasurementProtocolSecrets` call. Provide this to retrieve the subsequent page. When paginating, all other" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The resource name of the parent stream. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets"New value: +"[URL path segment] Required. The resource name of the parent stream. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+/dataStreams/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "measurementProtocolSecrets": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "secretValue": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.patch5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name of this secret. This secret may be a child of any type of stream. Format: properties/{property}/dataStreams/{dataStream}/measurementPr"New value: +"[URL path segment] Identifier. Resource name of this secret. This secret may be a child of any type of stream. Format: properties/{property}/dataStreams/{dataStream}/measurementPr" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/dataStreams/[^/]+/measurementProtocolSecrets/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The list of fields to be updated. Omitted fields will not be updated."New value: +"[query parameter] Required. The list of fields to be updated. Omitted fields will not be updated." - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "secretValue": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.dataStreams.patch5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name of this Data Stream. Format: properties/{property_id}/dataStreams/{stream_id} Example: \"properties/1000/dataStreams/2000\""New value: +"[URL path segment] Identifier. Resource name of this Data Stream. Format: properties/{property_id}/dataStreams/{stream_id} Example: \"properties/1000/dataStreams/2000\"" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/dataStreams/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fiel"New value: +"[query parameter] Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fiel" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "androidAppStreamData": { + "properties": { + "firebaseAppId": { + "type": "string" + }, + "packageName": { + "type": "string" + } + }, + "type": "object" + }, + "createTime": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "iosAppStreamData": { + "properties": { + "bundleId": { + "type": "string" + }, + "firebaseAppId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "DATA_STREAM_TYPE_UNSPECIFIED", + "WEB_DATA_STREAM", + "ANDROID_APP_DATA_STREAM", + "IOS_APP_DATA_STREAM" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + }, + "webStreamData": { + "properties": { + "defaultUri": { + "type": "string" + }, + "firebaseAppId": { + "type": "string" + }, + "measurementId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.delete3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the Property to soft-delete. Format: properties/{property_id} Example: \"properties/1000\""New value: +"[URL path segment] Required. The name of the Property to soft-delete. Format: properties/{property_id} Example: \"properties/1000\"" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "account": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "currencyCode": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "expireTime": { + "type": "string" + }, + "industryCategory": { + "enum": [ + "INDUSTRY_CATEGORY_UNSPECIFIED", + "AUTOMOTIVE", + "BUSINESS_AND_INDUSTRIAL_MARKETS", + "FINANCE", + "HEALTHCARE", + "TECHNOLOGY", + "TRAVEL", + "OTHER", + "ARTS_AND_ENTERTAINMENT", + "BEAUTY_AND_FITNESS", + "BOOKS_AND_LITERATURE", + "FOOD_AND_DRINK", + "GAMES", + "HOBBIES_AND_LEISURE", + "HOME_AND_GARDEN", + "INTERNET_AND_TELECOM", + "LAW_AND_GOVERNMENT", + "NEWS", + "ONLINE_COMMUNITIES", + "PEOPLE_AND_SOCIETY", + "PETS_AND_ANIMALS", + "REAL_ESTATE", + "REFERENCE", + "SCIENCE", + "SPORTS", + "JOBS_AND_EDUCATION", + "SHOPPING" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "propertyType": { + "enum": [ + "PROPERTY_TYPE_UNSPECIFIED", + "PROPERTY_TYPE_ORDINARY", + "PROPERTY_TYPE_SUBPROPERTY", + "PROPERTY_TYPE_ROLLUP" + ], + "type": "string" + }, + "serviceLevel": { + "enum": [ + "SERVICE_LEVEL_UNSPECIFIED", + "GOOGLE_ANALYTICS_STANDARD", + "GOOGLE_ANALYTICS_360" + ], + "type": "string" + }, + "timeZone": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.firebaseLinks.create3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. Format: properties/{property_id} Example: `properties/1234`"New value: +"[URL path segment] Required. Format: properties/{property_id} Example: `properties/1234`" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "createTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "project": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.firebaseLinks.delete3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Format: properties/{property_id}/firebaseLinks/{firebase_link_id} Example: `properties/1234/firebaseLinks/5678`"New value: +"[URL path segment] Required. Format: properties/{property_id}/firebaseLinks/{firebase_link_id} Example: `properties/1234/firebaseLinks/5678`" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/firebaseLinks/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
analyticsadmin.properties.firebaseLinks.list6 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 5"New value: +"[query parameter] Optional. The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 5" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous `ListFirebaseLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters p"New value: +"[query parameter] Optional. A page token, received from a previous `ListFirebaseLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters p" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. Format: properties/{property_id} Example: `properties/1234`"New value: +"[URL path segment] Required. Format: properties/{property_id} Example: `properties/1234`" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "firebaseLinks": { + "items": { + "properties": { + "createTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "project": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the property to lookup. Format: properties/{property_id} Example: \"properties/1000\""New value: +"[URL path segment] Required. The name of the property to lookup. Format: properties/{property_id} Example: \"properties/1000\"" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "account": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "currencyCode": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "expireTime": { + "type": "string" + }, + "industryCategory": { + "enum": [ + "INDUSTRY_CATEGORY_UNSPECIFIED", + "AUTOMOTIVE", + "BUSINESS_AND_INDUSTRIAL_MARKETS", + "FINANCE", + "HEALTHCARE", + "TECHNOLOGY", + "TRAVEL", + "OTHER", + "ARTS_AND_ENTERTAINMENT", + "BEAUTY_AND_FITNESS", + "BOOKS_AND_LITERATURE", + "FOOD_AND_DRINK", + "GAMES", + "HOBBIES_AND_LEISURE", + "HOME_AND_GARDEN", + "INTERNET_AND_TELECOM", + "LAW_AND_GOVERNMENT", + "NEWS", + "ONLINE_COMMUNITIES", + "PEOPLE_AND_SOCIETY", + "PETS_AND_ANIMALS", + "REAL_ESTATE", + "REFERENCE", + "SCIENCE", + "SPORTS", + "JOBS_AND_EDUCATION", + "SHOPPING" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "propertyType": { + "enum": [ + "PROPERTY_TYPE_UNSPECIFIED", + "PROPERTY_TYPE_ORDINARY", + "PROPERTY_TYPE_SUBPROPERTY", + "PROPERTY_TYPE_ROLLUP" + ], + "type": "string" + }, + "serviceLevel": { + "enum": [ + "SERVICE_LEVEL_UNSPECIFIED", + "GOOGLE_ANALYTICS_STANDARD", + "GOOGLE_ANALYTICS_360" + ], + "type": "string" + }, + "timeZone": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.getDataRetentionSettings3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the settings to lookup. Format: properties/{property}/dataRetentionSettings Example: \"properties/1000/dataRetentionSettings\""New value: +"[URL path segment] Required. The name of the settings to lookup. Format: properties/{property}/dataRetentionSettings Example: \"properties/1000/dataRetentionSettings\"" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/dataRetentionSettings$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "eventDataRetention": { + "enum": [ + "RETENTION_DURATION_UNSPECIFIED", + "TWO_MONTHS", + "FOURTEEN_MONTHS", + "TWENTY_SIX_MONTHS", + "THIRTY_EIGHT_MONTHS", + "FIFTY_MONTHS" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "resetUserDataOnNewActivity": { + "type": "boolean" + }, + "userDataRetention": { + "enum": [ + "RETENTION_DURATION_UNSPECIFIED", + "TWO_MONTHS", + "FOURTEEN_MONTHS", + "TWENTY_SIX_MONTHS", + "THIRTY_EIGHT_MONTHS", + "FIFTY_MONTHS" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.googleAdsLinks.create3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. Example format: properties/1234"New value: +"[URL path segment] Required. Example format: properties/1234" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "adsPersonalizationEnabled": { + "type": "boolean" + }, + "canManageClients": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "creatorEmailAddress": { + "type": "string" + }, + "customerId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.googleAdsLinks.delete3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Example format: properties/1234/googleAdsLinks/5678"New value: +"[URL path segment] Required. Example format: properties/1234/googleAdsLinks/5678" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/googleAdsLinks/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
analyticsadmin.properties.googleAdsLinks.list6 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coer"New value: +"[query parameter] Optional. The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coer" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous `ListGoogleAdsLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters "New value: +"[query parameter] Optional. A page token, received from a previous `ListGoogleAdsLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters " - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. Example format: properties/1234"New value: +"[URL path segment] Required. Example format: properties/1234" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "googleAdsLinks": { + "items": { + "properties": { + "adsPersonalizationEnabled": { + "type": "boolean" + }, + "canManageClients": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "creatorEmailAddress": { + "type": "string" + }, + "customerId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.googleAdsLinks.patch5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} Note: googleAdsLinkId is not the Google Ads customer ID."New value: +"[URL path segment] Identifier. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} Note: googleAdsLinkId is not the Google Ads customer ID." - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/googleAdsLinks/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the enti"New value: +"[query parameter] Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the enti" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "adsPersonalizationEnabled": { + "type": "boolean" + }, + "canManageClients": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "creatorEmailAddress": { + "type": "string" + }, + "customerId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.keyEvents.create3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The resource name of the parent property where this Key Event will be created. Format: properties/123"New value: +"[URL path segment] Required. The resource name of the parent property where this Key Event will be created. Format: properties/123" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "countingMethod": { + "enum": [ + "COUNTING_METHOD_UNSPECIFIED", + "ONCE_PER_EVENT", + "ONCE_PER_SESSION" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "custom": { + "type": "boolean" + }, + "defaultValue": { + "properties": { + "currencyCode": { + "type": "string" + }, + "numericValue": { + "type": "number" + } + }, + "type": "object" + }, + "deletable": { + "type": "boolean" + }, + "eventName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.keyEvents.delete3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the Key Event to delete. Format: properties/{property}/keyEvents/{key_event} Example: \"properties/123/keyEvents/456\""New value: +"[URL path segment] Required. The resource name of the Key Event to delete. Format: properties/{property}/keyEvents/{key_event} Example: \"properties/123/keyEvents/456\"" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/keyEvents/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
analyticsadmin.properties.keyEvents.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the Key Event to retrieve. Format: properties/{property}/keyEvents/{key_event} Example: \"properties/123/keyEvents/456\""New value: +"[URL path segment] Required. The resource name of the Key Event to retrieve. Format: properties/{property}/keyEvents/{key_event} Example: \"properties/123/keyEvents/456\"" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/keyEvents/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "countingMethod": { + "enum": [ + "COUNTING_METHOD_UNSPECIFIED", + "ONCE_PER_EVENT", + "ONCE_PER_SESSION" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "custom": { + "type": "boolean" + }, + "defaultValue": { + "properties": { + "currencyCode": { + "type": "string" + }, + "numericValue": { + "type": "number" + } + }, + "type": "object" + }, + "deletable": { + "type": "boolean" + }, + "eventName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.keyEvents.list6 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coe"New value: +"[query parameter] Optional. The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coe" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous `ListKeyEvents` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provi"New value: +"[query parameter] Optional. A page token, received from a previous `ListKeyEvents` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provi" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The resource name of the parent property. Example: 'properties/123'"New value: +"[URL path segment] Required. The resource name of the parent property. Example: 'properties/123'" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "keyEvents": { + "items": { + "properties": { + "countingMethod": { + "enum": [ + "COUNTING_METHOD_UNSPECIFIED", + "ONCE_PER_EVENT", + "ONCE_PER_SESSION" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "custom": { + "type": "boolean" + }, + "defaultValue": { + "properties": { + "currencyCode": { + "type": "string" + }, + "numericValue": { + "type": "number" + } + }, + "type": "object" + }, + "deletable": { + "type": "boolean" + }, + "eventName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.keyEvents.patch5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Output only. Resource name of this key event. Format: properties/{property}/keyEvents/{key_event}"New value: +"[URL path segment] Output only. Resource name of this key event. Format: properties/{property}/keyEvents/{key_event}" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/keyEvents/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the enti"New value: +"[query parameter] Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the enti" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "countingMethod": { + "enum": [ + "COUNTING_METHOD_UNSPECIFIED", + "ONCE_PER_EVENT", + "ONCE_PER_SESSION" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "custom": { + "type": "boolean" + }, + "defaultValue": { + "properties": { + "currencyCode": { + "type": "string" + }, + "numericValue": { + "type": "number" + } + }, + "type": "object" + }, + "deletable": { + "type": "boolean" + }, + "eventName": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.list6 fields changed- changed
Input schema / properties / filter / descriptionPrevious value: -"Required. An expression for filtering the results of the request. Fields eligible for filtering are: `parent:`(The resource name of the parent account/property)"New value: +"[query parameter] Required. An expression for filtering the results of the request. Fields eligible for filtering are: `parent:`(The resource name of the parent account/property)" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 5"New value: +"[query parameter] Optional. The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 5" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous `ListProperties` call. Provide this to retrieve the subsequent page. When paginating, all other parameters prov"New value: +"[query parameter] Optional. A page token, received from a previous `ListProperties` call. Provide this to retrieve the subsequent page. When paginating, all other parameters prov" - changed
Input schema / properties / showDeleted / descriptionPrevious value: -"Whether to include soft-deleted (ie: \"trashed\") Properties in the results. Properties can be inspected to determine whether they are deleted or not."New value: +"[query parameter] Whether to include soft-deleted (ie: \"trashed\") Properties in the results. Properties can be inspected to determine whether they are deleted or not." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "properties": { + "items": { + "properties": { + "account": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "currencyCode": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "expireTime": { + "type": "string" + }, + "industryCategory": { + "enum": [ + "INDUSTRY_CATEGORY_UNSPECIFIED", + "AUTOMOTIVE", + "BUSINESS_AND_INDUSTRIAL_MARKETS", + "FINANCE", + "HEALTHCARE", + "TECHNOLOGY", + "TRAVEL", + "OTHER", + "ARTS_AND_ENTERTAINMENT", + "BEAUTY_AND_FITNESS", + "BOOKS_AND_LITERATURE", + "FOOD_AND_DRINK", + "GAMES", + "HOBBIES_AND_LEISURE", + "HOME_AND_GARDEN", + "INTERNET_AND_TELECOM", + "LAW_AND_GOVERNMENT", + "NEWS", + "ONLINE_COMMUNITIES", + "PEOPLE_AND_SOCIETY", + "PETS_AND_ANIMALS", + "REAL_ESTATE", + "REFERENCE", + "SCIENCE", + "SPORTS", + "JOBS_AND_EDUCATION", + "SHOPPING" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "propertyType": { + "enum": [ + "PROPERTY_TYPE_UNSPECIFIED", + "PROPERTY_TYPE_ORDINARY", + "PROPERTY_TYPE_SUBPROPERTY", + "PROPERTY_TYPE_ROLLUP" + ], + "type": "string" + }, + "serviceLevel": { + "enum": [ + "SERVICE_LEVEL_UNSPECIFIED", + "GOOGLE_ANALYTICS_STANDARD", + "GOOGLE_ANALYTICS_360" + ], + "type": "string" + }, + "timeZone": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.patch5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name of this property. Format: properties/{property_id} Example: \"properties/1000\""New value: +"[URL path segment] Identifier. Resource name of this property. Format: properties/{property_id} Example: \"properties/1000\"" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the enti"New value: +"[query parameter] Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the enti" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "account": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "currencyCode": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "expireTime": { + "type": "string" + }, + "industryCategory": { + "enum": [ + "INDUSTRY_CATEGORY_UNSPECIFIED", + "AUTOMOTIVE", + "BUSINESS_AND_INDUSTRIAL_MARKETS", + "FINANCE", + "HEALTHCARE", + "TECHNOLOGY", + "TRAVEL", + "OTHER", + "ARTS_AND_ENTERTAINMENT", + "BEAUTY_AND_FITNESS", + "BOOKS_AND_LITERATURE", + "FOOD_AND_DRINK", + "GAMES", + "HOBBIES_AND_LEISURE", + "HOME_AND_GARDEN", + "INTERNET_AND_TELECOM", + "LAW_AND_GOVERNMENT", + "NEWS", + "ONLINE_COMMUNITIES", + "PEOPLE_AND_SOCIETY", + "PETS_AND_ANIMALS", + "REAL_ESTATE", + "REFERENCE", + "SCIENCE", + "SPORTS", + "JOBS_AND_EDUCATION", + "SHOPPING" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "propertyType": { + "enum": [ + "PROPERTY_TYPE_UNSPECIFIED", + "PROPERTY_TYPE_ORDINARY", + "PROPERTY_TYPE_SUBPROPERTY", + "PROPERTY_TYPE_ROLLUP" + ], + "type": "string" + }, + "serviceLevel": { + "enum": [ + "SERVICE_LEVEL_UNSPECIFIED", + "GOOGLE_ANALYTICS_STANDARD", + "GOOGLE_ANALYTICS_360" + ], + "type": "string" + }, + "timeZone": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.runAccessReport3 fields changed- changed
Input schema / properties / entity / descriptionPrevious value: -"The Data Access Report supports requesting at the property level or account level. If requested at the account level, Data Access Reports include all access for"New value: +"[URL path segment] The Data Access Report supports requesting at the property level or account level. If requested at the account level, Data Access Reports include all access for" - added
Input schema / properties / entity / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "dimensionHeaders": { + "items": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricHeaders": { + "items": { + "properties": { + "metricName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "quota": { + "properties": { + "concurrentRequests": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "serverErrorsPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerDay": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "rowCount": { + "type": "integer" + }, + "rows": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
analyticsadmin.properties.updateDataRetentionSettings5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name for this DataRetentionSetting resource. Format: properties/{property}/dataRetentionSettings"New value: +"[URL path segment] Identifier. Resource name for this DataRetentionSetting resource. Format: properties/{property}/dataRetentionSettings" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/dataRetentionSettings$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the enti"New value: +"[query parameter] Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the enti" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "eventDataRetention": { + "enum": [ + "RETENTION_DURATION_UNSPECIFIED", + "TWO_MONTHS", + "FOURTEEN_MONTHS", + "TWENTY_SIX_MONTHS", + "THIRTY_EIGHT_MONTHS", + "FIFTY_MONTHS" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "resetUserDataOnNewActivity": { + "type": "boolean" + }, + "userDataRetention": { + "enum": [ + "RETENTION_DURATION_UNSPECIFIED", + "TWO_MONTHS", + "FOURTEEN_MONTHS", + "TWENTY_SIX_MONTHS", + "THIRTY_EIGHT_MONTHS", + "FIFTY_MONTHS" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.audienceExports.create3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The parent resource where this audience export will be created. Format: `properties/{property}`"New value: +"[URL path segment] Required. The parent resource where this audience export will be created. Format: `properties/{property}`" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "done": { + "type": "boolean" + }, + "error": { + "properties": { + "code": { + "type": "integer" + }, + "details": { + "items": { + "type": "object" + }, + "type": "array" + }, + "message": { + "type": "string" + } + }, + "type": "object" + }, + "metadata": { + "type": "object" + }, + "name": { + "type": "string" + }, + "response": { + "type": "object" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.audienceExports.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The audience export resource name. Format: `properties/{property}/audienceExports/{audience_export}`"New value: +"[URL path segment] Required. The audience export resource name. Format: `properties/{property}/audienceExports/{audience_export}`" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/audienceExports/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "audience": { + "type": "string" + }, + "audienceDisplayName": { + "type": "string" + }, + "beginCreatingTime": { + "type": "string" + }, + "creationQuotaTokensCharged": { + "type": "integer" + }, + "dimensions": { + "items": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "errorMessage": { + "type": "string" + }, + "name": { + "type": "string" + }, + "percentageCompleted": { + "type": "number" + }, + "rowCount": { + "type": "integer" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "FAILED" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.audienceExports.list6 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of audience exports to return. The service may return fewer than this value. If unspecified, at most 200 audience exports will be r"New value: +"[query parameter] Optional. The maximum number of audience exports to return. The service may return fewer than this value. If unspecified, at most 200 audience exports will be r" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous `ListAudienceExports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters"New value: +"[query parameter] Optional. A page token, received from a previous `ListAudienceExports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. All audience exports for this property will be listed in the response. Format: `properties/{property}`"New value: +"[URL path segment] Required. All audience exports for this property will be listed in the response. Format: `properties/{property}`" - added
Input schema / properties / parent / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "audienceExports": { + "items": { + "properties": { + "audience": { + "type": "string" + }, + "audienceDisplayName": { + "type": "string" + }, + "beginCreatingTime": { + "type": "string" + }, + "creationQuotaTokensCharged": { + "type": "integer" + }, + "dimensions": { + "items": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "errorMessage": { + "type": "string" + }, + "name": { + "type": "string" + }, + "percentageCompleted": { + "type": "number" + }, + "rowCount": { + "type": "integer" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "FAILED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.audienceExports.query3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the audience export to retrieve users from. Format: `properties/{property}/audienceExports/{audience_export}`"New value: +"[URL path segment] Required. The name of the audience export to retrieve users from. Format: `properties/{property}/audienceExports/{audience_export}`" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/audienceExports/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "audienceExport": { + "properties": { + "audience": { + "type": "string" + }, + "audienceDisplayName": { + "type": "string" + }, + "beginCreatingTime": { + "type": "string" + }, + "creationQuotaTokensCharged": { + "type": "integer" + }, + "dimensions": { + "items": { + "properties": { + "dimensionName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "errorMessage": { + "type": "string" + }, + "name": { + "type": "string" + }, + "percentageCompleted": { + "type": "number" + }, + "rowCount": { + "type": "integer" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "FAILED" + ], + "type": "string" + } + }, + "type": "object" + }, + "audienceRows": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowCount": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.batchRunPivotReports3 fields changed- changed
Input schema / properties / property / descriptionPrevious value: -"A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID]"New value: +"[URL path segment] A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID]" - added
Input schema / properties / property / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "kind": { + "type": "string" + }, + "pivotReports": { + "items": { + "properties": { + "aggregates": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "dimensionHeaders": { + "items": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "metadata": { + "properties": { + "currencyCode": { + "type": "string" + }, + "dataLossFromOtherRow": { + "type": "boolean" + }, + "dataTruncationReasons": { + "items": { + "properties": { + "dataTruncationDate": { + "type": "string" + }, + "dataTruncationDateRanges": { + "items": { + "type": "object" + }, + "type": "array" + }, + "dataTruncationMessage": { + "type": "string" + }, + "dataTruncationType": { + "enum": [ + "DATA_TRUNCATION_TYPE_UNSPECIFIED", + "DATA_TRUNCATION_TYPE_RULES_BASED_MODELS", + "DATA_TRUNCATION_TYPE_DATA_DRIVEN_ATTRIBUTION", + "DATA_TRUNCATION_TYPE_DV360", + "DATA_TRUNCATION_TYPE_CM360", + "DATA_TRUNCATION_TYPE_ITEM_SCOPED_ECOMMERCE_METRICS", + "DATA_TRUNCATION_TYPE_EVENT_SCOPED_ECOMMERCE_METRICS", + "DATA_TRUNCATION_TYPE_DATE_RANGE", + "DATA_TRUNCATION_TYPE_PROPERTY", + "DATA_TRUNCATION_TYPE_CONVERSIONS", + "DATA_TRUNCATION_TYPE_GOOGLE_ADS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emptyReason": { + "type": "string" + }, + "samplingMetadatas": { + "items": { + "properties": { + "samplesReadCount": { + "type": "string" + }, + "samplingSpaceSize": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "schemaRestrictionResponse": { + "properties": { + "activeMetricRestrictions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "subjectToThresholding": { + "type": "boolean" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "metricHeaders": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "enum": [ + "METRIC_TYPE_UNSPECIFIED", + "TYPE_INTEGER", + "TYPE_FLOAT", + "TYPE_SECONDS", + "TYPE_MILLISECONDS", + "TYPE_MINUTES", + "TYPE_HOURS", + "TYPE_STANDARD", + "TYPE_CURRENCY", + "TYPE_FEET", + "TYPE_MILES", + "TYPE_METERS", + "TYPE_KILOMETERS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "pivotHeaders": { + "items": { + "properties": { + "pivotDimensionHeaders": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "propertyQuota": { + "properties": { + "concurrentRequests": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "potentiallyThresholdedRequestsPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "serverErrorsPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerDay": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "rows": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.batchRunReports3 fields changed- changed
Input schema / properties / property / descriptionPrevious value: -"A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID]"New value: +"[URL path segment] A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID]" - added
Input schema / properties / property / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "kind": { + "type": "string" + }, + "reports": { + "items": { + "properties": { + "dimensionHeaders": { + "items": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "maximums": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "currencyCode": { + "type": "string" + }, + "dataLossFromOtherRow": { + "type": "boolean" + }, + "dataTruncationReasons": { + "items": { + "properties": { + "dataTruncationDate": { + "type": "string" + }, + "dataTruncationDateRanges": { + "items": { + "type": "object" + }, + "type": "array" + }, + "dataTruncationMessage": { + "type": "string" + }, + "dataTruncationType": { + "enum": [ + "DATA_TRUNCATION_TYPE_UNSPECIFIED", + "DATA_TRUNCATION_TYPE_RULES_BASED_MODELS", + "DATA_TRUNCATION_TYPE_DATA_DRIVEN_ATTRIBUTION", + "DATA_TRUNCATION_TYPE_DV360", + "DATA_TRUNCATION_TYPE_CM360", + "DATA_TRUNCATION_TYPE_ITEM_SCOPED_ECOMMERCE_METRICS", + "DATA_TRUNCATION_TYPE_EVENT_SCOPED_ECOMMERCE_METRICS", + "DATA_TRUNCATION_TYPE_DATE_RANGE", + "DATA_TRUNCATION_TYPE_PROPERTY", + "DATA_TRUNCATION_TYPE_CONVERSIONS", + "DATA_TRUNCATION_TYPE_GOOGLE_ADS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emptyReason": { + "type": "string" + }, + "samplingMetadatas": { + "items": { + "properties": { + "samplesReadCount": { + "type": "string" + }, + "samplingSpaceSize": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "schemaRestrictionResponse": { + "properties": { + "activeMetricRestrictions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "subjectToThresholding": { + "type": "boolean" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "metricHeaders": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "enum": [ + "METRIC_TYPE_UNSPECIFIED", + "TYPE_INTEGER", + "TYPE_FLOAT", + "TYPE_SECONDS", + "TYPE_MILLISECONDS", + "TYPE_MINUTES", + "TYPE_HOURS", + "TYPE_STANDARD", + "TYPE_CURRENCY", + "TYPE_FEET", + "TYPE_MILES", + "TYPE_METERS", + "TYPE_KILOMETERS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "minimums": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "propertyQuota": { + "properties": { + "concurrentRequests": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "potentiallyThresholdedRequestsPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "serverErrorsPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerDay": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "rowCount": { + "type": "integer" + }, + "rows": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "totals": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.checkCompatibility3 fields changed- changed
Input schema / properties / property / descriptionPrevious value: -"A Google Analytics property identifier whose events are tracked. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/dev"New value: +"[URL path segment] A Google Analytics property identifier whose events are tracked. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/dev" - added
Input schema / properties / property / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "dimensionCompatibilities": { + "items": { + "properties": { + "compatibility": { + "enum": [ + "COMPATIBILITY_UNSPECIFIED", + "COMPATIBLE", + "INCOMPATIBLE" + ], + "type": "string" + }, + "dimensionMetadata": { + "properties": { + "apiName": { + "type": "string" + }, + "category": { + "type": "string" + }, + "customDefinition": { + "type": "boolean" + }, + "deprecatedApiNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "type": "string" + }, + "uiName": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricCompatibilities": { + "items": { + "properties": { + "compatibility": { + "enum": [ + "COMPATIBILITY_UNSPECIFIED", + "COMPATIBLE", + "INCOMPATIBLE" + ], + "type": "string" + }, + "metricMetadata": { + "properties": { + "apiName": { + "type": "string" + }, + "blockedReasons": { + "items": { + "enum": [ + "BLOCKED_REASON_UNSPECIFIED", + "NO_REVENUE_METRICS", + "NO_COST_METRICS" + ], + "type": "string" + }, + "type": "array" + }, + "category": { + "type": "string" + }, + "customDefinition": { + "type": "boolean" + }, + "deprecatedApiNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "type": "string" + }, + "expression": { + "type": "string" + }, + "type": { + "enum": [ + "METRIC_TYPE_UNSPECIFIED", + "TYPE_INTEGER", + "TYPE_FLOAT", + "TYPE_SECONDS", + "TYPE_MILLISECONDS", + "TYPE_MINUTES", + "TYPE_HOURS", + "TYPE_STANDARD", + "TYPE_CURRENCY", + "TYPE_FEET", + "TYPE_MILES", + "TYPE_METERS", + "TYPE_KILOMETERS" + ], + "type": "string" + }, + "uiName": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.getMetadata3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the metadata to retrieve. This name field is specified in the URL path and not URL parameters. Property is a numeric Google Analy"New value: +"[URL path segment] Required. The resource name of the metadata to retrieve. This name field is specified in the URL path and not URL parameters. Property is a numeric Google Analy" - added
Input schema / properties / name / patternAdded value: +"^properties/[^/]+/metadata$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "comparisons": { + "items": { + "properties": { + "apiName": { + "type": "string" + }, + "description": { + "type": "string" + }, + "uiName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "dimensions": { + "items": { + "properties": { + "apiName": { + "type": "string" + }, + "category": { + "type": "string" + }, + "customDefinition": { + "type": "boolean" + }, + "deprecatedApiNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "type": "string" + }, + "uiName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metrics": { + "items": { + "properties": { + "apiName": { + "type": "string" + }, + "blockedReasons": { + "items": { + "enum": [ + "BLOCKED_REASON_UNSPECIFIED", + "NO_REVENUE_METRICS", + "NO_COST_METRICS" + ], + "type": "string" + }, + "type": "array" + }, + "category": { + "type": "string" + }, + "customDefinition": { + "type": "boolean" + }, + "deprecatedApiNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "type": "string" + }, + "expression": { + "type": "string" + }, + "type": { + "enum": [ + "METRIC_TYPE_UNSPECIFIED", + "TYPE_INTEGER", + "TYPE_FLOAT", + "TYPE_SECONDS", + "TYPE_MILLISECONDS", + "TYPE_MINUTES", + "TYPE_HOURS", + "TYPE_STANDARD", + "TYPE_CURRENCY", + "TYPE_FEET", + "TYPE_MILES", + "TYPE_METERS", + "TYPE_KILOMETERS" + ], + "type": "string" + }, + "uiName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.runPivotReport3 fields changed- changed
Input schema / properties / property / descriptionPrevious value: -"A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID]"New value: +"[URL path segment] A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID]" - added
Input schema / properties / property / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "aggregates": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "dimensionHeaders": { + "items": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "metadata": { + "properties": { + "currencyCode": { + "type": "string" + }, + "dataLossFromOtherRow": { + "type": "boolean" + }, + "dataTruncationReasons": { + "items": { + "properties": { + "dataTruncationDate": { + "type": "string" + }, + "dataTruncationDateRanges": { + "items": { + "properties": { + "endDate": { + "type": "string" + }, + "startDate": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "dataTruncationMessage": { + "type": "string" + }, + "dataTruncationType": { + "enum": [ + "DATA_TRUNCATION_TYPE_UNSPECIFIED", + "DATA_TRUNCATION_TYPE_RULES_BASED_MODELS", + "DATA_TRUNCATION_TYPE_DATA_DRIVEN_ATTRIBUTION", + "DATA_TRUNCATION_TYPE_DV360", + "DATA_TRUNCATION_TYPE_CM360", + "DATA_TRUNCATION_TYPE_ITEM_SCOPED_ECOMMERCE_METRICS", + "DATA_TRUNCATION_TYPE_EVENT_SCOPED_ECOMMERCE_METRICS", + "DATA_TRUNCATION_TYPE_DATE_RANGE", + "DATA_TRUNCATION_TYPE_PROPERTY", + "DATA_TRUNCATION_TYPE_CONVERSIONS", + "DATA_TRUNCATION_TYPE_GOOGLE_ADS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emptyReason": { + "type": "string" + }, + "samplingMetadatas": { + "items": { + "properties": { + "samplesReadCount": { + "type": "string" + }, + "samplingSpaceSize": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "schemaRestrictionResponse": { + "properties": { + "activeMetricRestrictions": { + "items": { + "properties": { + "metricName": { + "type": "string" + }, + "restrictedMetricTypes": { + "items": { + "enum": [ + "RESTRICTED_METRIC_TYPE_UNSPECIFIED", + "COST_DATA", + "REVENUE_DATA" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "subjectToThresholding": { + "type": "boolean" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "metricHeaders": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "enum": [ + "METRIC_TYPE_UNSPECIFIED", + "TYPE_INTEGER", + "TYPE_FLOAT", + "TYPE_SECONDS", + "TYPE_MILLISECONDS", + "TYPE_MINUTES", + "TYPE_HOURS", + "TYPE_STANDARD", + "TYPE_CURRENCY", + "TYPE_FEET", + "TYPE_MILES", + "TYPE_METERS", + "TYPE_KILOMETERS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "pivotHeaders": { + "items": { + "properties": { + "pivotDimensionHeaders": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "propertyQuota": { + "properties": { + "concurrentRequests": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "potentiallyThresholdedRequestsPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "serverErrorsPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerDay": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "rows": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.runRealtimeReport3 fields changed- changed
Input schema / properties / property / descriptionPrevious value: -"A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID]"New value: +"[URL path segment] A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID]" - added
Input schema / properties / property / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "dimensionHeaders": { + "items": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "maximums": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricHeaders": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "enum": [ + "METRIC_TYPE_UNSPECIFIED", + "TYPE_INTEGER", + "TYPE_FLOAT", + "TYPE_SECONDS", + "TYPE_MILLISECONDS", + "TYPE_MINUTES", + "TYPE_HOURS", + "TYPE_STANDARD", + "TYPE_CURRENCY", + "TYPE_FEET", + "TYPE_MILES", + "TYPE_METERS", + "TYPE_KILOMETERS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "minimums": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "propertyQuota": { + "properties": { + "concurrentRequests": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "potentiallyThresholdedRequestsPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "serverErrorsPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerDay": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "rowCount": { + "type": "integer" + }, + "rows": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "totals": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
analyticsdata.properties.runReport3 fields changed- changed
Input schema / properties / property / descriptionPrevious value: -"A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID]"New value: +"[URL path segment] A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID]" - added
Input schema / properties / property / patternAdded value: +"^properties/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "dimensionHeaders": { + "items": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "maximums": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "currencyCode": { + "type": "string" + }, + "dataLossFromOtherRow": { + "type": "boolean" + }, + "dataTruncationReasons": { + "items": { + "properties": { + "dataTruncationDate": { + "type": "string" + }, + "dataTruncationDateRanges": { + "items": { + "properties": { + "endDate": { + "type": "string" + }, + "startDate": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "dataTruncationMessage": { + "type": "string" + }, + "dataTruncationType": { + "enum": [ + "DATA_TRUNCATION_TYPE_UNSPECIFIED", + "DATA_TRUNCATION_TYPE_RULES_BASED_MODELS", + "DATA_TRUNCATION_TYPE_DATA_DRIVEN_ATTRIBUTION", + "DATA_TRUNCATION_TYPE_DV360", + "DATA_TRUNCATION_TYPE_CM360", + "DATA_TRUNCATION_TYPE_ITEM_SCOPED_ECOMMERCE_METRICS", + "DATA_TRUNCATION_TYPE_EVENT_SCOPED_ECOMMERCE_METRICS", + "DATA_TRUNCATION_TYPE_DATE_RANGE", + "DATA_TRUNCATION_TYPE_PROPERTY", + "DATA_TRUNCATION_TYPE_CONVERSIONS", + "DATA_TRUNCATION_TYPE_GOOGLE_ADS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emptyReason": { + "type": "string" + }, + "samplingMetadatas": { + "items": { + "properties": { + "samplesReadCount": { + "type": "string" + }, + "samplingSpaceSize": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "schemaRestrictionResponse": { + "properties": { + "activeMetricRestrictions": { + "items": { + "properties": { + "metricName": { + "type": "string" + }, + "restrictedMetricTypes": { + "items": { + "enum": [ + "RESTRICTED_METRIC_TYPE_UNSPECIFIED", + "COST_DATA", + "REVENUE_DATA" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "subjectToThresholding": { + "type": "boolean" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "metricHeaders": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "enum": [ + "METRIC_TYPE_UNSPECIFIED", + "TYPE_INTEGER", + "TYPE_FLOAT", + "TYPE_SECONDS", + "TYPE_MILLISECONDS", + "TYPE_MINUTES", + "TYPE_HOURS", + "TYPE_STANDARD", + "TYPE_CURRENCY", + "TYPE_FEET", + "TYPE_MILES", + "TYPE_METERS", + "TYPE_KILOMETERS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "minimums": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "propertyQuota": { + "properties": { + "concurrentRequests": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "potentiallyThresholdedRequestsPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "serverErrorsPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerDay": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + }, + "tokensPerProjectPerHour": { + "properties": { + "consumed": { + "type": "integer" + }, + "remaining": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "rowCount": { + "type": "integer" + }, + "rows": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "totals": { + "items": { + "properties": { + "dimensionValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "metricValues": { + "items": { + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
calendar.acl.delete2 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / ruleId / descriptionPrevious value: -"ACL rule identifier."New value: +"[URL path segment] ACL rule identifier."
- Changed
calendar.acl.get3 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / ruleId / descriptionPrevious value: -"ACL rule identifier."New value: +"[URL path segment] ACL rule identifier." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.acl.insert3 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / sendNotifications / descriptionPrevious value: -"Whether to send notifications about the calendar sharing change. Optional. The default is True."New value: +"[query parameter] Whether to send notifications about the calendar sharing change. Optional. The default is True." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.acl.list8 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional."New value: +"[query parameter] Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional." - added
Input schema / properties / maxResults / formatAdded value: +"int32" - added
Input schema / properties / maxResults / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Token specifying which result page to return. Optional."New value: +"[query parameter] Token specifying which result page to return. Optional." - changed
Input schema / properties / showDeleted / descriptionPrevious value: -"Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to \"none\". Deleted ACLs will always be included if syncToken is provid"New value: +"[query parameter] Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to \"none\". Deleted ACLs will always be included if syncToken is provid" - changed
Input schema / properties / syncToken / descriptionPrevious value: -"Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai"New value: +"[query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "items": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + }, + "nextSyncToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.acl.patch4 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / ruleId / descriptionPrevious value: -"ACL rule identifier."New value: +"[URL path segment] ACL rule identifier." - changed
Input schema / properties / sendNotifications / descriptionPrevious value: -"Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True."New value: +"[query parameter] Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.acl.update4 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / ruleId / descriptionPrevious value: -"ACL rule identifier."New value: +"[URL path segment] ACL rule identifier." - changed
Input schema / properties / sendNotifications / descriptionPrevious value: -"Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True."New value: +"[query parameter] Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.acl.watch8 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional."New value: +"[query parameter] Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional." - added
Input schema / properties / maxResults / formatAdded value: +"int32" - added
Input schema / properties / maxResults / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Token specifying which result page to return. Optional."New value: +"[query parameter] Token specifying which result page to return. Optional." - changed
Input schema / properties / showDeleted / descriptionPrevious value: -"Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to \"none\". Deleted ACLs will always be included if syncToken is provid"New value: +"[query parameter] Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to \"none\". Deleted ACLs will always be included if syncToken is provid" - changed
Input schema / properties / syncToken / descriptionPrevious value: -"Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai"New value: +"[query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendarList.delete1 field changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"
- Changed
calendar.calendarList.get2 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessRole": { + "type": "string" + }, + "autoAcceptInvitations": { + "type": "boolean" + }, + "backgroundColor": { + "type": "string" + }, + "colorId": { + "type": "string" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "defaultReminders": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "deleted": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "foregroundColor": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "notificationSettings": { + "properties": { + "notifications": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "primary": { + "type": "boolean" + }, + "selected": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "summaryOverride": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendarList.insert2 fields changed- changed
Input schema / properties / colorRgbFormat / descriptionPrevious value: -"Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be"New value: +"[query parameter] Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessRole": { + "type": "string" + }, + "autoAcceptInvitations": { + "type": "boolean" + }, + "backgroundColor": { + "type": "string" + }, + "colorId": { + "type": "string" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "defaultReminders": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "deleted": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "foregroundColor": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "notificationSettings": { + "properties": { + "notifications": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "primary": { + "type": "boolean" + }, + "selected": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "summaryOverride": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendarList.list10 fields changed- changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional."New value: +"[query parameter] Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional." - added
Input schema / properties / maxResults / formatAdded value: +"int32" - added
Input schema / properties / maxResults / minimumAdded value: +1 - changed
Input schema / properties / minAccessRole / descriptionPrevious value: -"The minimum access role for the user in the returned entries. Optional. The default is no restriction."New value: +"[query parameter] The minimum access role for the user in the returned entries. Optional. The default is no restriction. Values: `freeBusyReader` = The user can read free/busy information.; `owner` = The user can read and modify events and access control lists.; `reader` = The user can read events that are not private.; `writer` = The user can read and modify events.; `writerWithoutPrivateAccess` = The user can read and modify events that aren't private. The user can read free/busy information about private events. The user can't modify private events.." - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Token specifying which result page to return. Optional."New value: +"[query parameter] Token specifying which result page to return. Optional." - changed
Input schema / properties / showDeleted / descriptionPrevious value: -"Whether to include deleted calendar list entries in the result. Optional. The default is False."New value: +"[query parameter] Whether to include deleted calendar list entries in the result. Optional. The default is False." - changed
Input schema / properties / showHidden / descriptionPrevious value: -"Whether to show hidden entries. Optional. The default is False."New value: +"[query parameter] Whether to show hidden entries. Optional. The default is False." - changed
Input schema / properties / showOwnOrganizationOnly / descriptionPrevious value: -"Whether to show only entries for calendars from the organization. This parameter is only applicable to Google Workspace users. Optional. The default is False."New value: +"[query parameter] Whether to show only entries for calendars from the organization. This parameter is only applicable to Google Workspace users. Optional. The default is False." - changed
Input schema / properties / syncToken / descriptionPrevious value: -"Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai"New value: +"[query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "items": { + "items": { + "properties": { + "accessRole": { + "type": "string" + }, + "autoAcceptInvitations": { + "type": "boolean" + }, + "backgroundColor": { + "type": "string" + }, + "colorId": { + "type": "string" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "defaultReminders": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "deleted": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "foregroundColor": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "notificationSettings": { + "properties": { + "notifications": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "primary": { + "type": "boolean" + }, + "selected": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "summaryOverride": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + }, + "nextSyncToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendarList.patch3 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / colorRgbFormat / descriptionPrevious value: -"Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be"New value: +"[query parameter] Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessRole": { + "type": "string" + }, + "autoAcceptInvitations": { + "type": "boolean" + }, + "backgroundColor": { + "type": "string" + }, + "colorId": { + "type": "string" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "defaultReminders": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "deleted": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "foregroundColor": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "notificationSettings": { + "properties": { + "notifications": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "primary": { + "type": "boolean" + }, + "selected": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "summaryOverride": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendarList.update3 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / colorRgbFormat / descriptionPrevious value: -"Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be"New value: +"[query parameter] Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessRole": { + "type": "string" + }, + "autoAcceptInvitations": { + "type": "boolean" + }, + "backgroundColor": { + "type": "string" + }, + "colorId": { + "type": "string" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "defaultReminders": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "deleted": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "foregroundColor": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "notificationSettings": { + "properties": { + "notifications": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "primary": { + "type": "boolean" + }, + "selected": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "summaryOverride": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendarList.watch10 fields changed- changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional."New value: +"[query parameter] Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional." - added
Input schema / properties / maxResults / formatAdded value: +"int32" - added
Input schema / properties / maxResults / minimumAdded value: +1 - changed
Input schema / properties / minAccessRole / descriptionPrevious value: -"The minimum access role for the user in the returned entries. Optional. The default is no restriction."New value: +"[query parameter] The minimum access role for the user in the returned entries. Optional. The default is no restriction. Values: `freeBusyReader` = The user can read free/busy information.; `owner` = The user can read and modify events and access control lists.; `reader` = The user can read events that are not private.; `writer` = The user can read and modify events.; `writerWithoutPrivateAccess` = The user can read and modify events that aren't private. The user can read free/busy information about private events. The user can't modify private events.." - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Token specifying which result page to return. Optional."New value: +"[query parameter] Token specifying which result page to return. Optional." - changed
Input schema / properties / showDeleted / descriptionPrevious value: -"Whether to include deleted calendar list entries in the result. Optional. The default is False."New value: +"[query parameter] Whether to include deleted calendar list entries in the result. Optional. The default is False." - changed
Input schema / properties / showHidden / descriptionPrevious value: -"Whether to show hidden entries. Optional. The default is False."New value: +"[query parameter] Whether to show hidden entries. Optional. The default is False." - changed
Input schema / properties / showOwnOrganizationOnly / descriptionPrevious value: -"Whether to show only entries for calendars from the organization. This parameter is only applicable to Google Workspace users. Optional. The default is False."New value: +"[query parameter] Whether to show only entries for calendars from the organization. This parameter is only applicable to Google Workspace users. Optional. The default is False." - changed
Input schema / properties / syncToken / descriptionPrevious value: -"Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai"New value: +"[query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendars.clear1 field changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"
- Changed
calendar.calendars.delete1 field changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"
- Changed
calendar.calendars.get2 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "autoAcceptInvitations": { + "type": "boolean" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "labelProperties": { + "properties": { + "eventLabels": { + "items": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "location": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendars.insert1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "autoAcceptInvitations": { + "type": "boolean" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "labelProperties": { + "properties": { + "eventLabels": { + "items": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "location": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendars.patch2 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "autoAcceptInvitations": { + "type": "boolean" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "labelProperties": { + "properties": { + "eventLabels": { + "items": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "location": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.calendars.transferOwnership3 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs, call the calendarList.list method."New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs, call the calendarList.list method." - changed
Input schema / properties / newDataOwner / descriptionPrevious value: -"The email address of a user who will become the data owner of the calendar."New value: +"[query parameter] The email address of a user who will become the data owner of the calendar." - changed
Input schema / properties / useAdminAccess / descriptionPrevious value: -"When true, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the Manage"New value: +"[query parameter] When true, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the Manage"
- Changed
calendar.calendars.update2 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "autoAcceptInvitations": { + "type": "boolean" + }, + "conferenceProperties": { + "properties": { + "allowedConferenceSolutionTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "dataOwner": { + "type": "string" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "labelProperties": { + "properties": { + "eventLabels": { + "items": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "location": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.colors.get1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "calendar": { + "type": "object" + }, + "event": { + "type": "object" + }, + "kind": { + "type": "string" + }, + "updated": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.events.delete4 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / eventId / descriptionPrevious value: -"Event identifier."New value: +"[URL path segment] Event identifier." - changed
Input schema / properties / sendNotifications / descriptionPrevious value: -"Deprecated. Please use sendUpdates instead. Whether to send notifications about the deletion of the event. Note that some emails might still be sent even if you"New value: +"[query parameter] Deprecated. Please use sendUpdates instead. Whether to send notifications about the deletion of the event. Note that some emails might still be sent even if you" - changed
Input schema / properties / sendUpdates / descriptionPrevious value: -"Guests who should receive notifications about the deletion of the event."New value: +"[query parameter] Guests who should receive notifications about the deletion of the event. Values: `all` = Notifications are sent to all guests.; `externalOnly` = Notifications are sent to non-Google Calendar guests only.; `none` = No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.."
- Changed
calendar.events.get8 fields changed- changed
Input schema / properties / alwaysIncludeEmail / descriptionPrevious value: -"Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available "New value: +"[query parameter] Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available " - changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / eventId / descriptionPrevious value: -"Event identifier."New value: +"[URL path segment] Event identifier." - changed
Input schema / properties / maxAttendees / descriptionPrevious value: -"The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional"New value: +"[query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional" - added
Input schema / properties / maxAttendees / formatAdded value: +"int32" - added
Input schema / properties / maxAttendees / minimumAdded value: +1 - changed
Input schema / properties / timeZone / descriptionPrevious value: -"Time zone used in the response. Optional. The default is the time zone of the calendar."New value: +"[query parameter] Time zone used in the response. Optional. The default is the time zone of the calendar." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "anyoneCanAddSelf": { + "type": "boolean" + }, + "attachments": { + "items": { + "properties": { + "fileId": { + "type": "string" + }, + "fileUrl": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendees": { + "items": { + "properties": { + "additionalGuests": { + "type": "integer" + }, + "asyncOperation": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "organizer": { + "type": "boolean" + }, + "resource": { + "type": "boolean" + }, + "responseStatus": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendeesOmitted": { + "type": "boolean" + }, + "birthdayProperties": { + "properties": { + "contact": { + "type": "string" + }, + "customTypeName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "colorId": { + "type": "string" + }, + "conferenceData": { + "properties": { + "conferenceId": { + "type": "string" + }, + "conferenceSolution": { + "properties": { + "iconUri": { + "type": "string" + }, + "key": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "createRequest": { + "properties": { + "conferenceSolutionKey": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "requestId": { + "type": "string" + }, + "status": { + "properties": { + "statusCode": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "entryPoints": { + "items": { + "properties": { + "accessCode": { + "type": "string" + }, + "entryPointFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entryPointType": { + "type": "string" + }, + "label": { + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "passcode": { + "type": "string" + }, + "password": { + "type": "string" + }, + "pin": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parameters": { + "properties": { + "addOnParameters": { + "properties": { + "parameters": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "signature": { + "type": "string" + } + }, + "type": "object" + }, + "created": { + "type": "string" + }, + "creator": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "end": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "endTimeUnspecified": { + "type": "boolean" + }, + "etag": { + "type": "string" + }, + "eventLabelId": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "extendedProperties": { + "properties": { + "private": { + "type": "object" + }, + "shared": { + "type": "object" + } + }, + "type": "object" + }, + "focusTimeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "chatStatus": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "gadget": { + "properties": { + "display": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "iconLink": { + "type": "string" + }, + "link": { + "type": "string" + }, + "preferences": { + "type": "object" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "guestsCanInviteOthers": { + "type": "boolean" + }, + "guestsCanModify": { + "type": "boolean" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean" + }, + "hangoutLink": { + "type": "string" + }, + "htmlLink": { + "type": "string" + }, + "iCalUID": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "organizer": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "originalStartTime": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "outOfOfficeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "privateCopy": { + "type": "boolean" + }, + "recurrence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recurringEventId": { + "type": "string" + }, + "reminders": { + "properties": { + "overrides": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "useDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "sequence": { + "type": "integer" + }, + "source": { + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "start": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "transparency": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "workingLocationProperties": { + "properties": { + "customLocation": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "type": "any" + }, + "officeLocation": { + "properties": { + "buildingId": { + "type": "string" + }, + "deskId": { + "type": "string" + }, + "floorId": { + "type": "string" + }, + "floorSectionId": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.events.import11 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / conferenceDataVersion / descriptionPrevious value: -"Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Ver"New value: +"[query parameter] Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Ver" - added
Input schema / properties / conferenceDataVersion / formatAdded value: +"int32" - added
Input schema / properties / conferenceDataVersion / maximumAdded value: +1 - added
Input schema / properties / conferenceDataVersion / minimumAdded value: +0 - changed
Input schema / properties / eventLabelVersion / descriptionPrevious value: -"Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color manage"New value: +"[query parameter] Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color manage" - added
Input schema / properties / eventLabelVersion / formatAdded value: +"int32" - added
Input schema / properties / eventLabelVersion / maximumAdded value: +1 - added
Input schema / properties / eventLabelVersion / minimumAdded value: +0 - changed
Input schema / properties / supportsAttachments / descriptionPrevious value: -"Whether API client performing operation supports event attachments. Optional. The default is False."New value: +"[query parameter] Whether API client performing operation supports event attachments. Optional. The default is False." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "anyoneCanAddSelf": { + "type": "boolean" + }, + "attachments": { + "items": { + "properties": { + "fileId": { + "type": "string" + }, + "fileUrl": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendees": { + "items": { + "properties": { + "additionalGuests": { + "type": "integer" + }, + "asyncOperation": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "organizer": { + "type": "boolean" + }, + "resource": { + "type": "boolean" + }, + "responseStatus": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendeesOmitted": { + "type": "boolean" + }, + "birthdayProperties": { + "properties": { + "contact": { + "type": "string" + }, + "customTypeName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "colorId": { + "type": "string" + }, + "conferenceData": { + "properties": { + "conferenceId": { + "type": "string" + }, + "conferenceSolution": { + "properties": { + "iconUri": { + "type": "string" + }, + "key": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "createRequest": { + "properties": { + "conferenceSolutionKey": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "requestId": { + "type": "string" + }, + "status": { + "properties": { + "statusCode": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "entryPoints": { + "items": { + "properties": { + "accessCode": { + "type": "string" + }, + "entryPointFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entryPointType": { + "type": "string" + }, + "label": { + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "passcode": { + "type": "string" + }, + "password": { + "type": "string" + }, + "pin": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parameters": { + "properties": { + "addOnParameters": { + "properties": { + "parameters": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "signature": { + "type": "string" + } + }, + "type": "object" + }, + "created": { + "type": "string" + }, + "creator": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "end": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "endTimeUnspecified": { + "type": "boolean" + }, + "etag": { + "type": "string" + }, + "eventLabelId": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "extendedProperties": { + "properties": { + "private": { + "type": "object" + }, + "shared": { + "type": "object" + } + }, + "type": "object" + }, + "focusTimeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "chatStatus": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "gadget": { + "properties": { + "display": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "iconLink": { + "type": "string" + }, + "link": { + "type": "string" + }, + "preferences": { + "type": "object" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "guestsCanInviteOthers": { + "type": "boolean" + }, + "guestsCanModify": { + "type": "boolean" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean" + }, + "hangoutLink": { + "type": "string" + }, + "htmlLink": { + "type": "string" + }, + "iCalUID": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "organizer": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "originalStartTime": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "outOfOfficeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "privateCopy": { + "type": "boolean" + }, + "recurrence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recurringEventId": { + "type": "string" + }, + "reminders": { + "properties": { + "overrides": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "useDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "sequence": { + "type": "integer" + }, + "source": { + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "start": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "transparency": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "workingLocationProperties": { + "properties": { + "customLocation": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "type": "any" + }, + "officeLocation": { + "properties": { + "buildingId": { + "type": "string" + }, + "deskId": { + "type": "string" + }, + "floorId": { + "type": "string" + }, + "floorSectionId": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.events.insert16 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / conferenceDataVersion / descriptionPrevious value: -"Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Ver"New value: +"[query parameter] Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Ver" - added
Input schema / properties / conferenceDataVersion / formatAdded value: +"int32" - added
Input schema / properties / conferenceDataVersion / maximumAdded value: +1 - added
Input schema / properties / conferenceDataVersion / minimumAdded value: +0 - changed
Input schema / properties / eventLabelVersion / descriptionPrevious value: -"Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color manage"New value: +"[query parameter] Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color manage" - added
Input schema / properties / eventLabelVersion / formatAdded value: +"int32" - added
Input schema / properties / eventLabelVersion / maximumAdded value: +1 - added
Input schema / properties / eventLabelVersion / minimumAdded value: +0 - changed
Input schema / properties / maxAttendees / descriptionPrevious value: -"The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional"New value: +"[query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional" - added
Input schema / properties / maxAttendees / formatAdded value: +"int32" - added
Input schema / properties / maxAttendees / minimumAdded value: +1 - changed
Input schema / properties / sendNotifications / descriptionPrevious value: -"Deprecated. Please use sendUpdates instead. Whether to send notifications about the creation of the new event. Note that some emails might still be sent even if"New value: +"[query parameter] Deprecated. Please use sendUpdates instead. Whether to send notifications about the creation of the new event. Note that some emails might still be sent even if" - changed
Input schema / properties / sendUpdates / descriptionPrevious value: -"Whether to send notifications about the creation of the new event. Note that some emails might still be sent. The default is false."New value: +"[query parameter] Whether to send notifications about the creation of the new event. Note that some emails might still be sent. The default is false. Values: `all` = Notifications are sent to all guests.; `externalOnly` = Notifications are sent to non-Google Calendar guests only.; `none` = No notifications are sent. Warning: Using the value none can have significant adverse effects, including events not syncing to external calendars or events being lost altogether for some users. For calendar migration tasks, consider using the events.import method instead.." - changed
Input schema / properties / supportsAttachments / descriptionPrevious value: -"Whether API client performing operation supports event attachments. Optional. The default is False."New value: +"[query parameter] Whether API client performing operation supports event attachments. Optional. The default is False." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "anyoneCanAddSelf": { + "type": "boolean" + }, + "attachments": { + "items": { + "properties": { + "fileId": { + "type": "string" + }, + "fileUrl": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendees": { + "items": { + "properties": { + "additionalGuests": { + "type": "integer" + }, + "asyncOperation": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "organizer": { + "type": "boolean" + }, + "resource": { + "type": "boolean" + }, + "responseStatus": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendeesOmitted": { + "type": "boolean" + }, + "birthdayProperties": { + "properties": { + "contact": { + "type": "string" + }, + "customTypeName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "colorId": { + "type": "string" + }, + "conferenceData": { + "properties": { + "conferenceId": { + "type": "string" + }, + "conferenceSolution": { + "properties": { + "iconUri": { + "type": "string" + }, + "key": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "createRequest": { + "properties": { + "conferenceSolutionKey": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "requestId": { + "type": "string" + }, + "status": { + "properties": { + "statusCode": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "entryPoints": { + "items": { + "properties": { + "accessCode": { + "type": "string" + }, + "entryPointFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entryPointType": { + "type": "string" + }, + "label": { + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "passcode": { + "type": "string" + }, + "password": { + "type": "string" + }, + "pin": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parameters": { + "properties": { + "addOnParameters": { + "properties": { + "parameters": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "signature": { + "type": "string" + } + }, + "type": "object" + }, + "created": { + "type": "string" + }, + "creator": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "end": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "endTimeUnspecified": { + "type": "boolean" + }, + "etag": { + "type": "string" + }, + "eventLabelId": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "extendedProperties": { + "properties": { + "private": { + "type": "object" + }, + "shared": { + "type": "object" + } + }, + "type": "object" + }, + "focusTimeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "chatStatus": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "gadget": { + "properties": { + "display": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "iconLink": { + "type": "string" + }, + "link": { + "type": "string" + }, + "preferences": { + "type": "object" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "guestsCanInviteOthers": { + "type": "boolean" + }, + "guestsCanModify": { + "type": "boolean" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean" + }, + "hangoutLink": { + "type": "string" + }, + "htmlLink": { + "type": "string" + }, + "iCalUID": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "organizer": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "originalStartTime": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "outOfOfficeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "privateCopy": { + "type": "boolean" + }, + "recurrence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recurringEventId": { + "type": "string" + }, + "reminders": { + "properties": { + "overrides": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "useDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "sequence": { + "type": "integer" + }, + "source": { + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "start": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "transparency": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "workingLocationProperties": { + "properties": { + "customLocation": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "type": "any" + }, + "officeLocation": { + "properties": { + "buildingId": { + "type": "string" + }, + "deskId": { + "type": "string" + }, + "floorId": { + "type": "string" + }, + "floorSectionId": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.events.instances18 fields changed- changed
Input schema / properties / alwaysIncludeEmail / descriptionPrevious value: -"Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available "New value: +"[query parameter] Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available " - changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / eventId / descriptionPrevious value: -"Recurring event identifier."New value: +"[URL path segment] Recurring event identifier." - changed
Input schema / properties / maxAttendees / descriptionPrevious value: -"The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional"New value: +"[query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional" - added
Input schema / properties / maxAttendees / formatAdded value: +"int32" - added
Input schema / properties / maxAttendees / minimumAdded value: +1 - changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of events returned on one result page. By default the value is 250 events. The page size can never be larger than 2500 events. Optional."New value: +"[query parameter] Maximum number of events returned on one result page. By default the value is 250 events. The page size can never be larger than 2500 events. Optional." - added
Input schema / properties / maxResults / formatAdded value: +"int32" - added
Input schema / properties / maxResults / minimumAdded value: +1 - changed
Input schema / properties / originalStart / descriptionPrevious value: -"The original start time of the instance in the result. Optional."New value: +"[query parameter] The original start time of the instance in the result. Optional." - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Token specifying which result page to return. Optional."New value: +"[query parameter] Token specifying which result page to return. Optional." - changed
Input schema / properties / showDeleted / descriptionPrevious value: -"Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events will still be included if singleEvents"New value: +"[query parameter] Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events will still be included if singleEvents" - changed
Input schema / properties / timeMax / descriptionPrevious value: -"Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandator"New value: +"[query parameter] Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandator" - added
Input schema / properties / timeMax / formatAdded value: +"date-time" - changed
Input schema / properties / timeMin / descriptionPrevious value: -"Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory ti"New value: +"[query parameter] Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory ti" - added
Input schema / properties / timeMin / formatAdded value: +"date-time" - changed
Input schema / properties / timeZone / descriptionPrevious value: -"Time zone used in the response. Optional. The default is the time zone of the calendar."New value: +"[query parameter] Time zone used in the response. Optional. The default is the time zone of the calendar." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessRole": { + "type": "string" + }, + "defaultReminders": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "items": { + "items": { + "properties": { + "anyoneCanAddSelf": { + "type": "boolean" + }, + "attachments": { + "items": { + "properties": { + "fileId": { + "type": "string" + }, + "fileUrl": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendees": { + "items": { + "properties": { + "additionalGuests": { + "type": "integer" + }, + "asyncOperation": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "organizer": { + "type": "boolean" + }, + "resource": { + "type": "boolean" + }, + "responseStatus": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendeesOmitted": { + "type": "boolean" + }, + "birthdayProperties": { + "properties": { + "contact": { + "type": "string" + }, + "customTypeName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "colorId": { + "type": "string" + }, + "conferenceData": { + "properties": { + "conferenceId": { + "type": "string" + }, + "conferenceSolution": { + "properties": { + "iconUri": { + "type": "string" + }, + "key": { + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "createRequest": { + "properties": { + "conferenceSolutionKey": { + "type": "object" + }, + "requestId": { + "type": "string" + }, + "status": { + "type": "object" + } + }, + "type": "object" + }, + "entryPoints": { + "items": { + "properties": { + "accessCode": { + "type": "string" + }, + "entryPointFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entryPointType": { + "type": "string" + }, + "label": { + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "passcode": { + "type": "string" + }, + "password": { + "type": "string" + }, + "pin": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parameters": { + "properties": { + "addOnParameters": { + "type": "object" + } + }, + "type": "object" + }, + "signature": { + "type": "string" + } + }, + "type": "object" + }, + "created": { + "type": "string" + }, + "creator": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "end": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "endTimeUnspecified": { + "type": "boolean" + }, + "etag": { + "type": "string" + }, + "eventLabelId": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "extendedProperties": { + "properties": { + "private": { + "type": "object" + }, + "shared": { + "type": "object" + } + }, + "type": "object" + }, + "focusTimeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "chatStatus": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "gadget": { + "properties": { + "display": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "iconLink": { + "type": "string" + }, + "link": { + "type": "string" + }, + "preferences": { + "type": "object" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "guestsCanInviteOthers": { + "type": "boolean" + }, + "guestsCanModify": { + "type": "boolean" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean" + }, + "hangoutLink": { + "type": "string" + }, + "htmlLink": { + "type": "string" + }, + "iCalUID": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "organizer": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "originalStartTime": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "outOfOfficeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "privateCopy": { + "type": "boolean" + }, + "recurrence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recurringEventId": { + "type": "string" + }, + "reminders": { + "properties": { + "overrides": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "useDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "sequence": { + "type": "integer" + }, + "source": { + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "start": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "transparency": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "workingLocationProperties": { + "properties": { + "customLocation": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "type": "any" + }, + "officeLocation": { + "properties": { + "buildingId": { + "type": "string" + }, + "deskId": { + "type": "string" + }, + "floorId": { + "type": "string" + }, + "floorSectionId": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + }, + "nextSyncToken": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "timeZone": { + "type": "string" + }, + "updated": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.events.list28 fields changed- changed
Input schema / properties / alwaysIncludeEmail / descriptionPrevious value: -"Deprecated and ignored."New value: +"[query parameter] Deprecated and ignored." - changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / eventTypes / items / descriptionPrevious value: -"Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types."New value: +"[query parameter] Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types. Values: `birthday` = Special all-day events with an annual recurrence.; `default` = Regular events.; `focusTime` = Focus time events.; `fromGmail` = Events from Gmail.; `outOfOffice` = Out of office events.; `workingLocation` = Working location events.." - changed
Input schema / properties / iCalUID / descriptionPrevious value: -"Specifies an event ID in the iCalendar format to be provided in the response. Optional. Use this if you want to search for an event by its iCalendar ID."New value: +"[query parameter] Specifies an event ID in the iCalendar format to be provided in the response. Optional. Use this if you want to search for an event by its iCalendar ID." - changed
Input schema / properties / maxAttendees / descriptionPrevious value: -"The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional"New value: +"[query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional" - added
Input schema / properties / maxAttendees / formatAdded value: +"int32" - added
Input schema / properties / maxAttendees / minimumAdded value: +1 - added
Input schema / properties / maxResults / defaultAdded value: +"250" - changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are "New value: +"[query parameter] Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are " - added
Input schema / properties / maxResults / formatAdded value: +"int32" - added
Input schema / properties / maxResults / minimumAdded value: +1 - changed
Input schema / properties / orderBy / descriptionPrevious value: -"The order of the events returned in the result. Optional. The default is an unspecified, stable order."New value: +"[query parameter] The order of the events returned in the result. Optional. The default is an unspecified, stable order. Values: `startTime` = Order by the start date/time (ascending). This is only available when querying single events (i.e. the parameter singleEvents is True); `updated` = Order by last modification time (ascending).." - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Token specifying which result page to return. Optional."New value: +"[query parameter] Token specifying which result page to return. Optional." - changed
Input schema / properties / privateExtendedProperty / items / descriptionPrevious value: -"Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return event"New value: +"[query parameter] Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return event" - changed
Input schema / properties / q / descriptionPrevious value: -"Free text search terms to find events that match these terms in the following fields: - summary - description - location - attendee's displayName - attendee's e"New value: +"[query parameter] Free text search terms to find events that match these terms in the following fields: - summary - description - location - attendee's displayName - attendee's e" - changed
Input schema / properties / sharedExtendedProperty / items / descriptionPrevious value: -"Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events"New value: +"[query parameter] Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events" - changed
Input schema / properties / showDeleted / descriptionPrevious value: -"Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events (but not the underlying recurring even"New value: +"[query parameter] Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events (but not the underlying recurring even" - changed
Input schema / properties / showHiddenInvitations / descriptionPrevious value: -"Whether to include hidden invitations in the result. Optional. The default is False."New value: +"[query parameter] Whether to include hidden invitations in the result. Optional. The default is False." - changed
Input schema / properties / singleEvents / descriptionPrevious value: -"Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring even"New value: +"[query parameter] Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring even" - changed
Input schema / properties / syncToken / descriptionPrevious value: -"Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai"New value: +"[query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai" - changed
Input schema / properties / timeMax / descriptionPrevious value: -"Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandator"New value: +"[query parameter] Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandator" - added
Input schema / properties / timeMax / formatAdded value: +"date-time" - changed
Input schema / properties / timeMin / descriptionPrevious value: -"Lower bound (exclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory ti"New value: +"[query parameter] Lower bound (exclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory ti" - added
Input schema / properties / timeMin / formatAdded value: +"date-time" - changed
Input schema / properties / timeZone / descriptionPrevious value: -"Time zone used in the response. Optional. The default is the time zone of the calendar."New value: +"[query parameter] Time zone used in the response. Optional. The default is the time zone of the calendar." - changed
Input schema / properties / updatedMin / descriptionPrevious value: -"Lower bound for an event's last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included"New value: +"[query parameter] Lower bound for an event's last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included" - added
Input schema / properties / updatedMin / formatAdded value: +"date-time" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessRole": { + "type": "string" + }, + "defaultReminders": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "description": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "items": { + "items": { + "properties": { + "anyoneCanAddSelf": { + "type": "boolean" + }, + "attachments": { + "items": { + "properties": { + "fileId": { + "type": "string" + }, + "fileUrl": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendees": { + "items": { + "properties": { + "additionalGuests": { + "type": "integer" + }, + "asyncOperation": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "organizer": { + "type": "boolean" + }, + "resource": { + "type": "boolean" + }, + "responseStatus": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendeesOmitted": { + "type": "boolean" + }, + "birthdayProperties": { + "properties": { + "contact": { + "type": "string" + }, + "customTypeName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "colorId": { + "type": "string" + }, + "conferenceData": { + "properties": { + "conferenceId": { + "type": "string" + }, + "conferenceSolution": { + "properties": { + "iconUri": { + "type": "string" + }, + "key": { + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "createRequest": { + "properties": { + "conferenceSolutionKey": { + "type": "object" + }, + "requestId": { + "type": "string" + }, + "status": { + "type": "object" + } + }, + "type": "object" + }, + "entryPoints": { + "items": { + "properties": { + "accessCode": { + "type": "string" + }, + "entryPointFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entryPointType": { + "type": "string" + }, + "label": { + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "passcode": { + "type": "string" + }, + "password": { + "type": "string" + }, + "pin": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parameters": { + "properties": { + "addOnParameters": { + "type": "object" + } + }, + "type": "object" + }, + "signature": { + "type": "string" + } + }, + "type": "object" + }, + "created": { + "type": "string" + }, + "creator": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "end": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "endTimeUnspecified": { + "type": "boolean" + }, + "etag": { + "type": "string" + }, + "eventLabelId": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "extendedProperties": { + "properties": { + "private": { + "type": "object" + }, + "shared": { + "type": "object" + } + }, + "type": "object" + }, + "focusTimeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "chatStatus": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "gadget": { + "properties": { + "display": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "iconLink": { + "type": "string" + }, + "link": { + "type": "string" + }, + "preferences": { + "type": "object" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "guestsCanInviteOthers": { + "type": "boolean" + }, + "guestsCanModify": { + "type": "boolean" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean" + }, + "hangoutLink": { + "type": "string" + }, + "htmlLink": { + "type": "string" + }, + "iCalUID": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "organizer": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "originalStartTime": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "outOfOfficeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "privateCopy": { + "type": "boolean" + }, + "recurrence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recurringEventId": { + "type": "string" + }, + "reminders": { + "properties": { + "overrides": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "useDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "sequence": { + "type": "integer" + }, + "source": { + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "start": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "transparency": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "workingLocationProperties": { + "properties": { + "customLocation": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "type": "any" + }, + "officeLocation": { + "properties": { + "buildingId": { + "type": "string" + }, + "deskId": { + "type": "string" + }, + "floorId": { + "type": "string" + }, + "floorSectionId": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + }, + "nextSyncToken": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "timeZone": { + "type": "string" + }, + "updated": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.events.move6 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier of the source calendar where the event currently is on."New value: +"[URL path segment] Calendar identifier of the source calendar where the event currently is on." - changed
Input schema / properties / destination / descriptionPrevious value: -"Calendar identifier of the target calendar where the event is to be moved to."New value: +"[query parameter] Calendar identifier of the target calendar where the event is to be moved to." - changed
Input schema / properties / eventId / descriptionPrevious value: -"Event identifier."New value: +"[URL path segment] Event identifier." - changed
Input schema / properties / sendNotifications / descriptionPrevious value: -"Deprecated. Please use sendUpdates instead. Whether to send notifications about the change of the event's organizer. Note that some emails might still be sent e"New value: +"[query parameter] Deprecated. Please use sendUpdates instead. Whether to send notifications about the change of the event's organizer. Note that some emails might still be sent e" - changed
Input schema / properties / sendUpdates / descriptionPrevious value: -"Guests who should receive notifications about the change of the event's organizer."New value: +"[query parameter] Guests who should receive notifications about the change of the event's organizer. Values: `all` = Notifications are sent to all guests.; `externalOnly` = Notifications are sent to non-Google Calendar guests only.; `none` = No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "anyoneCanAddSelf": { + "type": "boolean" + }, + "attachments": { + "items": { + "properties": { + "fileId": { + "type": "string" + }, + "fileUrl": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendees": { + "items": { + "properties": { + "additionalGuests": { + "type": "integer" + }, + "asyncOperation": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "organizer": { + "type": "boolean" + }, + "resource": { + "type": "boolean" + }, + "responseStatus": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendeesOmitted": { + "type": "boolean" + }, + "birthdayProperties": { + "properties": { + "contact": { + "type": "string" + }, + "customTypeName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "colorId": { + "type": "string" + }, + "conferenceData": { + "properties": { + "conferenceId": { + "type": "string" + }, + "conferenceSolution": { + "properties": { + "iconUri": { + "type": "string" + }, + "key": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "createRequest": { + "properties": { + "conferenceSolutionKey": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "requestId": { + "type": "string" + }, + "status": { + "properties": { + "statusCode": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "entryPoints": { + "items": { + "properties": { + "accessCode": { + "type": "string" + }, + "entryPointFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entryPointType": { + "type": "string" + }, + "label": { + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "passcode": { + "type": "string" + }, + "password": { + "type": "string" + }, + "pin": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parameters": { + "properties": { + "addOnParameters": { + "properties": { + "parameters": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "signature": { + "type": "string" + } + }, + "type": "object" + }, + "created": { + "type": "string" + }, + "creator": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "end": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "endTimeUnspecified": { + "type": "boolean" + }, + "etag": { + "type": "string" + }, + "eventLabelId": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "extendedProperties": { + "properties": { + "private": { + "type": "object" + }, + "shared": { + "type": "object" + } + }, + "type": "object" + }, + "focusTimeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "chatStatus": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "gadget": { + "properties": { + "display": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "iconLink": { + "type": "string" + }, + "link": { + "type": "string" + }, + "preferences": { + "type": "object" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "guestsCanInviteOthers": { + "type": "boolean" + }, + "guestsCanModify": { + "type": "boolean" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean" + }, + "hangoutLink": { + "type": "string" + }, + "htmlLink": { + "type": "string" + }, + "iCalUID": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "organizer": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "originalStartTime": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "outOfOfficeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "privateCopy": { + "type": "boolean" + }, + "recurrence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recurringEventId": { + "type": "string" + }, + "reminders": { + "properties": { + "overrides": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "useDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "sequence": { + "type": "integer" + }, + "source": { + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "start": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "transparency": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "workingLocationProperties": { + "properties": { + "customLocation": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "type": "any" + }, + "officeLocation": { + "properties": { + "buildingId": { + "type": "string" + }, + "deskId": { + "type": "string" + }, + "floorId": { + "type": "string" + }, + "floorSectionId": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.events.patch18 fields changed- changed
Input schema / properties / alwaysIncludeEmail / descriptionPrevious value: -"Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available "New value: +"[query parameter] Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available " - changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / conferenceDataVersion / descriptionPrevious value: -"Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Ver"New value: +"[query parameter] Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Ver" - added
Input schema / properties / conferenceDataVersion / formatAdded value: +"int32" - added
Input schema / properties / conferenceDataVersion / maximumAdded value: +1 - added
Input schema / properties / conferenceDataVersion / minimumAdded value: +0 - changed
Input schema / properties / eventId / descriptionPrevious value: -"Event identifier."New value: +"[URL path segment] Event identifier." - changed
Input schema / properties / eventLabelVersion / descriptionPrevious value: -"Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color manage"New value: +"[query parameter] Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color manage" - added
Input schema / properties / eventLabelVersion / formatAdded value: +"int32" - added
Input schema / properties / eventLabelVersion / maximumAdded value: +1 - added
Input schema / properties / eventLabelVersion / minimumAdded value: +0 - changed
Input schema / properties / maxAttendees / descriptionPrevious value: -"The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional"New value: +"[query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional" - added
Input schema / properties / maxAttendees / formatAdded value: +"int32" - added
Input schema / properties / maxAttendees / minimumAdded value: +1 - changed
Input schema / properties / sendNotifications / descriptionPrevious value: -"Deprecated. Please use sendUpdates instead. Whether to send notifications about the event update (for example, description changes, etc.). Note that some emails"New value: +"[query parameter] Deprecated. Please use sendUpdates instead. Whether to send notifications about the event update (for example, description changes, etc.). Note that some emails" - changed
Input schema / properties / sendUpdates / descriptionPrevious value: -"Guests who should receive notifications about the event update (for example, title changes, etc.)."New value: +"[query parameter] Guests who should receive notifications about the event update (for example, title changes, etc.). Values: `all` = Notifications are sent to all guests.; `externalOnly` = Notifications are sent to non-Google Calendar guests only.; `none` = No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.." - changed
Input schema / properties / supportsAttachments / descriptionPrevious value: -"Whether API client performing operation supports event attachments. Optional. The default is False."New value: +"[query parameter] Whether API client performing operation supports event attachments. Optional. The default is False." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "anyoneCanAddSelf": { + "type": "boolean" + }, + "attachments": { + "items": { + "properties": { + "fileId": { + "type": "string" + }, + "fileUrl": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendees": { + "items": { + "properties": { + "additionalGuests": { + "type": "integer" + }, + "asyncOperation": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "organizer": { + "type": "boolean" + }, + "resource": { + "type": "boolean" + }, + "responseStatus": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendeesOmitted": { + "type": "boolean" + }, + "birthdayProperties": { + "properties": { + "contact": { + "type": "string" + }, + "customTypeName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "colorId": { + "type": "string" + }, + "conferenceData": { + "properties": { + "conferenceId": { + "type": "string" + }, + "conferenceSolution": { + "properties": { + "iconUri": { + "type": "string" + }, + "key": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "createRequest": { + "properties": { + "conferenceSolutionKey": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "requestId": { + "type": "string" + }, + "status": { + "properties": { + "statusCode": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "entryPoints": { + "items": { + "properties": { + "accessCode": { + "type": "string" + }, + "entryPointFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entryPointType": { + "type": "string" + }, + "label": { + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "passcode": { + "type": "string" + }, + "password": { + "type": "string" + }, + "pin": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parameters": { + "properties": { + "addOnParameters": { + "properties": { + "parameters": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "signature": { + "type": "string" + } + }, + "type": "object" + }, + "created": { + "type": "string" + }, + "creator": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "end": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "endTimeUnspecified": { + "type": "boolean" + }, + "etag": { + "type": "string" + }, + "eventLabelId": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "extendedProperties": { + "properties": { + "private": { + "type": "object" + }, + "shared": { + "type": "object" + } + }, + "type": "object" + }, + "focusTimeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "chatStatus": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "gadget": { + "properties": { + "display": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "iconLink": { + "type": "string" + }, + "link": { + "type": "string" + }, + "preferences": { + "type": "object" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "guestsCanInviteOthers": { + "type": "boolean" + }, + "guestsCanModify": { + "type": "boolean" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean" + }, + "hangoutLink": { + "type": "string" + }, + "htmlLink": { + "type": "string" + }, + "iCalUID": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "organizer": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "originalStartTime": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "outOfOfficeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "privateCopy": { + "type": "boolean" + }, + "recurrence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recurringEventId": { + "type": "string" + }, + "reminders": { + "properties": { + "overrides": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "useDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "sequence": { + "type": "integer" + }, + "source": { + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "start": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "transparency": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "workingLocationProperties": { + "properties": { + "customLocation": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "type": "any" + }, + "officeLocation": { + "properties": { + "buildingId": { + "type": "string" + }, + "deskId": { + "type": "string" + }, + "floorId": { + "type": "string" + }, + "floorSectionId": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.events.quickAdd5 fields changed- changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / sendNotifications / descriptionPrevious value: -"Deprecated. Please use sendUpdates instead. Whether to send notifications about the creation of the event. Note that some emails might still be sent even if you"New value: +"[query parameter] Deprecated. Please use sendUpdates instead. Whether to send notifications about the creation of the event. Note that some emails might still be sent even if you" - changed
Input schema / properties / sendUpdates / descriptionPrevious value: -"Guests who should receive notifications about the creation of the new event."New value: +"[query parameter] Guests who should receive notifications about the creation of the new event. Values: `all` = Notifications are sent to all guests.; `externalOnly` = Notifications are sent to non-Google Calendar guests only.; `none` = No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.." - changed
Input schema / properties / text / descriptionPrevious value: -"The text describing the event to be created."New value: +"[query parameter] The text describing the event to be created." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "anyoneCanAddSelf": { + "type": "boolean" + }, + "attachments": { + "items": { + "properties": { + "fileId": { + "type": "string" + }, + "fileUrl": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendees": { + "items": { + "properties": { + "additionalGuests": { + "type": "integer" + }, + "asyncOperation": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "organizer": { + "type": "boolean" + }, + "resource": { + "type": "boolean" + }, + "responseStatus": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendeesOmitted": { + "type": "boolean" + }, + "birthdayProperties": { + "properties": { + "contact": { + "type": "string" + }, + "customTypeName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "colorId": { + "type": "string" + }, + "conferenceData": { + "properties": { + "conferenceId": { + "type": "string" + }, + "conferenceSolution": { + "properties": { + "iconUri": { + "type": "string" + }, + "key": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "createRequest": { + "properties": { + "conferenceSolutionKey": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "requestId": { + "type": "string" + }, + "status": { + "properties": { + "statusCode": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "entryPoints": { + "items": { + "properties": { + "accessCode": { + "type": "string" + }, + "entryPointFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entryPointType": { + "type": "string" + }, + "label": { + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "passcode": { + "type": "string" + }, + "password": { + "type": "string" + }, + "pin": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parameters": { + "properties": { + "addOnParameters": { + "properties": { + "parameters": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "signature": { + "type": "string" + } + }, + "type": "object" + }, + "created": { + "type": "string" + }, + "creator": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "end": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "endTimeUnspecified": { + "type": "boolean" + }, + "etag": { + "type": "string" + }, + "eventLabelId": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "extendedProperties": { + "properties": { + "private": { + "type": "object" + }, + "shared": { + "type": "object" + } + }, + "type": "object" + }, + "focusTimeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "chatStatus": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "gadget": { + "properties": { + "display": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "iconLink": { + "type": "string" + }, + "link": { + "type": "string" + }, + "preferences": { + "type": "object" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "guestsCanInviteOthers": { + "type": "boolean" + }, + "guestsCanModify": { + "type": "boolean" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean" + }, + "hangoutLink": { + "type": "string" + }, + "htmlLink": { + "type": "string" + }, + "iCalUID": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "organizer": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "originalStartTime": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "outOfOfficeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "privateCopy": { + "type": "boolean" + }, + "recurrence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recurringEventId": { + "type": "string" + }, + "reminders": { + "properties": { + "overrides": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "useDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "sequence": { + "type": "integer" + }, + "source": { + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "start": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "transparency": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "workingLocationProperties": { + "properties": { + "customLocation": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "type": "any" + }, + "officeLocation": { + "properties": { + "buildingId": { + "type": "string" + }, + "deskId": { + "type": "string" + }, + "floorId": { + "type": "string" + }, + "floorSectionId": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.events.update18 fields changed- changed
Input schema / properties / alwaysIncludeEmail / descriptionPrevious value: -"Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available "New value: +"[query parameter] Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available " - changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / conferenceDataVersion / descriptionPrevious value: -"Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Ver"New value: +"[query parameter] Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Ver" - added
Input schema / properties / conferenceDataVersion / formatAdded value: +"int32" - added
Input schema / properties / conferenceDataVersion / maximumAdded value: +1 - added
Input schema / properties / conferenceDataVersion / minimumAdded value: +0 - changed
Input schema / properties / eventId / descriptionPrevious value: -"Event identifier."New value: +"[URL path segment] Event identifier." - changed
Input schema / properties / eventLabelVersion / descriptionPrevious value: -"Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color manage"New value: +"[query parameter] Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color manage" - added
Input schema / properties / eventLabelVersion / formatAdded value: +"int32" - added
Input schema / properties / eventLabelVersion / maximumAdded value: +1 - added
Input schema / properties / eventLabelVersion / minimumAdded value: +0 - changed
Input schema / properties / maxAttendees / descriptionPrevious value: -"The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional"New value: +"[query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional" - added
Input schema / properties / maxAttendees / formatAdded value: +"int32" - added
Input schema / properties / maxAttendees / minimumAdded value: +1 - changed
Input schema / properties / sendNotifications / descriptionPrevious value: -"Deprecated. Please use sendUpdates instead. Whether to send notifications about the event update (for example, description changes, etc.). Note that some emails"New value: +"[query parameter] Deprecated. Please use sendUpdates instead. Whether to send notifications about the event update (for example, description changes, etc.). Note that some emails" - changed
Input schema / properties / sendUpdates / descriptionPrevious value: -"Guests who should receive notifications about the event update (for example, title changes, etc.)."New value: +"[query parameter] Guests who should receive notifications about the event update (for example, title changes, etc.). Values: `all` = Notifications are sent to all guests.; `externalOnly` = Notifications are sent to non-Google Calendar guests only.; `none` = No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.." - changed
Input schema / properties / supportsAttachments / descriptionPrevious value: -"Whether API client performing operation supports event attachments. Optional. The default is False."New value: +"[query parameter] Whether API client performing operation supports event attachments. Optional. The default is False." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "anyoneCanAddSelf": { + "type": "boolean" + }, + "attachments": { + "items": { + "properties": { + "fileId": { + "type": "string" + }, + "fileUrl": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendees": { + "items": { + "properties": { + "additionalGuests": { + "type": "integer" + }, + "asyncOperation": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "organizer": { + "type": "boolean" + }, + "resource": { + "type": "boolean" + }, + "responseStatus": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "attendeesOmitted": { + "type": "boolean" + }, + "birthdayProperties": { + "properties": { + "contact": { + "type": "string" + }, + "customTypeName": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "colorId": { + "type": "string" + }, + "conferenceData": { + "properties": { + "conferenceId": { + "type": "string" + }, + "conferenceSolution": { + "properties": { + "iconUri": { + "type": "string" + }, + "key": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "createRequest": { + "properties": { + "conferenceSolutionKey": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + }, + "requestId": { + "type": "string" + }, + "status": { + "properties": { + "statusCode": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "entryPoints": { + "items": { + "properties": { + "accessCode": { + "type": "string" + }, + "entryPointFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entryPointType": { + "type": "string" + }, + "label": { + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "passcode": { + "type": "string" + }, + "password": { + "type": "string" + }, + "pin": { + "type": "string" + }, + "regionCode": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parameters": { + "properties": { + "addOnParameters": { + "properties": { + "parameters": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "signature": { + "type": "string" + } + }, + "type": "object" + }, + "created": { + "type": "string" + }, + "creator": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "description": { + "type": "string" + }, + "end": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "endTimeUnspecified": { + "type": "boolean" + }, + "etag": { + "type": "string" + }, + "eventLabelId": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "extendedProperties": { + "properties": { + "private": { + "type": "object" + }, + "shared": { + "type": "object" + } + }, + "type": "object" + }, + "focusTimeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "chatStatus": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "gadget": { + "properties": { + "display": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "iconLink": { + "type": "string" + }, + "link": { + "type": "string" + }, + "preferences": { + "type": "object" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "guestsCanInviteOthers": { + "type": "boolean" + }, + "guestsCanModify": { + "type": "boolean" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean" + }, + "hangoutLink": { + "type": "string" + }, + "htmlLink": { + "type": "string" + }, + "iCalUID": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "location": { + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "organizer": { + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "id": { + "type": "string" + }, + "self": { + "type": "boolean" + } + }, + "type": "object" + }, + "originalStartTime": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "outOfOfficeProperties": { + "properties": { + "autoDeclineMode": { + "type": "string" + }, + "declineMessage": { + "type": "string" + } + }, + "type": "object" + }, + "privateCopy": { + "type": "boolean" + }, + "recurrence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recurringEventId": { + "type": "string" + }, + "reminders": { + "properties": { + "overrides": { + "items": { + "properties": { + "method": { + "type": "string" + }, + "minutes": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "useDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "sequence": { + "type": "integer" + }, + "source": { + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "start": { + "properties": { + "date": { + "type": "string" + }, + "dateTime": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "transparency": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "workingLocationProperties": { + "properties": { + "customLocation": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "homeOffice": { + "type": "any" + }, + "officeLocation": { + "properties": { + "buildingId": { + "type": "string" + }, + "deskId": { + "type": "string" + }, + "floorId": { + "type": "string" + }, + "floorSectionId": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
calendar.events.watch28 fields changed- changed
Input schema / properties / alwaysIncludeEmail / descriptionPrevious value: -"Deprecated and ignored."New value: +"[query parameter] Deprecated and ignored." - changed
Input schema / properties / calendarId / descriptionPrevious value: -"Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use"New value: +"[URL path segment] Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use" - changed
Input schema / properties / eventTypes / items / descriptionPrevious value: -"Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types."New value: +"[query parameter] Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types. Values: `birthday` = Special all-day events with an annual recurrence.; `default` = Regular events.; `focusTime` = Focus time events.; `fromGmail` = Events from Gmail.; `outOfOffice` = Out of office events.; `workingLocation` = Working location events.." - changed
Input schema / properties / iCalUID / descriptionPrevious value: -"Specifies an event ID in the iCalendar format to be provided in the response. Optional. Use this if you want to search for an event by its iCalendar ID."New value: +"[query parameter] Specifies an event ID in the iCalendar format to be provided in the response. Optional. Use this if you want to search for an event by its iCalendar ID." - changed
Input schema / properties / maxAttendees / descriptionPrevious value: -"The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional"New value: +"[query parameter] The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional" - added
Input schema / properties / maxAttendees / formatAdded value: +"int32" - added
Input schema / properties / maxAttendees / minimumAdded value: +1 - added
Input schema / properties / maxResults / defaultAdded value: +"250" - changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are "New value: +"[query parameter] Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are " - added
Input schema / properties / maxResults / formatAdded value: +"int32" - added
Input schema / properties / maxResults / minimumAdded value: +1 - changed
Input schema / properties / orderBy / descriptionPrevious value: -"The order of the events returned in the result. Optional. The default is an unspecified, stable order."New value: +"[query parameter] The order of the events returned in the result. Optional. The default is an unspecified, stable order. Values: `startTime` = Order by the start date/time (ascending). This is only available when querying single events (i.e. the parameter singleEvents is True); `updated` = Order by last modification time (ascending).." - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Token specifying which result page to return. Optional."New value: +"[query parameter] Token specifying which result page to return. Optional." - changed
Input schema / properties / privateExtendedProperty / items / descriptionPrevious value: -"Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return event"New value: +"[query parameter] Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return event" - changed
Input schema / properties / q / descriptionPrevious value: -"Free text search terms to find events that match these terms in the following fields: - summary - description - location - attendee's displayName - attendee's e"New value: +"[query parameter] Free text search terms to find events that match these terms in the following fields: - summary - description - location - attendee's displayName - attendee's e" - changed
Input schema / properties / sharedExtendedProperty / items / descriptionPrevious value: -"Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events"New value: +"[query parameter] Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events" - changed
Input schema / properties / showDeleted / descriptionPrevious value: -"Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events (but not the underlying recurring even"New value: +"[query parameter] Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events (but not the underlying recurring even" - changed
Input schema / properties / showHiddenInvitations / descriptionPrevious value: -"Whether to include hidden invitations in the result. Optional. The default is False."New value: +"[query parameter] Whether to include hidden invitations in the result. Optional. The default is False." - changed
Input schema / properties / singleEvents / descriptionPrevious value: -"Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring even"New value: +"[query parameter] Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring even" - changed
Input schema / properties / syncToken / descriptionPrevious value: -"Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai"New value: +"[query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai" - changed
Input schema / properties / timeMax / descriptionPrevious value: -"Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandator"New value: +"[query parameter] Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandator" - added
Input schema / properties / timeMax / formatAdded value: +"date-time" - changed
Input schema / properties / timeMin / descriptionPrevious value: -"Lower bound (exclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory ti"New value: +"[query parameter] Lower bound (exclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory ti" - added
Input schema / properties / timeMin / formatAdded value: +"date-time" - changed
Input schema / properties / timeZone / descriptionPrevious value: -"Time zone used in the response. Optional. The default is the time zone of the calendar."New value: +"[query parameter] Time zone used in the response. Optional. The default is the time zone of the calendar." - changed
Input schema / properties / updatedMin / descriptionPrevious value: -"Lower bound for an event's last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included"New value: +"[query parameter] Lower bound for an event's last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included" - added
Input schema / properties / updatedMin / formatAdded value: +"date-time" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.freebusy.query1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "calendars": { + "type": "object" + }, + "groups": { + "type": "object" + }, + "kind": { + "type": "string" + }, + "timeMax": { + "type": "string" + }, + "timeMin": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.settings.get2 fields changed- changed
Input schema / properties / setting / descriptionPrevious value: -"The id of the user setting."New value: +"[URL path segment] The id of the user setting." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.settings.list6 fields changed- changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional."New value: +"[query parameter] Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional." - added
Input schema / properties / maxResults / formatAdded value: +"int32" - added
Input schema / properties / maxResults / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Token specifying which result page to return. Optional."New value: +"[query parameter] Token specifying which result page to return. Optional." - changed
Input schema / properties / syncToken / descriptionPrevious value: -"Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai"New value: +"[query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "items": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + }, + "nextSyncToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
calendar.settings.watch6 fields changed- changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional."New value: +"[query parameter] Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional." - added
Input schema / properties / maxResults / formatAdded value: +"int32" - added
Input schema / properties / maxResults / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Token specifying which result page to return. Optional."New value: +"[query parameter] Token specifying which result page to return. Optional." - changed
Input schema / properties / syncToken / descriptionPrevious value: -"Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai"New value: +"[query parameter] Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contai" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.customEmojis.create1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "properties": { + "fileContent": { + "type": "string" + }, + "filename": { + "type": "string" + } + }, + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.customEmojis.delete3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Resource name of the custom emoji to delete. Format: `customEmojis/{customEmoji}` You can use the emoji name as an alias for `{customEmoji}`. For exam"New value: +"[URL path segment] Required. Resource name of the custom emoji to delete. Format: `customEmojis/{customEmoji}` You can use the emoji name as an alias for `{customEmoji}`. For exam" - added
Input schema / properties / name / patternAdded value: +"^customEmojis/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
chat.customEmojis.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Resource name of the custom emoji. Format: `customEmojis/{customEmoji}` You can use the emoji name as an alias for `{customEmoji}`. For example, `cust"New value: +"[URL path segment] Required. Resource name of the custom emoji. Format: `customEmojis/{customEmoji}` You can use the emoji name as an alias for `{customEmoji}`. For example, `cust" - added
Input schema / properties / name / patternAdded value: +"^customEmojis/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "properties": { + "fileContent": { + "type": "string" + }, + "filename": { + "type": "string" + } + }, + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.customEmojis.list5 fields changed- changed
Input schema / properties / filter / descriptionPrevious value: -"Optional. A query filter. Supports filtering by creator. To filter by creator, you must specify a valid value. Currently only `creator(\"users/me\")` and `NOT cre"New value: +"[query parameter] Optional. A query filter. Supports filtering by creator. To filter by creator, you must specify a valid value. Currently only `creator(\"users/me\")` and `NOT cre" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of custom emojis returned. The service can return fewer custom emojis than this value. If unspecified, the default value is 25. The"New value: +"[query parameter] Optional. The maximum number of custom emojis returned. The service can return fewer custom emojis than this value. If unspecified, the default value is 25. The" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. (If resuming from a previous query.) A page token received from a previous list custom emoji call. Provide this to retrieve the subsequent page. When "New value: +"[query parameter] Optional. (If resuming from a previous query.) A page token received from a previous list custom emoji call. Provide this to retrieve the subsequent page. When " - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "customEmojis": { + "items": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "properties": { + "fileContent": { + "type": "string" + }, + "filename": { + "type": "string" + } + }, + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.media.download3 fields changed- changed
Input schema / properties / resourceName / descriptionPrevious value: -"Name of the media that is being downloaded. See ReadRequest.resource_name."New value: +"[URL path segment] Name of the media that is being downloaded. See ReadRequest.resource_name." - added
Input schema / properties / resourceName / patternAdded value: +"^.*$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "resourceName": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.media.upload3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. Resource name of the Chat space in which the attachment is uploaded. Format \"spaces/{space}\"."New value: +"[URL path segment] Required. Resource name of the Chat space in which the attachment is uploaded. Format \"spaces/{space}\"." - added
Input schema / properties / parent / patternAdded value: +"^spaces/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "attachmentDataRef": { + "properties": { + "attachmentUploadToken": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
chat.spaces.completeImport3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Resource name of the import mode space. Format: `spaces/{space}`"New value: +"[URL path segment] Required. Resource name of the import mode space. Format: `spaces/{space}`" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "space": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "type": "object" + }, + "joinSpaceSetting": { + "type": "object" + }, + "viewSpaceMembershipSetting": { + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
chat.spaces.create2 fields changed- changed
Input schema / properties / requestId / descriptionPrevious value: -"Optional. A unique ID for this request. A random UUID is recommended. Specifying a request ID makes the request idempotent, which ensures that multiple identica"New value: +"[query parameter] Optional. A unique ID for this request. A random UUID is recommended. Specifying a request ID makes the request idempotent, which ensures that multiple identica" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "joinSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "viewSpaceMembershipSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.delete4 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Resource name of the space to delete. Format: `spaces/{space}`"New value: +"[URL path segment] Required. Resource name of the space to delete. Format: `spaces/{space}`" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+$" - changed
Input schema / properties / useAdminAccess / descriptionPrevious value: -"Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit"New value: +"[query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
chat.spaces.findDirectMessage2 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Resource name of the user to find direct message with. Format: `users/{user}`, where `{user}` is either the `id` for the [person](https://developers.g"New value: +"[query parameter] Required. Resource name of the user to find direct message with. Format: `users/{user}`, where `{user}` is either the `id` for the [person](https://developers.g" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "joinSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "viewSpaceMembershipSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.findGroupChats6 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of spaces to return. The service might return fewer than this value. If unspecified, at most 10 spaces are returned. The maximum va"New value: +"[query parameter] Optional. The maximum number of spaces to return. The service might return fewer than this value. If unspecified, at most 10 spaces are returned. The maximum va" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous call to find group chats. Provide this parameter to retrieve the subsequent page. When paginating, all other pa"New value: +"[query parameter] Optional. A page token, received from a previous call to find group chats. Provide this parameter to retrieve the subsequent page. When paginating, all other pa" - changed
Input schema / properties / spaceView / descriptionPrevious value: -"Requested space view type. If unset, defaults to `SPACE_VIEW_RESOURCE_NAME_ONLY`. Requests that specify `SPACE_VIEW_EXPANDED` must include scopes that allow rea"New value: +"[query parameter] Requested space view type. If unset, defaults to `SPACE_VIEW_RESOURCE_NAME_ONLY`. Requests that specify `SPACE_VIEW_EXPANDED` must include scopes that allow rea Values: `SPACE_VIEW_UNSPECIFIED` = The default / unset value.; `SPACE_VIEW_RESOURCE_NAME_ONLY` = Populates only the Space resource name.; `SPACE_VIEW_EXPANDED` = Populates Space resource fields. Note: the `permissionSettings` field will not be populated. Requests that specify SPACE_VIEW_EXPANDED must include scopes that allow reading space data, for example, https://www.googleapis.com/auth/chat.spaces or https://www.googleapis.com/auth/chat.spaces.readonly.." - changed
Input schema / properties / users / items / descriptionPrevious value: -"Optional. Resource names of all human users in group chat with the calling user. Chat apps can't be included in the request. The maximum number of users that ca"New value: +"[query parameter] Optional. Resource names of all human users in group chat with the calling user. Chat apps can't be included in the request. The maximum number of users that ca" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "spaces": { + "items": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "type": "object" + }, + "joinSpaceSetting": { + "type": "object" + }, + "viewSpaceMembershipSetting": { + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
chat.spaces.get4 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Resource name of the space, in the form `spaces/{space}`. Format: `spaces/{space}`"New value: +"[URL path segment] Required. Resource name of the space, in the form `spaces/{space}`. Format: `spaces/{space}`" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+$" - changed
Input schema / properties / useAdminAccess / descriptionPrevious value: -"Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit"New value: +"[query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "joinSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "viewSpaceMembershipSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.list5 fields changed- changed
Input schema / properties / filter / descriptionPrevious value: -"Optional. A query filter. You can filter spaces by the space type ([`space_type`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces#spac"New value: +"[query parameter] Optional. A query filter. You can filter spaces by the space type ([`space_type`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces#spac" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of spaces to return. The service might return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum v"New value: +"[query parameter] Optional. The maximum number of spaces to return. The service might return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum v" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous list spaces call. Provide this parameter to retrieve the subsequent page. When paginating, the filter value sho"New value: +"[query parameter] Optional. A page token, received from a previous list spaces call. Provide this parameter to retrieve the subsequent page. When paginating, the filter value sho" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "spaces": { + "items": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "type": "object" + }, + "joinSpaceSetting": { + "type": "object" + }, + "viewSpaceMembershipSetting": { + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
chat.spaces.members.create4 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The resource name of the space for which to create the membership. Format: spaces/{space}"New value: +"[URL path segment] Required. The resource name of the space for which to create the membership. Format: spaces/{space}" - added
Input schema / properties / parent / patternAdded value: +"^spaces/[^/]+$" - changed
Input schema / properties / useAdminAccess / descriptionPrevious value: -"Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit"New value: +"[query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "member": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.members.delete4 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Resource name of the membership to delete. Chat apps can delete human users' or their own memberships. Chat apps can't delete other apps' memberships."New value: +"[URL path segment] Required. Resource name of the membership to delete. Chat apps can delete human users' or their own memberships. Chat apps can't delete other apps' memberships." - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+/members/[^/]+$" - changed
Input schema / properties / useAdminAccess / descriptionPrevious value: -"Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit"New value: +"[query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "member": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.members.get4 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Resource name of the membership to retrieve. To get the app's own membership [by using user authentication](https://developers.google.com/workspace/ch"New value: +"[URL path segment] Required. Resource name of the membership to retrieve. To get the app's own membership [by using user authentication](https://developers.google.com/workspace/ch" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+/members/[^/]+$" - changed
Input schema / properties / useAdminAccess / descriptionPrevious value: -"Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit"New value: +"[query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "member": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.members.list10 fields changed- changed
Input schema / properties / filter / descriptionPrevious value: -"Optional. A query filter. You can filter memberships by a member's role ([`role`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.memb"New value: +"[query parameter] Optional. A query filter. You can filter memberships by a member's role ([`role`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.memb" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of memberships to return. The service might return fewer than this value. If unspecified, at most 100 memberships are returned. The"New value: +"[query parameter] Optional. The maximum number of memberships to return. The service might return fewer than this value. If unspecified, at most 100 memberships are returned. The" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous call to list memberships. Provide this parameter to retrieve the subsequent page. When paginating, all other pa"New value: +"[query parameter] Optional. A page token, received from a previous call to list memberships. Provide this parameter to retrieve the subsequent page. When paginating, all other pa" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The resource name of the space for which to fetch a membership list. Format: spaces/{space}"New value: +"[URL path segment] Required. The resource name of the space for which to fetch a membership list. Format: spaces/{space}" - added
Input schema / properties / parent / patternAdded value: +"^spaces/[^/]+$" - changed
Input schema / properties / showGroups / descriptionPrevious value: -"Optional. When `true`, also returns memberships associated with a Google Group, in addition to other types of memberships. If a filter is set, Google Group memb"New value: +"[query parameter] Optional. When `true`, also returns memberships associated with a Google Group, in addition to other types of memberships. If a filter is set, Google Group memb" - changed
Input schema / properties / showInvited / descriptionPrevious value: -"Optional. When `true`, also returns memberships associated with invited members, in addition to other types of memberships. If a filter is set, invited membersh"New value: +"[query parameter] Optional. When `true`, also returns memberships associated with invited members, in addition to other types of memberships. If a filter is set, invited membersh" - changed
Input schema / properties / useAdminAccess / descriptionPrevious value: -"Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit"New value: +"[query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "memberships": { + "items": { + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "member": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.members.patch6 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name of the membership, assigned by the server. Format: `spaces/{space}/members/{member}`"New value: +"[URL path segment] Identifier. Resource name of the membership, assigned by the server. Format: `spaces/{space}/members/{member}`" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+/members/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `role`"New value: +"[query parameter] Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `role`" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / useAdminAccess / descriptionPrevious value: -"Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit"New value: +"[query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "member": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.messagePins.create3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The parent space in which to create the message pin. Format: spaces/{space}"New value: +"[URL path segment] Required. The parent space in which to create the message pin. Format: spaces/{space}" - added
Input schema / properties / parent / patternAdded value: +"^spaces/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "message": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.messagePins.delete3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the message pin to remove. Format: spaces/{space}/messagePins/{message_pin}"New value: +"[URL path segment] Required. The resource name of the message pin to remove. Format: spaces/{space}/messagePins/{message_pin}" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+/messagePins/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
chat.spaces.messagePins.list6 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of message pins returned. The service might return fewer messages than this value. The maximum value is 100. If you use a value mor"New value: +"[query parameter] Optional. The maximum number of message pins returned. The service might return fewer messages than this value. The maximum value is 100. If you use a value mor" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token received from a previous list message pins call. Provide this parameter to retrieve the subsequent page. When paginating, all other param"New value: +"[query parameter] Optional. A page token received from a previous list message pins call. Provide this parameter to retrieve the subsequent page. When paginating, all other param" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The parent space which owns the collection of pinned items Format: `spaces/{space}`"New value: +"[URL path segment] Required. The parent space which owns the collection of pinned items Format: `spaces/{space}`" - added
Input schema / properties / parent / patternAdded value: +"^spaces/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "messagePins": { + "items": { + "properties": { + "message": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.attachments.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Resource name of the attachment, in the form `spaces/{space}/messages/{message}/attachments/{attachment}`."New value: +"[URL path segment] Required. Resource name of the attachment, in the form `spaces/{space}/messages/{message}/attachments/{attachment}`." - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+/messages/[^/]+/attachments/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "attachmentDataRef": { + "properties": { + "attachmentUploadToken": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "properties": { + "driveFileId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.create8 fields changed- changed
Input schema / properties / createMessageNotificationOptions.notificationType / descriptionPrevious value: -"The notification type for the message."New value: +"[query parameter] The notification type for the message. Values: `NOTIFICATION_TYPE_NONE` = Default behavior. Notification behavior is similar to when the human user sends the message using the Chat UI: no notification is sent to the human sender.; `NOTIFICATION_TYPE_FORCE_NOTIFY` = Force notify recipients. This bypasses users' space notification settings and [Chat Do Not Disturb settings](https://support.google.com/chat/answer/9093489). This option does not bypass device-level Do Not Disturb settings. Requires [app authentication] (https://developers.google.com/workspace/chat/authenticate-authorize-chat-app).; `NOTIFICATION_TYPE_SILENT` = Do not notify recipients, and do not mark the message as unread. This behaves similarly to the user muting the conversation or enabling [Chat Do Not Disturb](https://support.google.com/chat/answer/9093489). Requires [app authentication] (https://developers.google.com/workspace/chat/authenticate-authorize-chat-app).." - changed
Input schema / properties / messageId / descriptionPrevious value: -"Optional. A custom ID for a message. Lets Chat apps get, update, or delete a message without needing to store the system-assigned ID in the message's resource n"New value: +"[query parameter] Optional. A custom ID for a message. Lets Chat apps get, update, or delete a message without needing to store the system-assigned ID in the message's resource n" - changed
Input schema / properties / messageReplyOption / descriptionPrevious value: -"Optional. Specifies whether a message starts a thread or replies to one. Only supported in named spaces. When [responding to user interactions](https://develope"New value: +"[query parameter] Optional. Specifies whether a message starts a thread or replies to one. Only supported in named spaces. When [responding to user interactions](https://develope Values: `MESSAGE_REPLY_OPTION_UNSPECIFIED` = Default. Starts a new thread. Using this option ignores any thread ID or `thread_key` that's included.; `REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD` = Creates the message as a reply to the thread specified by thread ID or `thread_key`. If it fails, the message starts a new thread instead.; `REPLY_MESSAGE_OR_FAIL` = Creates the message as a reply to the thread specified by thread ID or `thread_key`. If a new `thread_key` is used, a new thread is created. If the message creation fails, a `NOT_FOUND` error is returned instead.." - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The resource name of the space in which to create a message. Format: `spaces/{space}`"New value: +"[URL path segment] Required. The resource name of the space in which to create a message. Format: `spaces/{space}`" - added
Input schema / properties / parent / patternAdded value: +"^spaces/[^/]+$" - changed
Input schema / properties / requestId / descriptionPrevious value: -"Optional. A unique ID for this request. A random UUID is recommended. Specifying a request ID makes the request idempotent, which ensures that multiple identica"New value: +"[query parameter] Optional. A unique ID for this request. A random UUID is recommended. Specifying a request ID makes the request idempotent, which ensures that multiple identica" - changed
Input schema / properties / threadKey / descriptionPrevious value: -"Optional. Deprecated: Use thread.thread_key instead. ID for the thread. Supports up to 4000 characters. To start or add to a thread, create a message and specif"New value: +"[query parameter] Optional. Deprecated: Use thread.thread_key instead. ID for the thread. Supports up to 4000 characters. To start or add to a thread, create a message and specif" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessoryWidgets": { + "items": { + "properties": { + "buttonList": { + "properties": { + "buttons": { + "items": { + "properties": { + "altText": { + "type": "string" + }, + "color": { + "type": "object" + }, + "disabled": { + "type": "boolean" + }, + "icon": { + "type": "object" + }, + "onClick": { + "type": "object" + }, + "text": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLINED", + "FILLED", + "FILLED_TONAL", + "BORDERLESS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "properties": { + "dialogAction": { + "properties": { + "actionStatus": { + "properties": { + "statusCode": { + "enum": [ + "OK", + "CANCELLED", + "UNKNOWN", + "INVALID_ARGUMENT", + "DEADLINE_EXCEEDED", + "NOT_FOUND", + "ALREADY_EXISTS", + "PERMISSION_DENIED", + "UNAUTHENTICATED", + "RESOURCE_EXHAUSTED", + "FAILED_PRECONDITION", + "ABORTED", + "OUT_OF_RANGE", + "UNIMPLEMENTED", + "INTERNAL", + "UNAVAILABLE", + "DATA_LOSS" + ], + "type": "string" + }, + "userFacingMessage": { + "type": "string" + } + }, + "type": "object" + }, + "dialog": { + "properties": { + "body": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "NEW_MESSAGE", + "UPDATE_MESSAGE", + "UPDATE_USER_MESSAGE_CARDS", + "REQUEST_CONFIG", + "DIALOG", + "UPDATE_WIDGET" + ], + "type": "string" + }, + "updatedWidget": { + "properties": { + "suggestions": { + "properties": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "widget": { + "type": "string" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "properties": { + "calendarEventLinkData": { + "properties": { + "calendarId": { + "type": "string" + }, + "eventId": { + "type": "string" + } + }, + "type": "object" + }, + "chatSpaceLinkData": { + "properties": { + "message": { + "type": "string" + }, + "space": { + "type": "string" + }, + "thread": { + "type": "string" + } + }, + "type": "object" + }, + "driveLinkData": { + "properties": { + "driveDataRef": { + "type": "object" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + }, + "meetSpaceLinkData": { + "properties": { + "huddleStatus": { + "enum": [ + "HUDDLE_STATUS_UNSPECIFIED", + "STARTED", + "ENDED", + "MISSED" + ], + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "MEETING", + "HUDDLE" + ], + "type": "string" + } + }, + "type": "object" + }, + "richLinkType": { + "enum": [ + "RICH_LINK_TYPE_UNSPECIFIED", + "DRIVE_FILE", + "CHAT_SPACE", + "GMAIL_MESSAGE", + "MEET_SPACE", + "CALENDAR_EVENT" + ], + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "slashCommand": { + "properties": { + "bot": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "commandId": { + "type": "string" + }, + "commandName": { + "type": "string" + }, + "triggersDialog": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "INVOKE" + ], + "type": "string" + } + }, + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "properties": { + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "MENTION" + ], + "type": "string" + }, + "user": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "properties": { + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "properties": { + "attachmentDataRef": { + "properties": { + "attachmentUploadToken": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "properties": { + "driveFileId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "properties": { + "action": { + "type": "object" + }, + "openLink": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "header": { + "properties": { + "imageStyle": { + "enum": [ + "IMAGE_STYLE_UNSPECIFIED", + "IMAGE", + "AVATAR" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "sections": { + "items": { + "properties": { + "header": { + "type": "string" + }, + "widgets": { + "items": { + "properties": { + "buttons": { + "items": { + "type": "object" + }, + "type": "array" + }, + "image": { + "type": "object" + }, + "keyValue": { + "type": "object" + }, + "textParagraph": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "properties": { + "card": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "displayStyle": { + "enum": [ + "DISPLAY_STYLE_UNSPECIFIED", + "PEEK", + "REPLACE" + ], + "type": "string" + }, + "expressionData": { + "items": { + "properties": { + "conditions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "eventActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "expression": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fixedFooter": { + "properties": { + "primaryButton": { + "type": "object" + }, + "secondaryButton": { + "type": "object" + } + }, + "type": "object" + }, + "header": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "peekCardHeader": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sectionDividerStyle": { + "enum": [ + "DIVIDER_STYLE_UNSPECIFIED", + "SOLID_DIVIDER", + "NO_DIVIDER" + ], + "type": "string" + }, + "sections": { + "items": { + "properties": { + "collapseControl": { + "type": "object" + }, + "collapsible": { + "type": "boolean" + }, + "header": { + "type": "string" + }, + "id": { + "type": "string" + }, + "uncollapsibleWidgetsCount": { + "type": "integer" + }, + "widgets": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "cardId": { + "type": "string" + }, + "ownerUser": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "properties": { + "deletionType": { + "enum": [ + "DELETION_TYPE_UNSPECIFIED", + "CREATOR", + "SPACE_OWNER", + "ADMIN", + "APP_MESSAGE_EXPIRY", + "CREATOR_VIA_APP", + "SPACE_OWNER_VIA_APP", + "SPACE_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "reactionCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "properties": { + "url": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "quotedMessageMetadata": { + "properties": { + "forwardedMetadata": { + "properties": { + "space": { + "type": "string" + }, + "spaceDisplayName": { + "type": "string" + } + }, + "type": "object" + }, + "lastUpdateTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quoteType": { + "enum": [ + "QUOTE_TYPE_UNSPECIFIED", + "REPLY", + "FORWARD" + ], + "type": "string" + }, + "quotedMessageSnapshot": { + "properties": { + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "type": "object" + }, + "slashCommand": { + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachments": { + "items": { + "properties": { + "attachmentDataRef": { + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "formattedText": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "sender": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "properties": { + "commandId": { + "type": "string" + } + }, + "type": "object" + }, + "space": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "type": "object" + }, + "joinSpaceSetting": { + "type": "object" + }, + "viewSpaceMembershipSetting": { + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "properties": { + "name": { + "type": "string" + }, + "threadKey": { + "type": "string" + } + }, + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.delete4 fields changed- changed
Input schema / properties / force / descriptionPrevious value: -"Optional. When `true`, deleting a message also deletes its threaded replies. When `false`, if a message has threaded replies, deletion fails. Only applies when "New value: +"[query parameter] Optional. When `true`, deleting a message also deletes its threaded replies. When `false`, if a message has threaded replies, deletion fails. Only applies when " - changed
Input schema / properties / name / descriptionPrevious value: -"Required. Resource name of the message. Format: `spaces/{space}/messages/{message}` If you've set a custom ID for your message, you can use the value from the `"New value: +"[URL path segment] Required. Resource name of the message. Format: `spaces/{space}/messages/{message}` If you've set a custom ID for your message, you can use the value from the `" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+/messages/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
chat.spaces.messages.get4 fields changed- changed
Input schema / properties / markupSyntax / descriptionPrevious value: -"Optional. Specifies the desired output syntax for the Chat message `formatted_text` field."New value: +"[query parameter] Optional. Specifies the desired output syntax for the Chat message `formatted_text` field. Values: `MARKUP_SYNTAX_UNSPECIFIED` = Represents the unspecified value.; `MARKUP_SYNTAX_CHAT` = Uses Google Chat's markup syntax. See https://developers.google.com/workspace/chat/format-messages#format-texts for more information.; `MARKUP_SYNTAX_MARKDOWN` = Uses Markdown syntax. This syntax is based on the [CommonMark](https://commonmark.org/help/) specification, with additional extensions. See https://developers.google.com/workspace/chat/format-messages#format-texts for more information.." - changed
Input schema / properties / name / descriptionPrevious value: -"Required. Resource name of the message. Format: `spaces/{space}/messages/{message}` If you've set a custom ID for your message, you can use the value from the `"New value: +"[URL path segment] Required. Resource name of the message. Format: `spaces/{space}/messages/{message}` If you've set a custom ID for your message, you can use the value from the `" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+/messages/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessoryWidgets": { + "items": { + "properties": { + "buttonList": { + "properties": { + "buttons": { + "items": { + "properties": { + "altText": { + "type": "string" + }, + "color": { + "type": "object" + }, + "disabled": { + "type": "boolean" + }, + "icon": { + "type": "object" + }, + "onClick": { + "type": "object" + }, + "text": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLINED", + "FILLED", + "FILLED_TONAL", + "BORDERLESS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "properties": { + "dialogAction": { + "properties": { + "actionStatus": { + "properties": { + "statusCode": { + "enum": [ + "OK", + "CANCELLED", + "UNKNOWN", + "INVALID_ARGUMENT", + "DEADLINE_EXCEEDED", + "NOT_FOUND", + "ALREADY_EXISTS", + "PERMISSION_DENIED", + "UNAUTHENTICATED", + "RESOURCE_EXHAUSTED", + "FAILED_PRECONDITION", + "ABORTED", + "OUT_OF_RANGE", + "UNIMPLEMENTED", + "INTERNAL", + "UNAVAILABLE", + "DATA_LOSS" + ], + "type": "string" + }, + "userFacingMessage": { + "type": "string" + } + }, + "type": "object" + }, + "dialog": { + "properties": { + "body": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "NEW_MESSAGE", + "UPDATE_MESSAGE", + "UPDATE_USER_MESSAGE_CARDS", + "REQUEST_CONFIG", + "DIALOG", + "UPDATE_WIDGET" + ], + "type": "string" + }, + "updatedWidget": { + "properties": { + "suggestions": { + "properties": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "widget": { + "type": "string" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "properties": { + "calendarEventLinkData": { + "properties": { + "calendarId": { + "type": "string" + }, + "eventId": { + "type": "string" + } + }, + "type": "object" + }, + "chatSpaceLinkData": { + "properties": { + "message": { + "type": "string" + }, + "space": { + "type": "string" + }, + "thread": { + "type": "string" + } + }, + "type": "object" + }, + "driveLinkData": { + "properties": { + "driveDataRef": { + "type": "object" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + }, + "meetSpaceLinkData": { + "properties": { + "huddleStatus": { + "enum": [ + "HUDDLE_STATUS_UNSPECIFIED", + "STARTED", + "ENDED", + "MISSED" + ], + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "MEETING", + "HUDDLE" + ], + "type": "string" + } + }, + "type": "object" + }, + "richLinkType": { + "enum": [ + "RICH_LINK_TYPE_UNSPECIFIED", + "DRIVE_FILE", + "CHAT_SPACE", + "GMAIL_MESSAGE", + "MEET_SPACE", + "CALENDAR_EVENT" + ], + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "slashCommand": { + "properties": { + "bot": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "commandId": { + "type": "string" + }, + "commandName": { + "type": "string" + }, + "triggersDialog": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "INVOKE" + ], + "type": "string" + } + }, + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "properties": { + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "MENTION" + ], + "type": "string" + }, + "user": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "properties": { + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "properties": { + "attachmentDataRef": { + "properties": { + "attachmentUploadToken": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "properties": { + "driveFileId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "properties": { + "action": { + "type": "object" + }, + "openLink": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "header": { + "properties": { + "imageStyle": { + "enum": [ + "IMAGE_STYLE_UNSPECIFIED", + "IMAGE", + "AVATAR" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "sections": { + "items": { + "properties": { + "header": { + "type": "string" + }, + "widgets": { + "items": { + "properties": { + "buttons": { + "items": { + "type": "object" + }, + "type": "array" + }, + "image": { + "type": "object" + }, + "keyValue": { + "type": "object" + }, + "textParagraph": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "properties": { + "card": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "displayStyle": { + "enum": [ + "DISPLAY_STYLE_UNSPECIFIED", + "PEEK", + "REPLACE" + ], + "type": "string" + }, + "expressionData": { + "items": { + "properties": { + "conditions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "eventActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "expression": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fixedFooter": { + "properties": { + "primaryButton": { + "type": "object" + }, + "secondaryButton": { + "type": "object" + } + }, + "type": "object" + }, + "header": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "peekCardHeader": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sectionDividerStyle": { + "enum": [ + "DIVIDER_STYLE_UNSPECIFIED", + "SOLID_DIVIDER", + "NO_DIVIDER" + ], + "type": "string" + }, + "sections": { + "items": { + "properties": { + "collapseControl": { + "type": "object" + }, + "collapsible": { + "type": "boolean" + }, + "header": { + "type": "string" + }, + "id": { + "type": "string" + }, + "uncollapsibleWidgetsCount": { + "type": "integer" + }, + "widgets": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "cardId": { + "type": "string" + }, + "ownerUser": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "properties": { + "deletionType": { + "enum": [ + "DELETION_TYPE_UNSPECIFIED", + "CREATOR", + "SPACE_OWNER", + "ADMIN", + "APP_MESSAGE_EXPIRY", + "CREATOR_VIA_APP", + "SPACE_OWNER_VIA_APP", + "SPACE_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "reactionCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "properties": { + "url": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "quotedMessageMetadata": { + "properties": { + "forwardedMetadata": { + "properties": { + "space": { + "type": "string" + }, + "spaceDisplayName": { + "type": "string" + } + }, + "type": "object" + }, + "lastUpdateTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quoteType": { + "enum": [ + "QUOTE_TYPE_UNSPECIFIED", + "REPLY", + "FORWARD" + ], + "type": "string" + }, + "quotedMessageSnapshot": { + "properties": { + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "type": "object" + }, + "slashCommand": { + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachments": { + "items": { + "properties": { + "attachmentDataRef": { + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "formattedText": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "sender": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "properties": { + "commandId": { + "type": "string" + } + }, + "type": "object" + }, + "space": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "type": "object" + }, + "joinSpaceSetting": { + "type": "object" + }, + "viewSpaceMembershipSetting": { + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "properties": { + "name": { + "type": "string" + }, + "threadKey": { + "type": "string" + } + }, + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.list10 fields changed- changed
Input schema / properties / filter / descriptionPrevious value: -"Optional. A query filter. You can filter messages by date (`create_time`) and thread (`thread.name`). To filter messages by the date they were created, specify "New value: +"[query parameter] Optional. A query filter. You can filter messages by date (`create_time`) and thread (`thread.name`). To filter messages by the date they were created, specify " - changed
Input schema / properties / markupSyntax / descriptionPrevious value: -"Optional. Specifies the desired output syntax for the Chat message `formatted_text` field."New value: +"[query parameter] Optional. Specifies the desired output syntax for the Chat message `formatted_text` field. Values: `MARKUP_SYNTAX_UNSPECIFIED` = Represents the unspecified value.; `MARKUP_SYNTAX_CHAT` = Uses Google Chat's markup syntax. See https://developers.google.com/workspace/chat/format-messages#format-texts for more information.; `MARKUP_SYNTAX_MARKDOWN` = Uses Markdown syntax. This syntax is based on the [CommonMark](https://commonmark.org/help/) specification, with additional extensions. See https://developers.google.com/workspace/chat/format-messages#format-texts for more information.." - changed
Input schema / properties / orderBy / descriptionPrevious value: -"Optional. How the list of messages is ordered. Specify a value to order by an ordering operation. Valid ordering operation values are as follows: - `ASC` for as"New value: +"[query parameter] Optional. How the list of messages is ordered. Specify a value to order by an ordering operation. Valid ordering operation values are as follows: - `ASC` for as" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of messages returned. The service might return fewer messages than this value. If unspecified, at most 25 are returned. The maximum"New value: +"[query parameter] Optional. The maximum number of messages returned. The service might return fewer messages than this value. If unspecified, at most 25 are returned. The maximum" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token received from a previous list messages call. Provide this parameter to retrieve the subsequent page. When paginating, all other parameter"New value: +"[query parameter] Optional. A page token received from a previous list messages call. Provide this parameter to retrieve the subsequent page. When paginating, all other parameter" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The resource name of the space to list messages from. Format: `spaces/{space}`"New value: +"[URL path segment] Required. The resource name of the space to list messages from. Format: `spaces/{space}`" - added
Input schema / properties / parent / patternAdded value: +"^spaces/[^/]+$" - changed
Input schema / properties / showDeleted / descriptionPrevious value: -"Optional. Whether to include deleted messages. Deleted messages include deleted time and metadata about their deletion, but message content is unavailable."New value: +"[query parameter] Optional. Whether to include deleted messages. Deleted messages include deleted time and metadata about their deletion, but message content is unavailable." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "messages": { + "items": { + "properties": { + "accessoryWidgets": { + "items": { + "properties": { + "buttonList": { + "properties": { + "buttons": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "properties": { + "dialogAction": { + "properties": { + "actionStatus": { + "type": "object" + }, + "dialog": { + "type": "object" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "NEW_MESSAGE", + "UPDATE_MESSAGE", + "UPDATE_USER_MESSAGE_CARDS", + "REQUEST_CONFIG", + "DIALOG", + "UPDATE_WIDGET" + ], + "type": "string" + }, + "updatedWidget": { + "properties": { + "suggestions": { + "type": "object" + }, + "widget": { + "type": "string" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "properties": { + "customEmoji": { + "type": "object" + } + }, + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "properties": { + "calendarEventLinkData": { + "type": "object" + }, + "chatSpaceLinkData": { + "type": "object" + }, + "driveLinkData": { + "type": "object" + }, + "meetSpaceLinkData": { + "type": "object" + }, + "richLinkType": { + "enum": [ + "RICH_LINK_TYPE_UNSPECIFIED", + "DRIVE_FILE", + "CHAT_SPACE", + "GMAIL_MESSAGE", + "MEET_SPACE", + "CALENDAR_EVENT" + ], + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "slashCommand": { + "properties": { + "bot": { + "type": "object" + }, + "commandId": { + "type": "string" + }, + "commandName": { + "type": "string" + }, + "triggersDialog": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "INVOKE" + ], + "type": "string" + } + }, + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "properties": { + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "MENTION" + ], + "type": "string" + }, + "user": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "properties": { + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "properties": { + "attachmentDataRef": { + "properties": { + "attachmentUploadToken": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "properties": { + "driveFileId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "header": { + "properties": { + "imageStyle": { + "enum": [ + "IMAGE_STYLE_UNSPECIFIED", + "IMAGE", + "AVATAR" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "sections": { + "items": { + "properties": { + "header": { + "type": "string" + }, + "widgets": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "properties": { + "card": { + "properties": { + "cardActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "displayStyle": { + "enum": [ + "DISPLAY_STYLE_UNSPECIFIED", + "PEEK", + "REPLACE" + ], + "type": "string" + }, + "expressionData": { + "items": { + "type": "object" + }, + "type": "array" + }, + "fixedFooter": { + "type": "object" + }, + "header": { + "type": "object" + }, + "name": { + "type": "string" + }, + "peekCardHeader": { + "type": "object" + }, + "sectionDividerStyle": { + "enum": [ + "DIVIDER_STYLE_UNSPECIFIED", + "SOLID_DIVIDER", + "NO_DIVIDER" + ], + "type": "string" + }, + "sections": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "cardId": { + "type": "string" + }, + "ownerUser": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "properties": { + "deletionType": { + "enum": [ + "DELETION_TYPE_UNSPECIFIED", + "CREATOR", + "SPACE_OWNER", + "ADMIN", + "APP_MESSAGE_EXPIRY", + "CREATOR_VIA_APP", + "SPACE_OWNER_VIA_APP", + "SPACE_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "reactionCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "properties": { + "url": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "quotedMessageMetadata": { + "properties": { + "forwardedMetadata": { + "properties": { + "space": { + "type": "string" + }, + "spaceDisplayName": { + "type": "string" + } + }, + "type": "object" + }, + "lastUpdateTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quoteType": { + "enum": [ + "QUOTE_TYPE_UNSPECIFIED", + "REPLY", + "FORWARD" + ], + "type": "string" + }, + "quotedMessageSnapshot": { + "properties": { + "annotations": { + "items": { + "type": "object" + }, + "type": "array" + }, + "attachments": { + "items": { + "type": "object" + }, + "type": "array" + }, + "formattedText": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "sender": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "properties": { + "commandId": { + "type": "string" + } + }, + "type": "object" + }, + "space": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "type": "object" + }, + "manageMembersAndGroups": { + "type": "object" + }, + "manageWebhooks": { + "type": "object" + }, + "modifySpaceDetails": { + "type": "object" + }, + "postMessages": { + "type": "object" + }, + "replyMessages": { + "type": "object" + }, + "toggleHistory": { + "type": "object" + }, + "useAtMentionAll": { + "type": "object" + }, + "viewSpaceMembership": { + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "properties": { + "name": { + "type": "string" + }, + "threadKey": { + "type": "string" + } + }, + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.patch6 fields changed- changed
Input schema / properties / allowMissing / descriptionPrevious value: -"Optional. If `true` and the message isn't found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https:"New value: +"[query parameter] Optional. If `true` and the message isn't found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https:" - changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{m"New value: +"[URL path segment] Identifier. Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{m" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+/messages/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `text` - `att"New value: +"[query parameter] Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `text` - `att" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessoryWidgets": { + "items": { + "properties": { + "buttonList": { + "properties": { + "buttons": { + "items": { + "properties": { + "altText": { + "type": "string" + }, + "color": { + "type": "object" + }, + "disabled": { + "type": "boolean" + }, + "icon": { + "type": "object" + }, + "onClick": { + "type": "object" + }, + "text": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLINED", + "FILLED", + "FILLED_TONAL", + "BORDERLESS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "properties": { + "dialogAction": { + "properties": { + "actionStatus": { + "properties": { + "statusCode": { + "enum": [ + "OK", + "CANCELLED", + "UNKNOWN", + "INVALID_ARGUMENT", + "DEADLINE_EXCEEDED", + "NOT_FOUND", + "ALREADY_EXISTS", + "PERMISSION_DENIED", + "UNAUTHENTICATED", + "RESOURCE_EXHAUSTED", + "FAILED_PRECONDITION", + "ABORTED", + "OUT_OF_RANGE", + "UNIMPLEMENTED", + "INTERNAL", + "UNAVAILABLE", + "DATA_LOSS" + ], + "type": "string" + }, + "userFacingMessage": { + "type": "string" + } + }, + "type": "object" + }, + "dialog": { + "properties": { + "body": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "NEW_MESSAGE", + "UPDATE_MESSAGE", + "UPDATE_USER_MESSAGE_CARDS", + "REQUEST_CONFIG", + "DIALOG", + "UPDATE_WIDGET" + ], + "type": "string" + }, + "updatedWidget": { + "properties": { + "suggestions": { + "properties": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "widget": { + "type": "string" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "properties": { + "calendarEventLinkData": { + "properties": { + "calendarId": { + "type": "string" + }, + "eventId": { + "type": "string" + } + }, + "type": "object" + }, + "chatSpaceLinkData": { + "properties": { + "message": { + "type": "string" + }, + "space": { + "type": "string" + }, + "thread": { + "type": "string" + } + }, + "type": "object" + }, + "driveLinkData": { + "properties": { + "driveDataRef": { + "type": "object" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + }, + "meetSpaceLinkData": { + "properties": { + "huddleStatus": { + "enum": [ + "HUDDLE_STATUS_UNSPECIFIED", + "STARTED", + "ENDED", + "MISSED" + ], + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "MEETING", + "HUDDLE" + ], + "type": "string" + } + }, + "type": "object" + }, + "richLinkType": { + "enum": [ + "RICH_LINK_TYPE_UNSPECIFIED", + "DRIVE_FILE", + "CHAT_SPACE", + "GMAIL_MESSAGE", + "MEET_SPACE", + "CALENDAR_EVENT" + ], + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "slashCommand": { + "properties": { + "bot": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "commandId": { + "type": "string" + }, + "commandName": { + "type": "string" + }, + "triggersDialog": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "INVOKE" + ], + "type": "string" + } + }, + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "properties": { + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "MENTION" + ], + "type": "string" + }, + "user": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "properties": { + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "properties": { + "attachmentDataRef": { + "properties": { + "attachmentUploadToken": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "properties": { + "driveFileId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "properties": { + "action": { + "type": "object" + }, + "openLink": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "header": { + "properties": { + "imageStyle": { + "enum": [ + "IMAGE_STYLE_UNSPECIFIED", + "IMAGE", + "AVATAR" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "sections": { + "items": { + "properties": { + "header": { + "type": "string" + }, + "widgets": { + "items": { + "properties": { + "buttons": { + "items": { + "type": "object" + }, + "type": "array" + }, + "image": { + "type": "object" + }, + "keyValue": { + "type": "object" + }, + "textParagraph": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "properties": { + "card": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "displayStyle": { + "enum": [ + "DISPLAY_STYLE_UNSPECIFIED", + "PEEK", + "REPLACE" + ], + "type": "string" + }, + "expressionData": { + "items": { + "properties": { + "conditions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "eventActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "expression": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fixedFooter": { + "properties": { + "primaryButton": { + "type": "object" + }, + "secondaryButton": { + "type": "object" + } + }, + "type": "object" + }, + "header": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "peekCardHeader": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sectionDividerStyle": { + "enum": [ + "DIVIDER_STYLE_UNSPECIFIED", + "SOLID_DIVIDER", + "NO_DIVIDER" + ], + "type": "string" + }, + "sections": { + "items": { + "properties": { + "collapseControl": { + "type": "object" + }, + "collapsible": { + "type": "boolean" + }, + "header": { + "type": "string" + }, + "id": { + "type": "string" + }, + "uncollapsibleWidgetsCount": { + "type": "integer" + }, + "widgets": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "cardId": { + "type": "string" + }, + "ownerUser": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "properties": { + "deletionType": { + "enum": [ + "DELETION_TYPE_UNSPECIFIED", + "CREATOR", + "SPACE_OWNER", + "ADMIN", + "APP_MESSAGE_EXPIRY", + "CREATOR_VIA_APP", + "SPACE_OWNER_VIA_APP", + "SPACE_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "reactionCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "properties": { + "url": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "quotedMessageMetadata": { + "properties": { + "forwardedMetadata": { + "properties": { + "space": { + "type": "string" + }, + "spaceDisplayName": { + "type": "string" + } + }, + "type": "object" + }, + "lastUpdateTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quoteType": { + "enum": [ + "QUOTE_TYPE_UNSPECIFIED", + "REPLY", + "FORWARD" + ], + "type": "string" + }, + "quotedMessageSnapshot": { + "properties": { + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "type": "object" + }, + "slashCommand": { + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachments": { + "items": { + "properties": { + "attachmentDataRef": { + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "formattedText": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "sender": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "properties": { + "commandId": { + "type": "string" + } + }, + "type": "object" + }, + "space": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "type": "object" + }, + "joinSpaceSetting": { + "type": "object" + }, + "viewSpaceMembershipSetting": { + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "properties": { + "name": { + "type": "string" + }, + "threadKey": { + "type": "string" + } + }, + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.reactions.create3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The message where the reaction is created. Format: `spaces/{space}/messages/{message}`"New value: +"[URL path segment] Required. The message where the reaction is created. Format: `spaces/{space}/messages/{message}`" - added
Input schema / properties / parent / patternAdded value: +"^spaces/[^/]+/messages/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "properties": { + "fileContent": { + "type": "string" + }, + "filename": { + "type": "string" + } + }, + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "user": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.reactions.delete3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Name of the reaction to delete. Format: `spaces/{space}/messages/{message}/reactions/{reaction}`"New value: +"[URL path segment] Required. Name of the reaction to delete. Format: `spaces/{space}/messages/{message}/reactions/{reaction}`" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+/messages/[^/]+/reactions/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
chat.spaces.messages.reactions.list7 fields changed- changed
Input schema / properties / filter / descriptionPrevious value: -"Optional. A query filter. You can filter reactions by [emoji](https://developers.google.com/workspace/chat/api/reference/rest/v1/Emoji) (either `emoji.unicode` "New value: +"[query parameter] Optional. A query filter. You can filter reactions by [emoji](https://developers.google.com/workspace/chat/api/reference/rest/v1/Emoji) (either `emoji.unicode` " - changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of reactions returned. The service can return fewer reactions than this value. If unspecified, the default value is 25. The maximum"New value: +"[query parameter] Optional. The maximum number of reactions returned. The service can return fewer reactions than this value. If unspecified, the default value is 25. The maximum" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. (If resuming from a previous query.) A page token received from a previous list reactions call. Provide this to retrieve the subsequent page. When pag"New value: +"[query parameter] Optional. (If resuming from a previous query.) A page token received from a previous list reactions call. Provide this to retrieve the subsequent page. When pag" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The message users reacted to. Format: `spaces/{space}/messages/{message}`"New value: +"[URL path segment] Required. The message users reacted to. Format: `spaces/{space}/messages/{message}`" - added
Input schema / properties / parent / patternAdded value: +"^spaces/[^/]+/messages/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "reactions": { + "items": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "user": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.replaceCards3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the message. Format: `spaces/{space}/messages/{message}`"New value: +"[URL path segment] Required. The resource name of the message. Format: `spaces/{space}/messages/{message}`" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+/messages/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
chat.spaces.messages.search3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The resource name of the space to search within. To search across all spaces the user has access to, set this field to `spaces/-`. Using any other val"New value: +"[URL path segment] Required. The resource name of the space to search within. To search across all spaces the user has access to, set this field to `spaces/-`. Using any other val" - added
Input schema / properties / parent / patternAdded value: +"^spaces/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "results": { + "items": { + "properties": { + "message": { + "properties": { + "accessoryWidgets": { + "items": { + "properties": { + "buttonList": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "properties": { + "dialogAction": { + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "NEW_MESSAGE", + "UPDATE_MESSAGE", + "UPDATE_USER_MESSAGE_CARDS", + "REQUEST_CONFIG", + "DIALOG", + "UPDATE_WIDGET" + ], + "type": "string" + }, + "updatedWidget": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "type": "object" + }, + "slashCommand": { + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "properties": { + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "properties": { + "attachmentDataRef": { + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "properties": { + "cardActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "header": { + "type": "object" + }, + "name": { + "type": "string" + }, + "sections": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "properties": { + "card": { + "type": "object" + }, + "cardId": { + "type": "string" + }, + "ownerUser": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "properties": { + "deletionType": { + "enum": [ + "DELETION_TYPE_UNSPECIFIED", + "CREATOR", + "SPACE_OWNER", + "ADMIN", + "APP_MESSAGE_EXPIRY", + "CREATOR_VIA_APP", + "SPACE_OWNER_VIA_APP", + "SPACE_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "properties": { + "emoji": { + "type": "object" + }, + "reactionCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "properties": { + "url": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "quotedMessageMetadata": { + "properties": { + "forwardedMetadata": { + "type": "object" + }, + "lastUpdateTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quoteType": { + "enum": [ + "QUOTE_TYPE_UNSPECIFIED", + "REPLY", + "FORWARD" + ], + "type": "string" + }, + "quotedMessageSnapshot": { + "type": "object" + } + }, + "type": "object" + }, + "sender": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "properties": { + "commandId": { + "type": "string" + } + }, + "type": "object" + }, + "space": { + "properties": { + "accessSettings": { + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "properties": { + "name": { + "type": "string" + }, + "threadKey": { + "type": "string" + } + }, + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" + }, + "read": { + "type": "boolean" + }, + "spaceMuteSetting": { + "enum": [ + "MUTE_SETTING_UNSPECIFIED", + "UNMUTED", + "MUTED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
chat.spaces.messages.update6 fields changed- changed
Input schema / properties / allowMissing / descriptionPrevious value: -"Optional. If `true` and the message isn't found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https:"New value: +"[query parameter] Optional. If `true` and the message isn't found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https:" - changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{m"New value: +"[URL path segment] Identifier. Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{m" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+/messages/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `text` - `att"New value: +"[query parameter] Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `text` - `att" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessoryWidgets": { + "items": { + "properties": { + "buttonList": { + "properties": { + "buttons": { + "items": { + "properties": { + "altText": { + "type": "string" + }, + "color": { + "type": "object" + }, + "disabled": { + "type": "boolean" + }, + "icon": { + "type": "object" + }, + "onClick": { + "type": "object" + }, + "text": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLINED", + "FILLED", + "FILLED_TONAL", + "BORDERLESS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "properties": { + "dialogAction": { + "properties": { + "actionStatus": { + "properties": { + "statusCode": { + "enum": [ + "OK", + "CANCELLED", + "UNKNOWN", + "INVALID_ARGUMENT", + "DEADLINE_EXCEEDED", + "NOT_FOUND", + "ALREADY_EXISTS", + "PERMISSION_DENIED", + "UNAUTHENTICATED", + "RESOURCE_EXHAUSTED", + "FAILED_PRECONDITION", + "ABORTED", + "OUT_OF_RANGE", + "UNIMPLEMENTED", + "INTERNAL", + "UNAVAILABLE", + "DATA_LOSS" + ], + "type": "string" + }, + "userFacingMessage": { + "type": "string" + } + }, + "type": "object" + }, + "dialog": { + "properties": { + "body": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "NEW_MESSAGE", + "UPDATE_MESSAGE", + "UPDATE_USER_MESSAGE_CARDS", + "REQUEST_CONFIG", + "DIALOG", + "UPDATE_WIDGET" + ], + "type": "string" + }, + "updatedWidget": { + "properties": { + "suggestions": { + "properties": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "widget": { + "type": "string" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "properties": { + "calendarEventLinkData": { + "properties": { + "calendarId": { + "type": "string" + }, + "eventId": { + "type": "string" + } + }, + "type": "object" + }, + "chatSpaceLinkData": { + "properties": { + "message": { + "type": "string" + }, + "space": { + "type": "string" + }, + "thread": { + "type": "string" + } + }, + "type": "object" + }, + "driveLinkData": { + "properties": { + "driveDataRef": { + "type": "object" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + }, + "meetSpaceLinkData": { + "properties": { + "huddleStatus": { + "enum": [ + "HUDDLE_STATUS_UNSPECIFIED", + "STARTED", + "ENDED", + "MISSED" + ], + "type": "string" + }, + "meetingCode": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "MEETING", + "HUDDLE" + ], + "type": "string" + } + }, + "type": "object" + }, + "richLinkType": { + "enum": [ + "RICH_LINK_TYPE_UNSPECIFIED", + "DRIVE_FILE", + "CHAT_SPACE", + "GMAIL_MESSAGE", + "MEET_SPACE", + "CALENDAR_EVENT" + ], + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "slashCommand": { + "properties": { + "bot": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "commandId": { + "type": "string" + }, + "commandName": { + "type": "string" + }, + "triggersDialog": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "INVOKE" + ], + "type": "string" + } + }, + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "properties": { + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ADD", + "MENTION" + ], + "type": "string" + }, + "user": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "properties": { + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "properties": { + "attachmentDataRef": { + "properties": { + "attachmentUploadToken": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "properties": { + "driveFileId": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "properties": { + "action": { + "type": "object" + }, + "openLink": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "header": { + "properties": { + "imageStyle": { + "enum": [ + "IMAGE_STYLE_UNSPECIFIED", + "IMAGE", + "AVATAR" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "sections": { + "items": { + "properties": { + "header": { + "type": "string" + }, + "widgets": { + "items": { + "properties": { + "buttons": { + "items": { + "type": "object" + }, + "type": "array" + }, + "image": { + "type": "object" + }, + "keyValue": { + "type": "object" + }, + "textParagraph": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "properties": { + "card": { + "properties": { + "cardActions": { + "items": { + "properties": { + "actionLabel": { + "type": "string" + }, + "onClick": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "displayStyle": { + "enum": [ + "DISPLAY_STYLE_UNSPECIFIED", + "PEEK", + "REPLACE" + ], + "type": "string" + }, + "expressionData": { + "items": { + "properties": { + "conditions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "eventActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "expression": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fixedFooter": { + "properties": { + "primaryButton": { + "type": "object" + }, + "secondaryButton": { + "type": "object" + } + }, + "type": "object" + }, + "header": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "peekCardHeader": { + "properties": { + "imageAltText": { + "type": "string" + }, + "imageType": { + "enum": [ + "SQUARE", + "CIRCLE" + ], + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sectionDividerStyle": { + "enum": [ + "DIVIDER_STYLE_UNSPECIFIED", + "SOLID_DIVIDER", + "NO_DIVIDER" + ], + "type": "string" + }, + "sections": { + "items": { + "properties": { + "collapseControl": { + "type": "object" + }, + "collapsible": { + "type": "boolean" + }, + "header": { + "type": "string" + }, + "id": { + "type": "string" + }, + "uncollapsibleWidgetsCount": { + "type": "integer" + }, + "widgets": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "cardId": { + "type": "string" + }, + "ownerUser": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "properties": { + "deletionType": { + "enum": [ + "DELETION_TYPE_UNSPECIFIED", + "CREATOR", + "SPACE_OWNER", + "ADMIN", + "APP_MESSAGE_EXPIRY", + "CREATOR_VIA_APP", + "SPACE_OWNER_VIA_APP", + "SPACE_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "reactionCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "properties": { + "url": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "quotedMessageMetadata": { + "properties": { + "forwardedMetadata": { + "properties": { + "space": { + "type": "string" + }, + "spaceDisplayName": { + "type": "string" + } + }, + "type": "object" + }, + "lastUpdateTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quoteType": { + "enum": [ + "QUOTE_TYPE_UNSPECIFIED", + "REPLY", + "FORWARD" + ], + "type": "string" + }, + "quotedMessageSnapshot": { + "properties": { + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "type": "object" + }, + "slashCommand": { + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachments": { + "items": { + "properties": { + "attachmentDataRef": { + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "formattedText": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "sender": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "properties": { + "commandId": { + "type": "string" + } + }, + "type": "object" + }, + "space": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "type": "object" + }, + "joinSpaceSetting": { + "type": "object" + }, + "viewSpaceMembershipSetting": { + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "properties": { + "name": { + "type": "string" + }, + "threadKey": { + "type": "string" + } + }, + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
chat.spaces.patch6 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name of the space. Format: `spaces/{space}` Where `{space}` represents the system-assigned ID for the space. You can obtain the space ID by"New value: +"[URL path segment] Identifier. Resource name of the space. Format: `spaces/{space}` Where `{space}` represents the system-assigned ID for the space. You can obtain the space ID by" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The updated field paths, comma separated if there are multiple. You can update the following fields for a space: `space_details`: Updates the space's "New value: +"[query parameter] Required. The updated field paths, comma separated if there are multiple. You can update the following fields for a space: `space_details`: Updates the space's " - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / useAdminAccess / descriptionPrevious value: -"Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit"New value: +"[query parameter] Optional. When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator wit" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "joinSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "viewSpaceMembershipSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.search6 fields changed- changed
Input schema / properties / orderBy / descriptionPrevious value: -"Optional. How the list of spaces is ordered. Supported attributes to order by are: - `membership_count.joined_direct_human_user_count` — Denotes the count of hu"New value: +"[query parameter] Optional. How the list of spaces is ordered. Supported attributes to order by are: - `membership_count.joined_direct_human_user_count` — Denotes the count of hu" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of spaces to return. The service may return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum value is 1000"New value: +"[query parameter] The maximum number of spaces to return. The service may return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum value is 1000" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"A token, received from the previous search spaces call. Provide this parameter to retrieve the subsequent page. When paginating, all other parameters provided s"New value: +"[query parameter] A token, received from the previous search spaces call. Provide this parameter to retrieve the subsequent page. When paginating, all other parameters provided s" - changed
Input schema / properties / useAdminAccess / descriptionPrevious value: -"When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the [man"New value: +"[query parameter] When `true`, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the [man" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "results": { + "items": { + "properties": { + "space": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "type": "object" + }, + "manageMembersAndGroups": { + "type": "object" + }, + "manageWebhooks": { + "type": "object" + }, + "modifySpaceDetails": { + "type": "object" + }, + "postMessages": { + "type": "object" + }, + "replyMessages": { + "type": "object" + }, + "toggleHistory": { + "type": "object" + }, + "useAtMentionAll": { + "type": "object" + }, + "viewSpaceMembership": { + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "spaces": { + "items": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "type": "object" + }, + "joinSpaceSetting": { + "type": "object" + }, + "viewSpaceMembershipSetting": { + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "totalSize": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
chat.spaces.setup1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "properties": { + "discoverSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "joinSpaceSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "viewSpaceMembershipSetting": { + "properties": { + "principals": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageMembersAndGroups": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "manageWebhooks": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "modifySpaceDetails": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "postMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "replyMessages": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "toggleHistory": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "useAtMentionAll": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + }, + "viewSpaceMembership": { + "properties": { + "assistantManagersAllowed": { + "type": "boolean" + }, + "managersAllowed": { + "type": "boolean" + }, + "membersAllowed": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.spaces.spaceEvents.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the space event. Format: `spaces/{space}/spaceEvents/{spaceEvent}`"New value: +"[URL path segment] Required. The resource name of the space event. Format: `spaces/{space}/spaceEvents/{spaceEvent}`" - added
Input schema / properties / name / patternAdded value: +"^spaces/[^/]+/spaceEvents/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "eventTime": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "membershipBatchCreatedEventData": { + "properties": { + "memberships": { + "items": { + "properties": { + "membership": { + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "type": "object" + }, + "member": { + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "membershipBatchDeletedEventData": { + "properties": { + "memberships": { + "items": { + "properties": { + "membership": { + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "type": "object" + }, + "member": { + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "membershipBatchUpdatedEventData": { + "properties": { + "memberships": { + "items": { + "properties": { + "membership": { + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "type": "object" + }, + "member": { + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "membershipCreatedEventData": { + "properties": { + "membership": { + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "member": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "membershipDeletedEventData": { + "properties": { + "membership": { + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "member": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "membershipUpdatedEventData": { + "properties": { + "membership": { + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "member": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "messageBatchCreatedEventData": { + "properties": { + "messages": { + "items": { + "properties": { + "message": { + "properties": { + "accessoryWidgets": { + "items": { + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "type": "object" + }, + "annotations": { + "items": { + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "type": "object" + }, + "quotedMessageMetadata": { + "type": "object" + }, + "sender": { + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "type": "object" + }, + "space": { + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "messageBatchDeletedEventData": { + "properties": { + "messages": { + "items": { + "properties": { + "message": { + "properties": { + "accessoryWidgets": { + "items": { + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "type": "object" + }, + "annotations": { + "items": { + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "type": "object" + }, + "quotedMessageMetadata": { + "type": "object" + }, + "sender": { + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "type": "object" + }, + "space": { + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "messageBatchUpdatedEventData": { + "properties": { + "messages": { + "items": { + "properties": { + "message": { + "properties": { + "accessoryWidgets": { + "items": { + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "type": "object" + }, + "annotations": { + "items": { + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "type": "object" + }, + "quotedMessageMetadata": { + "type": "object" + }, + "sender": { + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "type": "object" + }, + "space": { + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "messageCreatedEventData": { + "properties": { + "message": { + "properties": { + "accessoryWidgets": { + "items": { + "properties": { + "buttonList": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "properties": { + "dialogAction": { + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "NEW_MESSAGE", + "UPDATE_MESSAGE", + "UPDATE_USER_MESSAGE_CARDS", + "REQUEST_CONFIG", + "DIALOG", + "UPDATE_WIDGET" + ], + "type": "string" + }, + "updatedWidget": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "type": "object" + }, + "slashCommand": { + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "properties": { + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "properties": { + "attachmentDataRef": { + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "properties": { + "cardActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "header": { + "type": "object" + }, + "name": { + "type": "string" + }, + "sections": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "properties": { + "card": { + "type": "object" + }, + "cardId": { + "type": "string" + }, + "ownerUser": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "properties": { + "deletionType": { + "enum": [ + "DELETION_TYPE_UNSPECIFIED", + "CREATOR", + "SPACE_OWNER", + "ADMIN", + "APP_MESSAGE_EXPIRY", + "CREATOR_VIA_APP", + "SPACE_OWNER_VIA_APP", + "SPACE_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "properties": { + "emoji": { + "type": "object" + }, + "reactionCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "properties": { + "url": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "quotedMessageMetadata": { + "properties": { + "forwardedMetadata": { + "type": "object" + }, + "lastUpdateTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quoteType": { + "enum": [ + "QUOTE_TYPE_UNSPECIFIED", + "REPLY", + "FORWARD" + ], + "type": "string" + }, + "quotedMessageSnapshot": { + "type": "object" + } + }, + "type": "object" + }, + "sender": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "properties": { + "commandId": { + "type": "string" + } + }, + "type": "object" + }, + "space": { + "properties": { + "accessSettings": { + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "properties": { + "name": { + "type": "string" + }, + "threadKey": { + "type": "string" + } + }, + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "messageDeletedEventData": { + "properties": { + "message": { + "properties": { + "accessoryWidgets": { + "items": { + "properties": { + "buttonList": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "properties": { + "dialogAction": { + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "NEW_MESSAGE", + "UPDATE_MESSAGE", + "UPDATE_USER_MESSAGE_CARDS", + "REQUEST_CONFIG", + "DIALOG", + "UPDATE_WIDGET" + ], + "type": "string" + }, + "updatedWidget": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "type": "object" + }, + "slashCommand": { + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "properties": { + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "properties": { + "attachmentDataRef": { + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "properties": { + "cardActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "header": { + "type": "object" + }, + "name": { + "type": "string" + }, + "sections": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "properties": { + "card": { + "type": "object" + }, + "cardId": { + "type": "string" + }, + "ownerUser": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "properties": { + "deletionType": { + "enum": [ + "DELETION_TYPE_UNSPECIFIED", + "CREATOR", + "SPACE_OWNER", + "ADMIN", + "APP_MESSAGE_EXPIRY", + "CREATOR_VIA_APP", + "SPACE_OWNER_VIA_APP", + "SPACE_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "properties": { + "emoji": { + "type": "object" + }, + "reactionCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "properties": { + "url": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "quotedMessageMetadata": { + "properties": { + "forwardedMetadata": { + "type": "object" + }, + "lastUpdateTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quoteType": { + "enum": [ + "QUOTE_TYPE_UNSPECIFIED", + "REPLY", + "FORWARD" + ], + "type": "string" + }, + "quotedMessageSnapshot": { + "type": "object" + } + }, + "type": "object" + }, + "sender": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "properties": { + "commandId": { + "type": "string" + } + }, + "type": "object" + }, + "space": { + "properties": { + "accessSettings": { + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "properties": { + "name": { + "type": "string" + }, + "threadKey": { + "type": "string" + } + }, + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "messageUpdatedEventData": { + "properties": { + "message": { + "properties": { + "accessoryWidgets": { + "items": { + "properties": { + "buttonList": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "properties": { + "dialogAction": { + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "NEW_MESSAGE", + "UPDATE_MESSAGE", + "UPDATE_USER_MESSAGE_CARDS", + "REQUEST_CONFIG", + "DIALOG", + "UPDATE_WIDGET" + ], + "type": "string" + }, + "updatedWidget": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "annotations": { + "items": { + "properties": { + "customEmojiMetadata": { + "type": "object" + }, + "length": { + "type": "integer" + }, + "richLinkMetadata": { + "type": "object" + }, + "slashCommand": { + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "type": { + "enum": [ + "ANNOTATION_TYPE_UNSPECIFIED", + "USER_MENTION", + "SLASH_COMMAND", + "RICH_LINK", + "CUSTOM_EMOJI" + ], + "type": "string" + }, + "userMention": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "properties": { + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "properties": { + "attachmentDataRef": { + "type": "object" + }, + "contentName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "downloadUri": { + "type": "string" + }, + "driveDataRef": { + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "DRIVE_FILE", + "UPLOADED_CONTENT" + ], + "type": "string" + }, + "thumbnailUri": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "properties": { + "cardActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "header": { + "type": "object" + }, + "name": { + "type": "string" + }, + "sections": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "properties": { + "card": { + "type": "object" + }, + "cardId": { + "type": "string" + }, + "ownerUser": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "properties": { + "deletionType": { + "enum": [ + "DELETION_TYPE_UNSPECIFIED", + "CREATOR", + "SPACE_OWNER", + "ADMIN", + "APP_MESSAGE_EXPIRY", + "CREATOR_VIA_APP", + "SPACE_OWNER_VIA_APP", + "SPACE_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "properties": { + "emoji": { + "type": "object" + }, + "reactionCount": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "properties": { + "url": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "quotedMessageMetadata": { + "properties": { + "forwardedMetadata": { + "type": "object" + }, + "lastUpdateTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "quoteType": { + "enum": [ + "QUOTE_TYPE_UNSPECIFIED", + "REPLY", + "FORWARD" + ], + "type": "string" + }, + "quotedMessageSnapshot": { + "type": "object" + } + }, + "type": "object" + }, + "sender": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "properties": { + "commandId": { + "type": "string" + } + }, + "type": "object" + }, + "space": { + "properties": { + "accessSettings": { + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "properties": { + "name": { + "type": "string" + }, + "threadKey": { + "type": "string" + } + }, + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "reactionBatchCreatedEventData": { + "properties": { + "reactions": { + "items": { + "properties": { + "reaction": { + "properties": { + "emoji": { + "type": "object" + }, + "name": { + "type": "string" + }, + "user": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "reactionBatchDeletedEventData": { + "properties": { + "reactions": { + "items": { + "properties": { + "reaction": { + "properties": { + "emoji": { + "type": "object" + }, + "name": { + "type": "string" + }, + "user": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "reactionCreatedEventData": { + "properties": { + "reaction": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "user": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "reactionDeletedEventData": { + "properties": { + "reaction": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "user": { + "properties": { + "avatarUrl": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "HUMAN", + "BOT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "spaceBatchUpdatedEventData": { + "properties": { + "spaces": { + "items": { + "properties": { + "space": { + "properties": { + "accessSettings": { + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "spaceUpdatedEventData": { + "properties": { + "space": { + "properties": { + "accessSettings": { + "properties": { + "accessPermissionSettings": { + "type": "object" + }, + "accessState": { + "enum": [ + "ACCESS_STATE_UNSPECIFIED", + "PRIVATE", + "DISCOVERABLE" + ], + "type": "string" + }, + "audience": { + "type": "string" + } + }, + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "properties": { + "joinedDirectHumanUserCount": { + "type": "integer" + }, + "joinedGroupCount": { + "type": "integer" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "properties": { + "manageApps": { + "type": "object" + }, + "manageMembersAndGroups": { + "type": "object" + }, + "manageWebhooks": { + "type": "object" + }, + "modifySpaceDetails": { + "type": "object" + }, + "postMessages": { + "type": "object" + }, + "replyMessages": { + "type": "object" + }, + "toggleHistory": { + "type": "object" + }, + "useAtMentionAll": { + "type": "object" + }, + "viewSpaceMembership": { + "type": "object" + } + }, + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "properties": { + "description": { + "type": "string" + }, + "guidelines": { + "type": "string" + } + }, + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
chat.spaces.spaceEvents.list7 fields changed- changed
Input schema / properties / filter / descriptionPrevious value: -"Required. A query filter. You must specify at least one event type (`event_type`) using the has `:` operator. To filter by multiple event types, use the `OR` op"New value: +"[query parameter] Required. A query filter. You must specify at least one event type (`event_type`) using the has `:` operator. To filter by multiple event types, use the `OR` op" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of space events returned. The service might return fewer than this value. Negative values return an `INVALID_ARGUMENT` error."New value: +"[query parameter] Optional. The maximum number of space events returned. The service might return fewer than this value. Negative values return an `INVALID_ARGUMENT` error." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous list space events call. Provide this to retrieve the subsequent page. When paginating, all other parameters pro"New value: +"[query parameter] Optional. A page token, received from a previous list space events call. Provide this to retrieve the subsequent page. When paginating, all other parameters pro" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. Resource name of the [Google Chat space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces) where the events occurred. Format:"New value: +"[URL path segment] Required. Resource name of the [Google Chat space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces) where the events occurred. Format:" - added
Input schema / properties / parent / patternAdded value: +"^spaces/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "spaceEvents": { + "items": { + "properties": { + "eventTime": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "membershipBatchCreatedEventData": { + "properties": { + "memberships": { + "items": { + "properties": { + "membership": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "membershipBatchDeletedEventData": { + "properties": { + "memberships": { + "items": { + "properties": { + "membership": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "membershipBatchUpdatedEventData": { + "properties": { + "memberships": { + "items": { + "properties": { + "membership": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "membershipCreatedEventData": { + "properties": { + "membership": { + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "type": "object" + }, + "member": { + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "membershipDeletedEventData": { + "properties": { + "membership": { + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "type": "object" + }, + "member": { + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "membershipUpdatedEventData": { + "properties": { + "membership": { + "properties": { + "affiliation": { + "enum": [ + "AFFILIATION_UNSPECIFIED", + "INTERNAL", + "EXTERNAL", + "MANAGED_EXTERNAL" + ], + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "groupMember": { + "type": "object" + }, + "member": { + "type": "object" + }, + "name": { + "type": "string" + }, + "role": { + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER", + "ROLE_ASSISTANT_MANAGER" + ], + "type": "string" + }, + "state": { + "enum": [ + "MEMBERSHIP_STATE_UNSPECIFIED", + "JOINED", + "INVITED", + "NOT_A_MEMBER" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "messageBatchCreatedEventData": { + "properties": { + "messages": { + "items": { + "properties": { + "message": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "messageBatchDeletedEventData": { + "properties": { + "messages": { + "items": { + "properties": { + "message": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "messageBatchUpdatedEventData": { + "properties": { + "messages": { + "items": { + "properties": { + "message": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "messageCreatedEventData": { + "properties": { + "message": { + "properties": { + "accessoryWidgets": { + "items": { + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "type": "object" + }, + "annotations": { + "items": { + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "type": "object" + }, + "quotedMessageMetadata": { + "type": "object" + }, + "sender": { + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "type": "object" + }, + "space": { + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "messageDeletedEventData": { + "properties": { + "message": { + "properties": { + "accessoryWidgets": { + "items": { + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "type": "object" + }, + "annotations": { + "items": { + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "type": "object" + }, + "quotedMessageMetadata": { + "type": "object" + }, + "sender": { + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "type": "object" + }, + "space": { + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "messageUpdatedEventData": { + "properties": { + "message": { + "properties": { + "accessoryWidgets": { + "items": { + "type": "object" + }, + "type": "array" + }, + "actionResponse": { + "type": "object" + }, + "annotations": { + "items": { + "type": "object" + }, + "type": "array" + }, + "argumentText": { + "type": "string" + }, + "attachedGifs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "attachment": { + "items": { + "type": "object" + }, + "type": "array" + }, + "cards": { + "items": { + "type": "object" + }, + "type": "array" + }, + "cardsV2": { + "items": { + "type": "object" + }, + "type": "array" + }, + "clientAssignedMessageId": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleteTime": { + "type": "string" + }, + "deletionMetadata": { + "type": "object" + }, + "emojiReactionSummaries": { + "items": { + "type": "object" + }, + "type": "array" + }, + "fallbackText": { + "type": "string" + }, + "formattedText": { + "type": "string" + }, + "lastUpdateTime": { + "type": "string" + }, + "markupSyntax": { + "enum": [ + "MARKUP_SYNTAX_UNSPECIFIED", + "MARKUP_SYNTAX_CHAT", + "MARKUP_SYNTAX_MARKDOWN" + ], + "type": "string" + }, + "matchedUrl": { + "type": "object" + }, + "name": { + "type": "string" + }, + "privateMessageViewer": { + "type": "object" + }, + "quotedMessageMetadata": { + "type": "object" + }, + "sender": { + "type": "object" + }, + "silent": { + "type": "boolean" + }, + "slashCommand": { + "type": "object" + }, + "space": { + "type": "object" + }, + "text": { + "type": "string" + }, + "thread": { + "type": "object" + }, + "threadReply": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "reactionBatchCreatedEventData": { + "properties": { + "reactions": { + "items": { + "properties": { + "reaction": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "reactionBatchDeletedEventData": { + "properties": { + "reactions": { + "items": { + "properties": { + "reaction": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "reactionCreatedEventData": { + "properties": { + "reaction": { + "properties": { + "emoji": { + "type": "object" + }, + "name": { + "type": "string" + }, + "user": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "reactionDeletedEventData": { + "properties": { + "reaction": { + "properties": { + "emoji": { + "type": "object" + }, + "name": { + "type": "string" + }, + "user": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "spaceBatchUpdatedEventData": { + "properties": { + "spaces": { + "items": { + "properties": { + "space": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "spaceUpdatedEventData": { + "properties": { + "space": { + "properties": { + "accessSettings": { + "type": "object" + }, + "adminInstalled": { + "type": "boolean" + }, + "createTime": { + "type": "string" + }, + "customer": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "externalUserAllowed": { + "type": "boolean" + }, + "importMode": { + "type": "boolean" + }, + "importModeExpireTime": { + "type": "string" + }, + "lastActiveTime": { + "type": "string" + }, + "membershipCount": { + "type": "object" + }, + "name": { + "type": "string" + }, + "permissionSettings": { + "type": "object" + }, + "predefinedPermissionSettings": { + "enum": [ + "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED", + "COLLABORATION_SPACE", + "ANNOUNCEMENT_SPACE" + ], + "type": "string" + }, + "singleUserBotDm": { + "type": "boolean" + }, + "spaceDetails": { + "type": "object" + }, + "spaceHistoryState": { + "enum": [ + "HISTORY_STATE_UNSPECIFIED", + "HISTORY_OFF", + "HISTORY_ON" + ], + "type": "string" + }, + "spaceThreadingState": { + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "type": "string" + }, + "spaceType": { + "enum": [ + "SPACE_TYPE_UNSPECIFIED", + "SPACE", + "GROUP_CHAT", + "DIRECT_MESSAGE" + ], + "type": "string" + }, + "spaceUri": { + "type": "string" + }, + "threaded": { + "type": "boolean" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "ROOM", + "DM" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
chat.users.availability.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the availability to retrieve. Format: users/{user}/availability `{user}` is the id for the Person in the People API or Admin SDK "New value: +"[URL path segment] Required. The resource name of the availability to retrieve. Format: users/{user}/availability `{user}` is the id for the Person in the People API or Admin SDK " - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/availability$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "customStatus": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "expireTime": { + "type": "string" + }, + "text": { + "type": "string" + }, + "ttl": { + "type": "string" + } + }, + "type": "object" + }, + "doNotDisturbMetadata": { + "properties": { + "expirationTime": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "IDLE", + "AWAY", + "DO_NOT_DISTURB" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.availability.markAsActive3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the availability to mark as active. Format: users/{user}/availability `{user}` is the id for the Person in the People API or Admi"New value: +"[URL path segment] Required. The resource name of the availability to mark as active. Format: users/{user}/availability `{user}` is the id for the Person in the People API or Admi" - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/availability$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "customStatus": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "expireTime": { + "type": "string" + }, + "text": { + "type": "string" + }, + "ttl": { + "type": "string" + } + }, + "type": "object" + }, + "doNotDisturbMetadata": { + "properties": { + "expirationTime": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "IDLE", + "AWAY", + "DO_NOT_DISTURB" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.availability.markAsAway3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the availability to mark as away. Format: users/{user}/availability `{user}` is the id for the Person in the People API or Admin "New value: +"[URL path segment] Required. The resource name of the availability to mark as away. Format: users/{user}/availability `{user}` is the id for the Person in the People API or Admin " - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/availability$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "customStatus": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "expireTime": { + "type": "string" + }, + "text": { + "type": "string" + }, + "ttl": { + "type": "string" + } + }, + "type": "object" + }, + "doNotDisturbMetadata": { + "properties": { + "expirationTime": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "IDLE", + "AWAY", + "DO_NOT_DISTURB" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.availability.markAsDoNotDisturb3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the availability to mark as Do Not Disturb. Format: users/{user}/availability `{user}` is the id for the Person in the People API"New value: +"[URL path segment] Required. The resource name of the availability to mark as Do Not Disturb. Format: users/{user}/availability `{user}` is the id for the Person in the People API" - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/availability$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "customStatus": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "expireTime": { + "type": "string" + }, + "text": { + "type": "string" + }, + "ttl": { + "type": "string" + } + }, + "type": "object" + }, + "doNotDisturbMetadata": { + "properties": { + "expirationTime": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "IDLE", + "AWAY", + "DO_NOT_DISTURB" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.availability.patch5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name of the user's availability. Format: `users/{user}/availability` `{user}` is the id for the Person in the People API or Admin SDK direc"New value: +"[URL path segment] Identifier. Resource name of the user's availability. Format: `users/{user}/availability` `{user}` is the id for the Person in the People API or Admin SDK direc" - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/availability$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The list of fields to update. The only field that can be updated is `custom_status`."New value: +"[query parameter] Required. The list of fields to update. The only field that can be updated is `custom_status`." - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "customStatus": { + "properties": { + "emoji": { + "properties": { + "customEmoji": { + "properties": { + "emojiName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "temporaryImageUri": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "unicode": { + "type": "string" + } + }, + "type": "object" + }, + "expireTime": { + "type": "string" + }, + "text": { + "type": "string" + }, + "ttl": { + "type": "string" + } + }, + "type": "object" + }, + "doNotDisturbMetadata": { + "properties": { + "expirationTime": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "IDLE", + "AWAY", + "DO_NOT_DISTURB" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.sections.create3 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The parent resource name where the section is created. Format: `users/{user}`"New value: +"[URL path segment] Required. The parent resource name where the section is created. Format: `users/{user}`" - added
Input schema / properties / parent / patternAdded value: +"^users/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sortOrder": { + "type": "integer" + }, + "type": { + "enum": [ + "SECTION_TYPE_UNSPECIFIED", + "CUSTOM_SECTION", + "DEFAULT_DIRECT_MESSAGES", + "DEFAULT_SPACES", + "DEFAULT_APPS" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.sections.delete3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The name of the section to delete. Format: `users/{user}/sections/{section}`"New value: +"[URL path segment] Required. The name of the section to delete. Format: `users/{user}/sections/{section}`" - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/sections/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
chat.users.sections.items.list7 fields changed- changed
Input schema / properties / filter / descriptionPrevious value: -"Optional. A query filter. Currently only supports filtering by space. For example, `space = spaces/{space}`. Invalid queries are rejected with an `INVALID_ARGUM"New value: +"[query parameter] Optional. A query filter. Currently only supports filtering by space. For example, `space = spaces/{space}`. Invalid queries are rejected with an `INVALID_ARGUM" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of section items to return. The service may return fewer than this value. If unspecified, at most 10 section items will be returned"New value: +"[query parameter] Optional. The maximum number of section items to return. The service may return fewer than this value. If unspecified, at most 10 section items will be returned" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous list section items call. Provide this to retrieve the subsequent page. When paginating, all other parameters pr"New value: +"[query parameter] Optional. A page token, received from a previous list section items call. Provide this to retrieve the subsequent page. When paginating, all other parameters pr" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The parent, which is the section resource name that owns this collection of section items. Only supports listing section items for the calling user. W"New value: +"[URL path segment] Required. The parent, which is the section resource name that owns this collection of section items. Only supports listing section items for the calling user. W" - added
Input schema / properties / parent / patternAdded value: +"^users/[^/]+/sections/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "sectionItems": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "space": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
chat.users.sections.items.move3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the section item to move. Format: `users/{user}/sections/{section}/items/{item}`"New value: +"[URL path segment] Required. The resource name of the section item to move. Format: `users/{user}/sections/{section}/items/{item}`" - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/sections/[^/]+/items/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "sectionItem": { + "properties": { + "name": { + "type": "string" + }, + "space": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
chat.users.sections.list6 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of sections to return. The service may return fewer than this value. If unspecified, at most 10 sections will be returned. The maxi"New value: +"[query parameter] Optional. The maximum number of sections to return. The service may return fewer than this value. If unspecified, at most 10 sections will be returned. The maxi" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous list sections call. Provide this to retrieve the subsequent page. When paginating, all other parameters provide"New value: +"[query parameter] Optional. A page token, received from a previous list sections call. Provide this to retrieve the subsequent page. When paginating, all other parameters provide" - changed
Input schema / properties / parent / descriptionPrevious value: -"Required. The parent, which is the user resource name that owns this collection of sections. Only supports listing sections for the calling user. To refer to th"New value: +"[URL path segment] Required. The parent, which is the user resource name that owns this collection of sections. Only supports listing sections for the calling user. To refer to th" - added
Input schema / properties / parent / patternAdded value: +"^users/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "sections": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sortOrder": { + "type": "integer" + }, + "type": { + "enum": [ + "SECTION_TYPE_UNSPECIFIED", + "CUSTOM_SECTION", + "DEFAULT_DIRECT_MESSAGES", + "DEFAULT_SPACES", + "DEFAULT_APPS" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
chat.users.sections.patch5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. Resource name of the section. For system sections, the section ID is a constant string: - DEFAULT_DIRECT_MESSAGES: `users/{user}/sections/default-di"New value: +"[URL path segment] Identifier. Resource name of the section. For system sections, the section ID is a constant string: - DEFAULT_DIRECT_MESSAGES: `users/{user}/sections/default-di" - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/sections/[^/]+$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The mask to specify which fields to update. Currently supported field paths: - `display_name`"New value: +"[query parameter] Required. The mask to specify which fields to update. Currently supported field paths: - `display_name`" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sortOrder": { + "type": "integer" + }, + "type": { + "enum": [ + "SECTION_TYPE_UNSPECIFIED", + "CUSTOM_SECTION", + "DEFAULT_DIRECT_MESSAGES", + "DEFAULT_SPACES", + "DEFAULT_APPS" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.sections.position3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. The resource name of the section to position. Format: `users/{user}/sections/{section}`"New value: +"[URL path segment] Required. The resource name of the section to position. Format: `users/{user}/sections/{section}`" - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/sections/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "section": { + "properties": { + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sortOrder": { + "type": "integer" + }, + "type": { + "enum": [ + "SECTION_TYPE_UNSPECIFIED", + "CUSTOM_SECTION", + "DEFAULT_DIRECT_MESSAGES", + "DEFAULT_SPACES", + "DEFAULT_APPS" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
chat.users.spaces.getSpaceReadState3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Resource name of the space read state to retrieve. Only supports getting read state for the calling user. To refer to the calling user, set one of the"New value: +"[URL path segment] Required. Resource name of the space read state to retrieve. Only supports getting read state for the calling user. To refer to the calling user, set one of the" - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/spaces/[^/]+/spaceReadState$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "lastReadTime": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.spaces.spaceNotificationSetting.get3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Format: users/{user}/spaces/{space}/spaceNotificationSetting - `users/me/spaces/{space}/spaceNotificationSetting`, OR - `users/user@example.com/spaces"New value: +"[URL path segment] Required. Format: users/{user}/spaces/{space}/spaceNotificationSetting - `users/me/spaces/{space}/spaceNotificationSetting`, OR - `users/user@example.com/spaces" - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/spaces/[^/]+/spaceNotificationSetting$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "muteSetting": { + "enum": [ + "MUTE_SETTING_UNSPECIFIED", + "UNMUTED", + "MUTED" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "notificationSetting": { + "enum": [ + "NOTIFICATION_SETTING_UNSPECIFIED", + "ALL", + "MAIN_CONVERSATIONS", + "FOR_YOU", + "OFF" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.spaces.spaceNotificationSetting.patch5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Identifier. The resource name of the space notification setting. Format: `users/{user}/spaces/{space}/spaceNotificationSetting`."New value: +"[URL path segment] Identifier. The resource name of the space notification setting. Format: `users/{user}/spaces/{space}/spaceNotificationSetting`." - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/spaces/[^/]+/spaceNotificationSetting$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. Supported field paths: - `notification_setting` - `mute_setting`"New value: +"[query parameter] Required. Supported field paths: - `notification_setting` - `mute_setting`" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "muteSetting": { + "enum": [ + "MUTE_SETTING_UNSPECIFIED", + "UNMUTED", + "MUTED" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "notificationSetting": { + "enum": [ + "NOTIFICATION_SETTING_UNSPECIFIED", + "ALL", + "MAIN_CONVERSATIONS", + "FOR_YOU", + "OFF" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.spaces.threads.getThreadReadState3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Required. Resource name of the thread read state to retrieve. Only supports getting read state for the calling user. To refer to the calling user, set one of th"New value: +"[URL path segment] Required. Resource name of the thread read state to retrieve. Only supports getting read state for the calling user. To refer to the calling user, set one of th" - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/spaces/[^/]+/threads/[^/]+/threadReadState$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "lastReadTime": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
chat.users.spaces.updateSpaceReadState5 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Resource name of the space read state. Format: `users/{user}/spaces/{space}/spaceReadState`"New value: +"[URL path segment] Resource name of the space read state. Format: `users/{user}/spaces/{space}/spaceReadState`" - added
Input schema / properties / name / patternAdded value: +"^users/[^/]+/spaces/[^/]+/spaceReadState$" - changed
Input schema / properties / updateMask / descriptionPrevious value: -"Required. The field paths to update. Currently supported field paths: - `last_read_time` When the `last_read_time` is before the latest message create time, the"New value: +"[query parameter] Required. The field paths to update. Currently supported field paths: - `last_read_time` When the `last_read_time` is before the latest message create time, the" - added
Input schema / properties / updateMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "lastReadTime": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" +}
- Changed
docs.documents.batchUpdate2 fields changed- changed
Input schema / properties / documentId / descriptionPrevious value: -"The ID of the document to update."New value: +"[URL path segment] The ID of the document to update." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "commentUpdateState": { + "enum": [ + "COMMENT_UPDATE_STATE_UNSPECIFIED", + "NO_UPDATES_REQUESTED", + "ALL_SAVED", + "ALL_FAILED_UNKNOWN_REASON" + ], + "type": "string" + }, + "documentId": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "addCommentReply": { + "properties": { + "post": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addDocumentTab": { + "properties": { + "tabProperties": { + "properties": { + "iconEmoji": { + "type": "string" + }, + "index": { + "type": "integer" + }, + "nestingLevel": { + "type": "integer" + }, + "parentTabId": { + "type": "string" + }, + "tabId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "createDropdownDefinition": { + "properties": { + "dropdownDefinition": { + "properties": { + "dropdownDefinitionId": { + "type": "string" + }, + "dropdownDefinitionProperties": { + "type": "object" + }, + "suggestedDeletionId": { + "type": "string" + }, + "suggestedDropdownDefinitionPropertiesChanges": { + "type": "object" + }, + "suggestedInsertionId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "createFooter": { + "properties": { + "footerId": { + "type": "string" + } + }, + "type": "object" + }, + "createFootnote": { + "properties": { + "footnoteId": { + "type": "string" + } + }, + "type": "object" + }, + "createHeader": { + "properties": { + "headerId": { + "type": "string" + } + }, + "type": "object" + }, + "createNamedRange": { + "properties": { + "namedRangeId": { + "type": "string" + } + }, + "type": "object" + }, + "insertComment": { + "properties": { + "commentThread": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "insertDropdown": { + "properties": { + "dropdown": { + "properties": { + "dropdownId": { + "type": "string" + }, + "dropdownProperties": { + "type": "object" + }, + "suggestedDeletionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedDropdownPropertiesChanges": { + "type": "object" + }, + "suggestedInsertionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedTextStyleChanges": { + "type": "object" + }, + "textStyle": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "insertInlineImage": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "insertInlineSheetsChart": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "replaceAllText": { + "properties": { + "occurrencesChanged": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "suggestionResponses": { + "items": { + "properties": { + "acceptedSuggestionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "createdSuggestionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deletedSuggestionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rejectedSuggestionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "updatedSummarySuggestionIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "writeControl": { + "properties": { + "requiredRevisionId": { + "type": "string" + }, + "targetRevisionId": { + "type": "string" + }, + "writeMode": { + "enum": [ + "WRITE_MODE_UNSPECIFIED", + "EDIT", + "SUGGEST" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
docs.documents.create1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "body": { + "properties": { + "content": { + "items": { + "properties": { + "endIndex": { + "type": "integer" + }, + "paragraph": { + "properties": { + "bullet": { + "type": "object" + }, + "elements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "paragraphStyle": { + "type": "object" + }, + "positionedObjectIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedBulletChanges": { + "type": "object" + }, + "suggestedParagraphStyleChanges": { + "type": "object" + }, + "suggestedPositionedObjectIds": { + "type": "object" + } + }, + "type": "object" + }, + "sectionBreak": { + "properties": { + "sectionStyle": { + "type": "object" + }, + "suggestedDeletionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "rows": { + "type": "integer" + }, + "suggestedDeletionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableStyle": { + "type": "object" + } + }, + "type": "object" + }, + "tableOfContents": { + "properties": { + "content": { + "items": { + "type": "object" + }, + "type": "array" + }, + "suggestedDeletionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "documentId": { + "type": "string" + }, + "documentStyle": { + "properties": { + "background": { + "properties": { + "color": { + "properties": { + "color": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "defaultFooterId": { + "type": "string" + }, + "defaultHeaderId": { + "type": "string" + }, + "documentFormat": { + "properties": { + "documentMode": { + "enum": [ + "DOCUMENT_MODE_UNSPECIFIED", + "PAGES", + "PAGELESS" + ], + "type": "string" + } + }, + "type": "object" + }, + "evenPageFooterId": { + "type": "string" + }, + "evenPageHeaderId": { + "type": "string" + }, + "firstPageFooterId": { + "type": "string" + }, + "firstPageHeaderId": { + "type": "string" + }, + "flipPageOrientation": { + "type": "boolean" + }, + "marginBottom": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginFooter": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginHeader": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginLeft": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginRight": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginTop": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "pageNumberStart": { + "type": "integer" + }, + "pageSize": { + "properties": { + "height": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "width": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "useCustomHeaderFooterMargins": { + "type": "boolean" + }, + "useEvenPageHeaderFooter": { + "type": "boolean" + }, + "useFirstPageHeaderFooter": { + "type": "boolean" + } + }, + "type": "object" + }, + "footers": { + "type": "object" + }, + "footnotes": { + "type": "object" + }, + "headers": { + "type": "object" + }, + "inlineObjects": { + "type": "object" + }, + "lists": { + "type": "object" + }, + "namedRanges": { + "type": "object" + }, + "namedStyles": { + "properties": { + "styles": { + "items": { + "properties": { + "namedStyleType": { + "enum": [ + "NAMED_STYLE_TYPE_UNSPECIFIED", + "NORMAL_TEXT", + "TITLE", + "SUBTITLE", + "HEADING_1", + "HEADING_2", + "HEADING_3", + "HEADING_4", + "HEADING_5", + "HEADING_6" + ], + "type": "string" + }, + "paragraphStyle": { + "properties": { + "alignment": { + "enum": [ + "ALIGNMENT_UNSPECIFIED", + "START", + "CENTER", + "END", + "JUSTIFIED" + ], + "type": "string" + }, + "avoidWidowAndOrphan": { + "type": "boolean" + }, + "borderBetween": { + "type": "object" + }, + "borderBottom": { + "type": "object" + }, + "borderLeft": { + "type": "object" + }, + "borderRight": { + "type": "object" + }, + "borderTop": { + "type": "object" + }, + "direction": { + "enum": [ + "CONTENT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "type": "string" + }, + "headingId": { + "type": "string" + }, + "indentEnd": { + "type": "object" + }, + "indentFirstLine": { + "type": "object" + }, + "indentStart": { + "type": "object" + }, + "keepLinesTogether": { + "type": "boolean" + }, + "keepWithNext": { + "type": "boolean" + }, + "lineSpacing": { + "type": "number" + }, + "namedStyleType": { + "enum": [ + "NAMED_STYLE_TYPE_UNSPECIFIED", + "NORMAL_TEXT", + "TITLE", + "SUBTITLE", + "HEADING_1", + "HEADING_2", + "HEADING_3", + "HEADING_4", + "HEADING_5", + "HEADING_6" + ], + "type": "string" + }, + "pageBreakBefore": { + "type": "boolean" + }, + "shading": { + "type": "object" + }, + "spaceAbove": { + "type": "object" + }, + "spaceBelow": { + "type": "object" + }, + "spacingMode": { + "enum": [ + "SPACING_MODE_UNSPECIFIED", + "NEVER_COLLAPSE", + "COLLAPSE_LISTS" + ], + "type": "string" + }, + "tabStops": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "textStyle": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "baselineOffset": { + "enum": [ + "BASELINE_OFFSET_UNSPECIFIED", + "NONE", + "SUPERSCRIPT", + "SUBSCRIPT" + ], + "type": "string" + }, + "bold": { + "type": "boolean" + }, + "fontSize": { + "type": "object" + }, + "foregroundColor": { + "type": "object" + }, + "italic": { + "type": "boolean" + }, + "link": { + "type": "object" + }, + "smallCaps": { + "type": "boolean" + }, + "strikethrough": { + "type": "boolean" + }, + "underline": { + "type": "boolean" + }, + "weightedFontFamily": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "positionedObjects": { + "type": "object" + }, + "revisionId": { + "type": "string" + }, + "suggestedDocumentStyleChanges": { + "type": "object" + }, + "suggestedNamedStylesChanges": { + "type": "object" + }, + "suggestions": { + "items": { + "properties": { + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "ACCEPTED", + "REJECTED" + ], + "type": "string" + }, + "suggestionId": { + "type": "string" + }, + "summaryHtml": { + "type": "string" + }, + "summaryText": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "suggestionsViewMode": { + "enum": [ + "DEFAULT_FOR_CURRENT_ACCESS", + "SUGGESTIONS_INLINE", + "PREVIEW_SUGGESTIONS_ACCEPTED", + "PREVIEW_WITHOUT_SUGGESTIONS" + ], + "type": "string" + }, + "tabs": { + "items": { + "properties": { + "childTabs": { + "items": { + "properties": { + "childTabs": { + "items": { + "properties": { + "childTabs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "documentTab": { + "type": "object" + }, + "tabProperties": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "documentTab": { + "properties": { + "body": { + "type": "object" + }, + "commentAnchors": { + "type": "object" + }, + "documentStyle": { + "type": "object" + }, + "dropdownDefinitions": { + "type": "object" + }, + "footers": { + "type": "object" + }, + "footnotes": { + "type": "object" + }, + "headers": { + "type": "object" + }, + "inlineObjects": { + "type": "object" + }, + "lists": { + "type": "object" + }, + "namedRanges": { + "type": "object" + }, + "namedStyles": { + "type": "object" + }, + "positionedObjects": { + "type": "object" + }, + "suggestedDocumentStyleChanges": { + "type": "object" + }, + "suggestedNamedStylesChanges": { + "type": "object" + } + }, + "type": "object" + }, + "tabProperties": { + "properties": { + "iconEmoji": { + "type": "string" + }, + "index": { + "type": "integer" + }, + "nestingLevel": { + "type": "integer" + }, + "parentTabId": { + "type": "string" + }, + "tabId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "documentTab": { + "properties": { + "body": { + "properties": { + "content": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "commentAnchors": { + "type": "object" + }, + "documentStyle": { + "properties": { + "background": { + "type": "object" + }, + "defaultFooterId": { + "type": "string" + }, + "defaultHeaderId": { + "type": "string" + }, + "documentFormat": { + "type": "object" + }, + "evenPageFooterId": { + "type": "string" + }, + "evenPageHeaderId": { + "type": "string" + }, + "firstPageFooterId": { + "type": "string" + }, + "firstPageHeaderId": { + "type": "string" + }, + "flipPageOrientation": { + "type": "boolean" + }, + "marginBottom": { + "type": "object" + }, + "marginFooter": { + "type": "object" + }, + "marginHeader": { + "type": "object" + }, + "marginLeft": { + "type": "object" + }, + "marginRight": { + "type": "object" + }, + "marginTop": { + "type": "object" + }, + "pageNumberStart": { + "type": "integer" + }, + "pageSize": { + "type": "object" + }, + "useCustomHeaderFooterMargins": { + "type": "boolean" + }, + "useEvenPageHeaderFooter": { + "type": "boolean" + }, + "useFirstPageHeaderFooter": { + "type": "boolean" + } + }, + "type": "object" + }, + "dropdownDefinitions": { + "type": "object" + }, + "footers": { + "type": "object" + }, + "footnotes": { + "type": "object" + }, + "headers": { + "type": "object" + }, + "inlineObjects": { + "type": "object" + }, + "lists": { + "type": "object" + }, + "namedRanges": { + "type": "object" + }, + "namedStyles": { + "properties": { + "styles": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "positionedObjects": { + "type": "object" + }, + "suggestedDocumentStyleChanges": { + "type": "object" + }, + "suggestedNamedStylesChanges": { + "type": "object" + } + }, + "type": "object" + }, + "tabProperties": { + "properties": { + "iconEmoji": { + "type": "string" + }, + "index": { + "type": "integer" + }, + "nestingLevel": { + "type": "integer" + }, + "parentTabId": { + "type": "string" + }, + "tabId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "type": "object" +}
- Changed
docs.documents.get5 fields changed- changed
Input schema / properties / commentsViewMode / descriptionPrevious value: -"The comments view mode to apply to the document. This allows viewing the document with comments omitted or included. If one is not specified, COMMENTS_VIEW_MODE"New value: +"[query parameter] The comments view mode to apply to the document. This allows viewing the document with comments omitted or included. If one is not specified, COMMENTS_VIEW_MODE Values: `COMMENTS_VIEW_MODE_UNSPECIFIED` = The CommentsViewMode is unspecified. COMMENTS_VIEW_MODE_OMITTED is applied.; `COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS` = The CommentsViewMode applied to the returned document depends on the user's current access level. If the user only has view access, COMMENTS_VIEW_MODE_OMITTED is applied. Otherwise, COMMENTS_VIEW_MODE_INCLUDED is applied.; `COMMENTS_VIEW_MODE_OMITTED` = The returned document has comments omitted.; `COMMENTS_VIEW_MODE_INCLUDED` = The returned document has comments included. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view comments. When set, suggestions_view_mode must also be set to SUGGESTIONS_INLINE. Returns a 400 bad request error otherwise.." - changed
Input schema / properties / documentId / descriptionPrevious value: -"The ID of the document to retrieve."New value: +"[URL path segment] The ID of the document to retrieve." - changed
Input schema / properties / includeTabsContent / descriptionPrevious value: -"Whether to populate the `Document.tabs` field instead of the text content fields like `body` and `documentStyle` on `Document`. - When `true`: Document content "New value: +"[query parameter] Whether to populate the `Document.tabs` field instead of the text content fields like `body` and `documentStyle` on `Document`. - When `true`: Document content " - changed
Input schema / properties / suggestionsViewMode / descriptionPrevious value: -"The suggestions view mode to apply to the document. This allows viewing the document with all suggestions inline, accepted or rejected. If one is not specified,"New value: +"[query parameter] The suggestions view mode to apply to the document. This allows viewing the document with all suggestions inline, accepted or rejected. If one is not specified, Values: `DEFAULT_FOR_CURRENT_ACCESS` = The SuggestionsViewMode applied to the returned document depends on the user's current access level. If the user only has view access, PREVIEW_WITHOUT_SUGGESTIONS is applied. Otherwise, SUGGESTIONS_INLINE is applied. This is the default suggestions view mode.; `SUGGESTIONS_INLINE` = The returned document has suggestions inline. Suggested changes will be differentiated from base content within the document. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view suggested changes.; `PREVIEW_SUGGESTIONS_ACCEPTED` = The returned document is a preview with all suggested changes accepted. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view suggested changes.; `PREVIEW_WITHOUT_SUGGESTIONS` = The returned document is a preview with all suggested changes rejected if there are any suggestions in the document.." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "body": { + "properties": { + "content": { + "items": { + "properties": { + "endIndex": { + "type": "integer" + }, + "paragraph": { + "properties": { + "bullet": { + "type": "object" + }, + "elements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "paragraphStyle": { + "type": "object" + }, + "positionedObjectIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedBulletChanges": { + "type": "object" + }, + "suggestedParagraphStyleChanges": { + "type": "object" + }, + "suggestedPositionedObjectIds": { + "type": "object" + } + }, + "type": "object" + }, + "sectionBreak": { + "properties": { + "sectionStyle": { + "type": "object" + }, + "suggestedDeletionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "startIndex": { + "type": "integer" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "rows": { + "type": "integer" + }, + "suggestedDeletionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableStyle": { + "type": "object" + } + }, + "type": "object" + }, + "tableOfContents": { + "properties": { + "content": { + "items": { + "type": "object" + }, + "type": "array" + }, + "suggestedDeletionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "documentId": { + "type": "string" + }, + "documentStyle": { + "properties": { + "background": { + "properties": { + "color": { + "properties": { + "color": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "defaultFooterId": { + "type": "string" + }, + "defaultHeaderId": { + "type": "string" + }, + "documentFormat": { + "properties": { + "documentMode": { + "enum": [ + "DOCUMENT_MODE_UNSPECIFIED", + "PAGES", + "PAGELESS" + ], + "type": "string" + } + }, + "type": "object" + }, + "evenPageFooterId": { + "type": "string" + }, + "evenPageHeaderId": { + "type": "string" + }, + "firstPageFooterId": { + "type": "string" + }, + "firstPageHeaderId": { + "type": "string" + }, + "flipPageOrientation": { + "type": "boolean" + }, + "marginBottom": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginFooter": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginHeader": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginLeft": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginRight": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "marginTop": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "pageNumberStart": { + "type": "integer" + }, + "pageSize": { + "properties": { + "height": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "width": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "useCustomHeaderFooterMargins": { + "type": "boolean" + }, + "useEvenPageHeaderFooter": { + "type": "boolean" + }, + "useFirstPageHeaderFooter": { + "type": "boolean" + } + }, + "type": "object" + }, + "footers": { + "type": "object" + }, + "footnotes": { + "type": "object" + }, + "headers": { + "type": "object" + }, + "inlineObjects": { + "type": "object" + }, + "lists": { + "type": "object" + }, + "namedRanges": { + "type": "object" + }, + "namedStyles": { + "properties": { + "styles": { + "items": { + "properties": { + "namedStyleType": { + "enum": [ + "NAMED_STYLE_TYPE_UNSPECIFIED", + "NORMAL_TEXT", + "TITLE", + "SUBTITLE", + "HEADING_1", + "HEADING_2", + "HEADING_3", + "HEADING_4", + "HEADING_5", + "HEADING_6" + ], + "type": "string" + }, + "paragraphStyle": { + "properties": { + "alignment": { + "enum": [ + "ALIGNMENT_UNSPECIFIED", + "START", + "CENTER", + "END", + "JUSTIFIED" + ], + "type": "string" + }, + "avoidWidowAndOrphan": { + "type": "boolean" + }, + "borderBetween": { + "type": "object" + }, + "borderBottom": { + "type": "object" + }, + "borderLeft": { + "type": "object" + }, + "borderRight": { + "type": "object" + }, + "borderTop": { + "type": "object" + }, + "direction": { + "enum": [ + "CONTENT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "type": "string" + }, + "headingId": { + "type": "string" + }, + "indentEnd": { + "type": "object" + }, + "indentFirstLine": { + "type": "object" + }, + "indentStart": { + "type": "object" + }, + "keepLinesTogether": { + "type": "boolean" + }, + "keepWithNext": { + "type": "boolean" + }, + "lineSpacing": { + "type": "number" + }, + "namedStyleType": { + "enum": [ + "NAMED_STYLE_TYPE_UNSPECIFIED", + "NORMAL_TEXT", + "TITLE", + "SUBTITLE", + "HEADING_1", + "HEADING_2", + "HEADING_3", + "HEADING_4", + "HEADING_5", + "HEADING_6" + ], + "type": "string" + }, + "pageBreakBefore": { + "type": "boolean" + }, + "shading": { + "type": "object" + }, + "spaceAbove": { + "type": "object" + }, + "spaceBelow": { + "type": "object" + }, + "spacingMode": { + "enum": [ + "SPACING_MODE_UNSPECIFIED", + "NEVER_COLLAPSE", + "COLLAPSE_LISTS" + ], + "type": "string" + }, + "tabStops": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "textStyle": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "baselineOffset": { + "enum": [ + "BASELINE_OFFSET_UNSPECIFIED", + "NONE", + "SUPERSCRIPT", + "SUBSCRIPT" + ], + "type": "string" + }, + "bold": { + "type": "boolean" + }, + "fontSize": { + "type": "object" + }, + "foregroundColor": { + "type": "object" + }, + "italic": { + "type": "boolean" + }, + "link": { + "type": "object" + }, + "smallCaps": { + "type": "boolean" + }, + "strikethrough": { + "type": "boolean" + }, + "underline": { + "type": "boolean" + }, + "weightedFontFamily": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "positionedObjects": { + "type": "object" + }, + "revisionId": { + "type": "string" + }, + "suggestedDocumentStyleChanges": { + "type": "object" + }, + "suggestedNamedStylesChanges": { + "type": "object" + }, + "suggestions": { + "items": { + "properties": { + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedDocument": { + "type": "boolean" + }, + "fromDocumentComparison": { + "type": "boolean" + }, + "fromImportedDocument": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "suggestionAction": { + "enum": [ + "SUGGESTION_ACTION_TYPE_UNSPECIFIED", + "NO_SUGGESTION_ACTION_CHANGE", + "ACCEPT", + "REJECT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "ACCEPTED", + "REJECTED" + ], + "type": "string" + }, + "suggestionId": { + "type": "string" + }, + "summaryHtml": { + "type": "string" + }, + "summaryText": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "suggestionsViewMode": { + "enum": [ + "DEFAULT_FOR_CURRENT_ACCESS", + "SUGGESTIONS_INLINE", + "PREVIEW_SUGGESTIONS_ACCEPTED", + "PREVIEW_WITHOUT_SUGGESTIONS" + ], + "type": "string" + }, + "tabs": { + "items": { + "properties": { + "childTabs": { + "items": { + "properties": { + "childTabs": { + "items": { + "properties": { + "childTabs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "documentTab": { + "type": "object" + }, + "tabProperties": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "documentTab": { + "properties": { + "body": { + "type": "object" + }, + "commentAnchors": { + "type": "object" + }, + "documentStyle": { + "type": "object" + }, + "dropdownDefinitions": { + "type": "object" + }, + "footers": { + "type": "object" + }, + "footnotes": { + "type": "object" + }, + "headers": { + "type": "object" + }, + "inlineObjects": { + "type": "object" + }, + "lists": { + "type": "object" + }, + "namedRanges": { + "type": "object" + }, + "namedStyles": { + "type": "object" + }, + "positionedObjects": { + "type": "object" + }, + "suggestedDocumentStyleChanges": { + "type": "object" + }, + "suggestedNamedStylesChanges": { + "type": "object" + } + }, + "type": "object" + }, + "tabProperties": { + "properties": { + "iconEmoji": { + "type": "string" + }, + "index": { + "type": "integer" + }, + "nestingLevel": { + "type": "integer" + }, + "parentTabId": { + "type": "string" + }, + "tabId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "documentTab": { + "properties": { + "body": { + "properties": { + "content": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "commentAnchors": { + "type": "object" + }, + "documentStyle": { + "properties": { + "background": { + "type": "object" + }, + "defaultFooterId": { + "type": "string" + }, + "defaultHeaderId": { + "type": "string" + }, + "documentFormat": { + "type": "object" + }, + "evenPageFooterId": { + "type": "string" + }, + "evenPageHeaderId": { + "type": "string" + }, + "firstPageFooterId": { + "type": "string" + }, + "firstPageHeaderId": { + "type": "string" + }, + "flipPageOrientation": { + "type": "boolean" + }, + "marginBottom": { + "type": "object" + }, + "marginFooter": { + "type": "object" + }, + "marginHeader": { + "type": "object" + }, + "marginLeft": { + "type": "object" + }, + "marginRight": { + "type": "object" + }, + "marginTop": { + "type": "object" + }, + "pageNumberStart": { + "type": "integer" + }, + "pageSize": { + "type": "object" + }, + "useCustomHeaderFooterMargins": { + "type": "boolean" + }, + "useEvenPageHeaderFooter": { + "type": "boolean" + }, + "useFirstPageHeaderFooter": { + "type": "boolean" + } + }, + "type": "object" + }, + "dropdownDefinitions": { + "type": "object" + }, + "footers": { + "type": "object" + }, + "footnotes": { + "type": "object" + }, + "headers": { + "type": "object" + }, + "inlineObjects": { + "type": "object" + }, + "lists": { + "type": "object" + }, + "namedRanges": { + "type": "object" + }, + "namedStyles": { + "properties": { + "styles": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "positionedObjects": { + "type": "object" + }, + "suggestedDocumentStyleChanges": { + "type": "object" + }, + "suggestedNamedStylesChanges": { + "type": "object" + } + }, + "type": "object" + }, + "tabProperties": { + "properties": { + "iconEmoji": { + "type": "string" + }, + "index": { + "type": "integer" + }, + "nestingLevel": { + "type": "integer" + }, + "parentTabId": { + "type": "string" + }, + "tabId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.about.get1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "appInstalled": { + "type": "boolean" + }, + "canCreateDrives": { + "type": "boolean" + }, + "canCreateTeamDrives": { + "type": "boolean" + }, + "driveThemes": { + "items": { + "properties": { + "backgroundImageLink": { + "type": "string" + }, + "colorRgb": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "exportFormats": { + "type": "object" + }, + "folderColorPalette": { + "items": { + "type": "string" + }, + "type": "array" + }, + "importFormats": { + "type": "object" + }, + "kind": { + "type": "string" + }, + "maxImportSizes": { + "type": "object" + }, + "maxUploadSize": { + "type": "string" + }, + "storageQuota": { + "properties": { + "limit": { + "type": "string" + }, + "usage": { + "type": "string" + }, + "usageInDrive": { + "type": "string" + }, + "usageInDriveTrash": { + "type": "string" + } + }, + "type": "object" + }, + "teamDriveThemes": { + "items": { + "properties": { + "backgroundImageLink": { + "type": "string" + }, + "colorRgb": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "user": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
drive.accessproposals.get3 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"Required. The ID of the item the request is on."New value: +"[URL path segment] Required. The ID of the item the request is on." - changed
Input schema / properties / proposalId / descriptionPrevious value: -"Required. The ID of the access proposal to resolve."New value: +"[URL path segment] Required. The ID of the access proposal to resolve." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "createTime": { + "type": "string" + }, + "fileId": { + "type": "string" + }, + "proposalId": { + "type": "string" + }, + "recipientEmailAddress": { + "type": "string" + }, + "requestMessage": { + "type": "string" + }, + "requesterEmailAddress": { + "type": "string" + }, + "rolesAndViews": { + "items": { + "properties": { + "role": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
drive.accessproposals.list5 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"Required. The ID of the item the request is on."New value: +"[URL path segment] Required. The ID of the item the request is on." - changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The number of results per page."New value: +"[query parameter] Optional. The number of results per page." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. The continuation token on the list of access requests."New value: +"[query parameter] Optional. The continuation token on the list of access requests." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessProposals": { + "items": { + "properties": { + "createTime": { + "type": "string" + }, + "fileId": { + "type": "string" + }, + "proposalId": { + "type": "string" + }, + "recipientEmailAddress": { + "type": "string" + }, + "requestMessage": { + "type": "string" + }, + "requesterEmailAddress": { + "type": "string" + }, + "rolesAndViews": { + "items": { + "properties": { + "role": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.accessproposals.resolve2 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"Required. The ID of the item the request is on."New value: +"[URL path segment] Required. The ID of the item the request is on." - changed
Input schema / properties / proposalId / descriptionPrevious value: -"Required. The ID of the access proposal to resolve."New value: +"[URL path segment] Required. The ID of the access proposal to resolve."
- Changed
drive.approvals.approve3 fields changed- changed
Input schema / properties / approvalId / descriptionPrevious value: -"Required. The ID of the approval to approve."New value: +"[URL path segment] Required. The ID of the approval to approve." - changed
Input schema / properties / fileId / descriptionPrevious value: -"Required. The ID of the file that the approval is on."New value: +"[URL path segment] Required. The ID of the file that the approval is on." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "approvalId": { + "type": "string" + }, + "completeTime": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "dueTime": { + "type": "string" + }, + "fileContentChangeBehavior": { + "enum": [ + "FILE_CONTENT_CHANGE_BEHAVIOR_UNSPECIFIED", + "RESET_APPROVAL", + "NO_APPROVAL_ACTION" + ], + "type": "string" + }, + "initiator": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "kind": { + "type": "string" + }, + "modifyTime": { + "type": "string" + }, + "reviewerResponses": { + "items": { + "properties": { + "kind": { + "type": "string" + }, + "response": { + "enum": [ + "RESPONSE_UNSPECIFIED", + "NO_RESPONSE", + "APPROVED", + "DECLINED" + ], + "type": "string" + }, + "reviewer": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "IN_PROGRESS", + "APPROVED", + "CANCELLED", + "DECLINED" + ], + "type": "string" + }, + "targetFileId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.approvals.cancel3 fields changed- changed
Input schema / properties / approvalId / descriptionPrevious value: -"Required. The ID of the approval to cancel."New value: +"[URL path segment] Required. The ID of the approval to cancel." - changed
Input schema / properties / fileId / descriptionPrevious value: -"Required. The ID of the file that the approval is on."New value: +"[URL path segment] Required. The ID of the file that the approval is on." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "approvalId": { + "type": "string" + }, + "completeTime": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "dueTime": { + "type": "string" + }, + "fileContentChangeBehavior": { + "enum": [ + "FILE_CONTENT_CHANGE_BEHAVIOR_UNSPECIFIED", + "RESET_APPROVAL", + "NO_APPROVAL_ACTION" + ], + "type": "string" + }, + "initiator": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "kind": { + "type": "string" + }, + "modifyTime": { + "type": "string" + }, + "reviewerResponses": { + "items": { + "properties": { + "kind": { + "type": "string" + }, + "response": { + "enum": [ + "RESPONSE_UNSPECIFIED", + "NO_RESPONSE", + "APPROVED", + "DECLINED" + ], + "type": "string" + }, + "reviewer": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "IN_PROGRESS", + "APPROVED", + "CANCELLED", + "DECLINED" + ], + "type": "string" + }, + "targetFileId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.approvals.comment3 fields changed- changed
Input schema / properties / approvalId / descriptionPrevious value: -"Required. The ID of the approval to comment on."New value: +"[URL path segment] Required. The ID of the approval to comment on." - changed
Input schema / properties / fileId / descriptionPrevious value: -"Required. The ID of the file that the approval is on."New value: +"[URL path segment] Required. The ID of the file that the approval is on." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "approvalId": { + "type": "string" + }, + "completeTime": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "dueTime": { + "type": "string" + }, + "fileContentChangeBehavior": { + "enum": [ + "FILE_CONTENT_CHANGE_BEHAVIOR_UNSPECIFIED", + "RESET_APPROVAL", + "NO_APPROVAL_ACTION" + ], + "type": "string" + }, + "initiator": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "kind": { + "type": "string" + }, + "modifyTime": { + "type": "string" + }, + "reviewerResponses": { + "items": { + "properties": { + "kind": { + "type": "string" + }, + "response": { + "enum": [ + "RESPONSE_UNSPECIFIED", + "NO_RESPONSE", + "APPROVED", + "DECLINED" + ], + "type": "string" + }, + "reviewer": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "IN_PROGRESS", + "APPROVED", + "CANCELLED", + "DECLINED" + ], + "type": "string" + }, + "targetFileId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.approvals.decline3 fields changed- changed
Input schema / properties / approvalId / descriptionPrevious value: -"Required. The ID of the approval to decline."New value: +"[URL path segment] Required. The ID of the approval to decline." - changed
Input schema / properties / fileId / descriptionPrevious value: -"Required. The ID of the file that the approval is on."New value: +"[URL path segment] Required. The ID of the file that the approval is on." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "approvalId": { + "type": "string" + }, + "completeTime": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "dueTime": { + "type": "string" + }, + "fileContentChangeBehavior": { + "enum": [ + "FILE_CONTENT_CHANGE_BEHAVIOR_UNSPECIFIED", + "RESET_APPROVAL", + "NO_APPROVAL_ACTION" + ], + "type": "string" + }, + "initiator": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "kind": { + "type": "string" + }, + "modifyTime": { + "type": "string" + }, + "reviewerResponses": { + "items": { + "properties": { + "kind": { + "type": "string" + }, + "response": { + "enum": [ + "RESPONSE_UNSPECIFIED", + "NO_RESPONSE", + "APPROVED", + "DECLINED" + ], + "type": "string" + }, + "reviewer": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "IN_PROGRESS", + "APPROVED", + "CANCELLED", + "DECLINED" + ], + "type": "string" + }, + "targetFileId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.approvals.get3 fields changed- changed
Input schema / properties / approvalId / descriptionPrevious value: -"Required. The ID of the approval."New value: +"[URL path segment] Required. The ID of the approval." - changed
Input schema / properties / fileId / descriptionPrevious value: -"Required. The ID of the file that the approval is on."New value: +"[URL path segment] Required. The ID of the file that the approval is on." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "approvalId": { + "type": "string" + }, + "completeTime": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "dueTime": { + "type": "string" + }, + "fileContentChangeBehavior": { + "enum": [ + "FILE_CONTENT_CHANGE_BEHAVIOR_UNSPECIFIED", + "RESET_APPROVAL", + "NO_APPROVAL_ACTION" + ], + "type": "string" + }, + "initiator": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "kind": { + "type": "string" + }, + "modifyTime": { + "type": "string" + }, + "reviewerResponses": { + "items": { + "properties": { + "kind": { + "type": "string" + }, + "response": { + "enum": [ + "RESPONSE_UNSPECIFIED", + "NO_RESPONSE", + "APPROVED", + "DECLINED" + ], + "type": "string" + }, + "reviewer": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "IN_PROGRESS", + "APPROVED", + "CANCELLED", + "DECLINED" + ], + "type": "string" + }, + "targetFileId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.approvals.list5 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"Required. The ID of the file that the approval is on."New value: +"[URL path segment] Required. The ID of the file that the approval is on." - changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of approvals to return. When not set, at most 100 approvals are returned."New value: +"[query parameter] The maximum number of approvals to return. When not set, at most 100 approvals are returned." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response."New value: +"[query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "items": { + "items": { + "properties": { + "approvalId": { + "type": "string" + }, + "completeTime": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "dueTime": { + "type": "string" + }, + "fileContentChangeBehavior": { + "enum": [ + "FILE_CONTENT_CHANGE_BEHAVIOR_UNSPECIFIED", + "RESET_APPROVAL", + "NO_APPROVAL_ACTION" + ], + "type": "string" + }, + "initiator": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "kind": { + "type": "string" + }, + "modifyTime": { + "type": "string" + }, + "reviewerResponses": { + "items": { + "properties": { + "kind": { + "type": "string" + }, + "response": { + "enum": [ + "RESPONSE_UNSPECIFIED", + "NO_RESPONSE", + "APPROVED", + "DECLINED" + ], + "type": "string" + }, + "reviewer": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "IN_PROGRESS", + "APPROVED", + "CANCELLED", + "DECLINED" + ], + "type": "string" + }, + "targetFileId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.approvals.reassign3 fields changed- changed
Input schema / properties / approvalId / descriptionPrevious value: -"Required. The ID of the approval to reassign."New value: +"[URL path segment] Required. The ID of the approval to reassign." - changed
Input schema / properties / fileId / descriptionPrevious value: -"Required. The ID of the file that the approval is on."New value: +"[URL path segment] Required. The ID of the file that the approval is on." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "approvalId": { + "type": "string" + }, + "completeTime": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "dueTime": { + "type": "string" + }, + "fileContentChangeBehavior": { + "enum": [ + "FILE_CONTENT_CHANGE_BEHAVIOR_UNSPECIFIED", + "RESET_APPROVAL", + "NO_APPROVAL_ACTION" + ], + "type": "string" + }, + "initiator": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "kind": { + "type": "string" + }, + "modifyTime": { + "type": "string" + }, + "reviewerResponses": { + "items": { + "properties": { + "kind": { + "type": "string" + }, + "response": { + "enum": [ + "RESPONSE_UNSPECIFIED", + "NO_RESPONSE", + "APPROVED", + "DECLINED" + ], + "type": "string" + }, + "reviewer": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "IN_PROGRESS", + "APPROVED", + "CANCELLED", + "DECLINED" + ], + "type": "string" + }, + "targetFileId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.approvals.start2 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"Required. The ID of the file that the approval is created on."New value: +"[URL path segment] Required. The ID of the file that the approval is created on." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "approvalId": { + "type": "string" + }, + "completeTime": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "dueTime": { + "type": "string" + }, + "fileContentChangeBehavior": { + "enum": [ + "FILE_CONTENT_CHANGE_BEHAVIOR_UNSPECIFIED", + "RESET_APPROVAL", + "NO_APPROVAL_ACTION" + ], + "type": "string" + }, + "initiator": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "kind": { + "type": "string" + }, + "modifyTime": { + "type": "string" + }, + "reviewerResponses": { + "items": { + "properties": { + "kind": { + "type": "string" + }, + "response": { + "enum": [ + "RESPONSE_UNSPECIFIED", + "NO_RESPONSE", + "APPROVED", + "DECLINED" + ], + "type": "string" + }, + "reviewer": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "IN_PROGRESS", + "APPROVED", + "CANCELLED", + "DECLINED" + ], + "type": "string" + }, + "targetFileId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.apps.get2 fields changed- changed
Input schema / properties / appId / descriptionPrevious value: -"The ID of the app."New value: +"[URL path segment] The ID of the app." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "authorized": { + "type": "boolean" + }, + "createInFolderTemplate": { + "type": "string" + }, + "createUrl": { + "type": "string" + }, + "hasDriveWideScope": { + "type": "boolean" + }, + "icons": { + "items": { + "properties": { + "category": { + "type": "string" + }, + "iconUrl": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "installed": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "longDescription": { + "type": "string" + }, + "name": { + "type": "string" + }, + "objectType": { + "type": "string" + }, + "openUrlTemplate": { + "type": "string" + }, + "primaryFileExtensions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "primaryMimeTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "productId": { + "type": "string" + }, + "productUrl": { + "type": "string" + }, + "secondaryFileExtensions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secondaryMimeTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "shortDescription": { + "type": "string" + }, + "supportsCreate": { + "type": "boolean" + }, + "supportsImport": { + "type": "boolean" + }, + "supportsMultiOpen": { + "type": "boolean" + }, + "supportsOfflineCreate": { + "type": "boolean" + }, + "useByDefault": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
drive.apps.list6 fields changed- added
Input schema / properties / appFilterExtensions / defaultAdded value: +"" - changed
Input schema / properties / appFilterExtensions / descriptionPrevious value: -"A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given file extension"New value: +"[query parameter] A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given file extension" - added
Input schema / properties / appFilterMimeTypes / defaultAdded value: +"" - changed
Input schema / properties / appFilterMimeTypes / descriptionPrevious value: -"A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given MIME types wil"New value: +"[query parameter] A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given MIME types wil" - changed
Input schema / properties / languageCode / descriptionPrevious value: -"A language or locale code, as defined by BCP 47, with some extensions from Unicode's LDML format (http://www.unicode.org/reports/tr35/)."New value: +"[query parameter] A language or locale code, as defined by BCP 47, with some extensions from Unicode's LDML format (http://www.unicode.org/reports/tr35/)." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "defaultAppIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "items": { + "items": { + "properties": { + "authorized": { + "type": "boolean" + }, + "createInFolderTemplate": { + "type": "string" + }, + "createUrl": { + "type": "string" + }, + "hasDriveWideScope": { + "type": "boolean" + }, + "icons": { + "items": { + "properties": { + "category": { + "type": "string" + }, + "iconUrl": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "installed": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "longDescription": { + "type": "string" + }, + "name": { + "type": "string" + }, + "objectType": { + "type": "string" + }, + "openUrlTemplate": { + "type": "string" + }, + "primaryFileExtensions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "primaryMimeTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "productId": { + "type": "string" + }, + "productUrl": { + "type": "string" + }, + "secondaryFileExtensions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "secondaryMimeTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "shortDescription": { + "type": "string" + }, + "supportsCreate": { + "type": "boolean" + }, + "supportsImport": { + "type": "boolean" + }, + "supportsMultiOpen": { + "type": "boolean" + }, + "supportsOfflineCreate": { + "type": "boolean" + }, + "useByDefault": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "selfLink": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.changes.getStartPageToken7 fields changed- changed
Input schema / properties / driveId / descriptionPrevious value: -"The ID of the shared drive for which the starting pageToken for listing future changes from that shared drive will be returned."New value: +"[query parameter] The ID of the shared drive for which the starting pageToken for listing future changes from that shared drive will be returned." - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - changed
Input schema / properties / teamDriveId / descriptionPrevious value: -"Deprecated: Use `driveId` instead."New value: +"[query parameter] Deprecated: Use `driveId` instead." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "kind": { + "type": "string" + }, + "startPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.changes.list27 fields changed- changed
Input schema / properties / driveId / descriptionPrevious value: -"The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change I"New value: +"[query parameter] The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change I" - added
Input schema / properties / includeCorpusRemovals / defaultAdded value: +"false" - changed
Input schema / properties / includeCorpusRemovals / descriptionPrevious value: -"Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the l"New value: +"[query parameter] Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the l" - added
Input schema / properties / includeItemsFromAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / includeItemsFromAllDrives / descriptionPrevious value: -"Whether both My Drive and shared drive items should be included in results."New value: +"[query parameter] Whether both My Drive and shared drive items should be included in results." - changed
Input schema / properties / includeLabels / descriptionPrevious value: -"A comma-separated list of IDs of labels to include in the `labelInfo` part of the response."New value: +"[query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response." - changed
Input schema / properties / includePermissionsForView / descriptionPrevious value: -"Specifies which additional view's permissions to include in the response. Only 'published' is supported."New value: +"[query parameter] Specifies which additional view's permissions to include in the response. Only 'published' is supported." - added
Input schema / properties / includeRemoved / defaultAdded value: +"true" - changed
Input schema / properties / includeRemoved / descriptionPrevious value: -"Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access."New value: +"[query parameter] Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access." - added
Input schema / properties / includeTeamDriveItems / defaultAdded value: +"false" - changed
Input schema / properties / includeTeamDriveItems / descriptionPrevious value: -"Deprecated: Use `includeItemsFromAllDrives` instead."New value: +"[query parameter] Deprecated: Use `includeItemsFromAllDrives` instead." - added
Input schema / properties / pageSize / defaultAdded value: +"100" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of changes to return. The service may return fewer than this value. If unspecified, at most 100 changes will be returned. The maximum value i"New value: +"[query parameter] The maximum number of changes to return. The service may return fewer than this value. If unspecified, at most 100 changes will be returned. The maximum value i" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - added
Input schema / properties / pageSize / maximumAdded value: +1000 - added
Input schema / properties / pageSize / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the respo"New value: +"[query parameter] The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the respo" - added
Input schema / properties / restrictToMyDrive / defaultAdded value: +"false" - changed
Input schema / properties / restrictToMyDrive / descriptionPrevious value: -"Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared fil"New value: +"[query parameter] Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared fil" - added
Input schema / properties / spaces / defaultAdded value: +"drive" - changed
Input schema / properties / spaces / descriptionPrevious value: -"A comma-separated list of spaces to query within the corpora. Supported values are 'drive' and 'appDataFolder'."New value: +"[query parameter] A comma-separated list of spaces to query within the corpora. Supported values are 'drive' and 'appDataFolder'." - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - changed
Input schema / properties / teamDriveId / descriptionPrevious value: -"Deprecated: Use `driveId` instead."New value: +"[query parameter] Deprecated: Use `driveId` instead." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "changes": { + "items": { + "properties": { + "changeType": { + "type": "string" + }, + "drive": { + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeDriveBackground": { + "type": "boolean" + }, + "canChangeDriveMembersOnlyRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameDrive": { + "type": "boolean" + }, + "canResetDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "driveMembersOnly": { + "type": "boolean" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" + }, + "driveId": { + "type": "string" + }, + "file": { + "properties": { + "appProperties": { + "type": "object" + }, + "capabilities": { + "properties": { + "canAcceptOwnership": { + "type": "boolean" + }, + "canAccessViaGenAi": { + "type": "boolean" + }, + "canAddChildren": { + "type": "boolean" + }, + "canAddFolderFromAnotherDrive": { + "type": "boolean" + }, + "canAddMyDriveParent": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermission": { + "type": "boolean" + }, + "canChangeItemDownloadRestriction": { + "type": "boolean" + }, + "canChangeSecurityUpdateEnabled": { + "type": "boolean" + }, + "canChangeViewersCanCopyContent": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDelete": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDisableInheritedPermissions": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canEnableInheritedPermissions": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canModifyContent": { + "type": "boolean" + }, + "canModifyContentRestriction": { + "type": "boolean" + }, + "canModifyEditorContentRestriction": { + "type": "boolean" + }, + "canModifyLabels": { + "type": "boolean" + }, + "canModifyOwnerContentRestriction": { + "type": "boolean" + }, + "canMoveChildrenOutOfDrive": { + "type": "boolean" + }, + "canMoveChildrenOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinTeamDrive": { + "type": "boolean" + }, + "canMoveItemIntoTeamDrive": { + "type": "boolean" + }, + "canMoveItemOutOfDrive": { + "type": "boolean" + }, + "canMoveItemOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveItemWithinDrive": { + "type": "boolean" + }, + "canMoveItemWithinTeamDrive": { + "type": "boolean" + }, + "canMoveTeamDriveItem": { + "type": "boolean" + }, + "canReadDrive": { + "type": "boolean" + }, + "canReadLabels": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canReadTeamDrive": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRemoveContentRestriction": { + "type": "boolean" + }, + "canRemoveMyDriveParent": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canStartApproval": { + "type": "boolean" + }, + "canTrash": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + }, + "canUntrash": { + "type": "boolean" + } + }, + "type": "object" + }, + "clientEncryptionDetails": { + "properties": { + "decryptionMetadata": { + "type": "object" + }, + "encryptionState": { + "type": "string" + } + }, + "type": "object" + }, + "contentHints": { + "properties": { + "indexableText": { + "type": "string" + }, + "thumbnail": { + "properties": { + "image": { + "type": "string" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "contentRestrictions": { + "items": { + "properties": { + "ownerRestricted": { + "type": "boolean" + }, + "readOnly": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "restrictingUser": { + "type": "object" + }, + "restrictionTime": { + "type": "string" + }, + "systemRestricted": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "createdTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "downloadRestrictions": { + "properties": { + "effectiveDownloadRestrictionWithContext": { + "type": "object" + }, + "itemDownloadRestriction": { + "type": "object" + } + }, + "type": "object" + }, + "driveId": { + "type": "string" + }, + "explicitlyTrashed": { + "type": "boolean" + }, + "exportLinks": { + "type": "object" + }, + "fileExtension": { + "type": "string" + }, + "folderColorRgb": { + "type": "string" + }, + "fullFileExtension": { + "type": "string" + }, + "hasAugmentedPermissions": { + "type": "boolean" + }, + "hasThumbnail": { + "type": "boolean" + }, + "headRevisionId": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageMediaMetadata": { + "properties": { + "aperture": { + "type": "number" + }, + "cameraMake": { + "type": "string" + }, + "cameraModel": { + "type": "string" + }, + "colorSpace": { + "type": "string" + }, + "exposureBias": { + "type": "number" + }, + "exposureMode": { + "type": "string" + }, + "exposureTime": { + "type": "number" + }, + "flashUsed": { + "type": "boolean" + }, + "focalLength": { + "type": "number" + }, + "height": { + "type": "integer" + }, + "isoSpeed": { + "type": "integer" + }, + "lens": { + "type": "string" + }, + "location": { + "properties": { + "altitude": { + "type": "number" + }, + "latitude": { + "type": "number" + }, + "longitude": { + "type": "number" + } + }, + "type": "object" + }, + "maxApertureValue": { + "type": "number" + }, + "meteringMode": { + "type": "string" + }, + "rotation": { + "type": "integer" + }, + "sensor": { + "type": "string" + }, + "subjectDistance": { + "type": "integer" + }, + "time": { + "type": "string" + }, + "whiteBalance": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "isAppAuthorized": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "labelInfo": { + "properties": { + "labels": { + "items": { + "properties": { + "fields": { + "type": "object" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "revisionId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "lastModifyingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "linkShareMetadata": { + "properties": { + "securityUpdateEligible": { + "type": "boolean" + }, + "securityUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "md5Checksum": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modifiedByMe": { + "type": "boolean" + }, + "modifiedByMeTime": { + "type": "string" + }, + "modifiedTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "originalFilename": { + "type": "string" + }, + "ownedByMe": { + "type": "boolean" + }, + "owners": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "parents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissions": { + "items": { + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "type": "object" + }, + "quotaBytesUsed": { + "type": "string" + }, + "resourceKey": { + "type": "string" + }, + "sha1Checksum": { + "type": "string" + }, + "sha256Checksum": { + "type": "string" + }, + "shared": { + "type": "boolean" + }, + "sharedWithMeTime": { + "type": "string" + }, + "sharingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "shortcutDetails": { + "properties": { + "targetId": { + "type": "string" + }, + "targetMimeType": { + "type": "string" + }, + "targetResourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "type": "string" + }, + "spaces": { + "items": { + "type": "string" + }, + "type": "array" + }, + "starred": { + "type": "boolean" + }, + "teamDriveId": { + "type": "string" + }, + "thumbnailLink": { + "type": "string" + }, + "thumbnailVersion": { + "type": "string" + }, + "trashed": { + "type": "boolean" + }, + "trashedTime": { + "type": "string" + }, + "trashingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "version": { + "type": "string" + }, + "videoMediaMetadata": { + "properties": { + "durationMillis": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "viewedByMe": { + "type": "boolean" + }, + "viewedByMeTime": { + "type": "string" + }, + "viewersCanCopyContent": { + "type": "boolean" + }, + "webContentLink": { + "type": "string" + }, + "webViewLink": { + "type": "string" + }, + "writersCanShare": { + "type": "boolean" + } + }, + "type": "object" + }, + "fileId": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "removed": { + "type": "boolean" + }, + "teamDrive": { + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canChangeTeamDriveBackground": { + "type": "boolean" + }, + "canChangeTeamMembersOnlyRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteTeamDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameTeamDrive": { + "type": "boolean" + }, + "canResetTeamDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + }, + "teamMembersOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" + }, + "teamDriveId": { + "type": "string" + }, + "time": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "newStartPageToken": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.changes.watch27 fields changed- changed
Input schema / properties / driveId / descriptionPrevious value: -"The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change I"New value: +"[query parameter] The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change I" - added
Input schema / properties / includeCorpusRemovals / defaultAdded value: +"false" - changed
Input schema / properties / includeCorpusRemovals / descriptionPrevious value: -"Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the l"New value: +"[query parameter] Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the l" - added
Input schema / properties / includeItemsFromAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / includeItemsFromAllDrives / descriptionPrevious value: -"Whether both My Drive and shared drive items should be included in results."New value: +"[query parameter] Whether both My Drive and shared drive items should be included in results." - changed
Input schema / properties / includeLabels / descriptionPrevious value: -"A comma-separated list of IDs of labels to include in the `labelInfo` part of the response."New value: +"[query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response." - changed
Input schema / properties / includePermissionsForView / descriptionPrevious value: -"Specifies which additional view's permissions to include in the response. Only 'published' is supported."New value: +"[query parameter] Specifies which additional view's permissions to include in the response. Only 'published' is supported." - added
Input schema / properties / includeRemoved / defaultAdded value: +"true" - changed
Input schema / properties / includeRemoved / descriptionPrevious value: -"Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access."New value: +"[query parameter] Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access." - added
Input schema / properties / includeTeamDriveItems / defaultAdded value: +"false" - changed
Input schema / properties / includeTeamDriveItems / descriptionPrevious value: -"Deprecated: Use `includeItemsFromAllDrives` instead."New value: +"[query parameter] Deprecated: Use `includeItemsFromAllDrives` instead." - added
Input schema / properties / pageSize / defaultAdded value: +"100" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of changes to return. The service may return fewer than this value. If unspecified, at most 100 changes will be returned. The maximum value i"New value: +"[query parameter] The maximum number of changes to return. The service may return fewer than this value. If unspecified, at most 100 changes will be returned. The maximum value i" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - added
Input schema / properties / pageSize / maximumAdded value: +1000 - added
Input schema / properties / pageSize / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the respo"New value: +"[query parameter] The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the respo" - added
Input schema / properties / restrictToMyDrive / defaultAdded value: +"false" - changed
Input schema / properties / restrictToMyDrive / descriptionPrevious value: -"Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared fil"New value: +"[query parameter] Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared fil" - added
Input schema / properties / spaces / defaultAdded value: +"drive" - changed
Input schema / properties / spaces / descriptionPrevious value: -"A comma-separated list of spaces to query within the corpora. Supported values are 'drive' and 'appDataFolder'."New value: +"[query parameter] A comma-separated list of spaces to query within the corpora. Supported values are 'drive' and 'appDataFolder'." - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - changed
Input schema / properties / teamDriveId / descriptionPrevious value: -"Deprecated: Use `driveId` instead."New value: +"[query parameter] Deprecated: Use `driveId` instead." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.comments.create2 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "anchor": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + }, + "quotedFileContent": { + "properties": { + "mimeType": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "replies": { + "items": { + "properties": { + "action": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resolved": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
drive.comments.delete2 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"The ID of the comment."New value: +"[URL path segment] The ID of the comment." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file."
- Changed
drive.comments.get5 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"The ID of the comment."New value: +"[URL path segment] The ID of the comment." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - added
Input schema / properties / includeDeleted / defaultAdded value: +"false" - changed
Input schema / properties / includeDeleted / descriptionPrevious value: -"Whether to return deleted comments. Deleted comments will not include their original content."New value: +"[query parameter] Whether to return deleted comments. Deleted comments will not include their original content." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "anchor": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + }, + "quotedFileContent": { + "properties": { + "mimeType": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "replies": { + "items": { + "properties": { + "action": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resolved": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
drive.comments.list11 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - added
Input schema / properties / includeDeleted / defaultAdded value: +"false" - changed
Input schema / properties / includeDeleted / descriptionPrevious value: -"Whether to include deleted comments. Deleted comments will not include their original content."New value: +"[query parameter] Whether to include deleted comments. Deleted comments will not include their original content." - added
Input schema / properties / pageSize / defaultAdded value: +"20" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of comments to return. The service may return fewer than this value. If unspecified, at most 20 comments will be returned. The maximum value "New value: +"[query parameter] The maximum number of comments to return. The service may return fewer than this value. If unspecified, at most 20 comments will be returned. The maximum value " - added
Input schema / properties / pageSize / formatAdded value: +"int32" - added
Input schema / properties / pageSize / maximumAdded value: +100 - added
Input schema / properties / pageSize / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response."New value: +"[query parameter] The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response." - changed
Input schema / properties / startModifiedTime / descriptionPrevious value: -"The minimum value of 'modifiedTime' for the result comments (RFC 3339 date-time)."New value: +"[query parameter] The minimum value of 'modifiedTime' for the result comments (RFC 3339 date-time)." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "comments": { + "items": { + "properties": { + "anchor": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + }, + "quotedFileContent": { + "properties": { + "mimeType": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "replies": { + "items": { + "properties": { + "action": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resolved": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.comments.update3 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"The ID of the comment."New value: +"[URL path segment] The ID of the comment." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "anchor": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + }, + "quotedFileContent": { + "properties": { + "mimeType": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "replies": { + "items": { + "properties": { + "action": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resolved": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
drive.drives.create2 fields changed- changed
Input schema / properties / requestId / descriptionPrevious value: -"Required. An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a shared drive. A repeated request by the same "New value: +"[query parameter] Required. An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a shared drive. A repeated request by the same " - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeDriveBackground": { + "type": "boolean" + }, + "canChangeDriveMembersOnlyRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameDrive": { + "type": "boolean" + }, + "canResetDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "driveMembersOnly": { + "type": "boolean" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.drives.delete5 fields changed- added
Input schema / properties / allowItemDeletion / defaultAdded value: +"false" - changed
Input schema / properties / allowItemDeletion / descriptionPrevious value: -"Whether any items inside the shared drive should also be deleted. This option is only supported when `useDomainAdminAccess` is also set to `true`."New value: +"[query parameter] Whether any items inside the shared drive should also be deleted. This option is only supported when `useDomainAdminAccess` is also set to `true`." - changed
Input schema / properties / driveId / descriptionPrevious value: -"The ID of the shared drive."New value: +"[URL path segment] The ID of the shared drive." - added
Input schema / properties / useDomainAdminAccess / defaultAdded value: +"false" - changed
Input schema / properties / useDomainAdminAccess / descriptionPrevious value: -"Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the s"New value: +"[query parameter] Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the s"
- Changed
drive.drives.get4 fields changed- changed
Input schema / properties / driveId / descriptionPrevious value: -"The ID of the shared drive."New value: +"[URL path segment] The ID of the shared drive." - added
Input schema / properties / useDomainAdminAccess / defaultAdded value: +"false" - changed
Input schema / properties / useDomainAdminAccess / descriptionPrevious value: -"Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the s"New value: +"[query parameter] Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the s" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeDriveBackground": { + "type": "boolean" + }, + "canChangeDriveMembersOnlyRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameDrive": { + "type": "boolean" + }, + "canResetDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "driveMembersOnly": { + "type": "boolean" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.drives.hide2 fields changed- changed
Input schema / properties / driveId / descriptionPrevious value: -"The ID of the shared drive."New value: +"[URL path segment] The ID of the shared drive." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeDriveBackground": { + "type": "boolean" + }, + "canChangeDriveMembersOnlyRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameDrive": { + "type": "boolean" + }, + "canResetDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "driveMembersOnly": { + "type": "boolean" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.drives.list10 fields changed- added
Input schema / properties / pageSize / defaultAdded value: +"10" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of shared drives to return. The service may return fewer than this value. If unspecified, at most 10 shared drives will be returned. The maxi"New value: +"[query parameter] The maximum number of shared drives to return. The service may return fewer than this value. If unspecified, at most 10 shared drives will be returned. The maxi" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - added
Input schema / properties / pageSize / maximumAdded value: +100 - added
Input schema / properties / pageSize / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Page token for shared drives."New value: +"[query parameter] Page token for shared drives." - changed
Input schema / properties / q / descriptionPrevious value: -"Query string for searching shared drives."New value: +"[query parameter] Query string for searching shared drives." - added
Input schema / properties / useDomainAdminAccess / defaultAdded value: +"false" - changed
Input schema / properties / useDomainAdminAccess / descriptionPrevious value: -"Issue the request as a domain administrator; if set to true, then all shared drives of the domain in which the requester is an administrator are returned."New value: +"[query parameter] Issue the request as a domain administrator; if set to true, then all shared drives of the domain in which the requester is an administrator are returned." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "drives": { + "items": { + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeDriveBackground": { + "type": "boolean" + }, + "canChangeDriveMembersOnlyRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameDrive": { + "type": "boolean" + }, + "canResetDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "driveMembersOnly": { + "type": "boolean" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.drives.unhide2 fields changed- changed
Input schema / properties / driveId / descriptionPrevious value: -"The ID of the shared drive."New value: +"[URL path segment] The ID of the shared drive." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeDriveBackground": { + "type": "boolean" + }, + "canChangeDriveMembersOnlyRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameDrive": { + "type": "boolean" + }, + "canResetDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "driveMembersOnly": { + "type": "boolean" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.drives.update4 fields changed- changed
Input schema / properties / driveId / descriptionPrevious value: -"The ID of the shared drive."New value: +"[URL path segment] The ID of the shared drive." - added
Input schema / properties / useDomainAdminAccess / defaultAdded value: +"false" - changed
Input schema / properties / useDomainAdminAccess / descriptionPrevious value: -"Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the s"New value: +"[query parameter] Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the s" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeDriveBackground": { + "type": "boolean" + }, + "canChangeDriveMembersOnlyRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameDrive": { + "type": "boolean" + }, + "canResetDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "driveMembersOnly": { + "type": "boolean" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.files.copy17 fields changed- added
Input schema / properties / copyComments / defaultAdded value: +"false" - changed
Input schema / properties / copyComments / descriptionPrevious value: -"Whether to copy the open (unresolved) comments associated with the file."New value: +"[query parameter] Whether to copy the open (unresolved) comments associated with the file." - added
Input schema / properties / enforceSingleParent / defaultAdded value: +"false" - changed
Input schema / properties / enforceSingleParent / descriptionPrevious value: -"Deprecated: Copying files into multiple folders is no longer supported. Use shortcuts instead."New value: +"[query parameter] Deprecated: Copying files into multiple folders is no longer supported. Use shortcuts instead." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - added
Input schema / properties / ignoreDefaultVisibility / defaultAdded value: +"false" - changed
Input schema / properties / ignoreDefaultVisibility / descriptionPrevious value: -"Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the doma"New value: +"[query parameter] Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the doma" - changed
Input schema / properties / includeLabels / descriptionPrevious value: -"A comma-separated list of IDs of labels to include in the `labelInfo` part of the response."New value: +"[query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response." - changed
Input schema / properties / includePermissionsForView / descriptionPrevious value: -"Specifies which additional view's permissions to include in the response. Only `published` is supported."New value: +"[query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported." - added
Input schema / properties / keepRevisionForever / defaultAdded value: +"false" - changed
Input schema / properties / keepRevisionForever / descriptionPrevious value: -"Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for th"New value: +"[query parameter] Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for th" - changed
Input schema / properties / ocrLanguage / descriptionPrevious value: -"A language hint for OCR processing during image import (ISO 639-1 code)."New value: +"[query parameter] A language hint for OCR processing during image import (ISO 639-1 code)." - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "appProperties": { + "type": "object" + }, + "capabilities": { + "properties": { + "canAcceptOwnership": { + "type": "boolean" + }, + "canAccessViaGenAi": { + "type": "boolean" + }, + "canAddChildren": { + "type": "boolean" + }, + "canAddFolderFromAnotherDrive": { + "type": "boolean" + }, + "canAddMyDriveParent": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermission": { + "type": "boolean" + }, + "canChangeItemDownloadRestriction": { + "type": "boolean" + }, + "canChangeSecurityUpdateEnabled": { + "type": "boolean" + }, + "canChangeViewersCanCopyContent": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDelete": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDisableInheritedPermissions": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canEnableInheritedPermissions": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canModifyContent": { + "type": "boolean" + }, + "canModifyContentRestriction": { + "type": "boolean" + }, + "canModifyEditorContentRestriction": { + "type": "boolean" + }, + "canModifyLabels": { + "type": "boolean" + }, + "canModifyOwnerContentRestriction": { + "type": "boolean" + }, + "canMoveChildrenOutOfDrive": { + "type": "boolean" + }, + "canMoveChildrenOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinTeamDrive": { + "type": "boolean" + }, + "canMoveItemIntoTeamDrive": { + "type": "boolean" + }, + "canMoveItemOutOfDrive": { + "type": "boolean" + }, + "canMoveItemOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveItemWithinDrive": { + "type": "boolean" + }, + "canMoveItemWithinTeamDrive": { + "type": "boolean" + }, + "canMoveTeamDriveItem": { + "type": "boolean" + }, + "canReadDrive": { + "type": "boolean" + }, + "canReadLabels": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canReadTeamDrive": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRemoveContentRestriction": { + "type": "boolean" + }, + "canRemoveMyDriveParent": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canStartApproval": { + "type": "boolean" + }, + "canTrash": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + }, + "canUntrash": { + "type": "boolean" + } + }, + "type": "object" + }, + "clientEncryptionDetails": { + "properties": { + "decryptionMetadata": { + "properties": { + "aes256GcmChunkSize": { + "type": "string" + }, + "encryptionResourceKeyHash": { + "type": "string" + }, + "jwt": { + "type": "string" + }, + "kaclsId": { + "type": "string" + }, + "kaclsName": { + "type": "string" + }, + "keyFormat": { + "type": "string" + }, + "wrappedKey": { + "type": "string" + } + }, + "type": "object" + }, + "encryptionState": { + "type": "string" + } + }, + "type": "object" + }, + "contentHints": { + "properties": { + "indexableText": { + "type": "string" + }, + "thumbnail": { + "properties": { + "image": { + "type": "string" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "contentRestrictions": { + "items": { + "properties": { + "ownerRestricted": { + "type": "boolean" + }, + "readOnly": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "restrictingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "restrictionTime": { + "type": "string" + }, + "systemRestricted": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "createdTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "downloadRestrictions": { + "properties": { + "effectiveDownloadRestrictionWithContext": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "itemDownloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "driveId": { + "type": "string" + }, + "explicitlyTrashed": { + "type": "boolean" + }, + "exportLinks": { + "type": "object" + }, + "fileExtension": { + "type": "string" + }, + "folderColorRgb": { + "type": "string" + }, + "fullFileExtension": { + "type": "string" + }, + "hasAugmentedPermissions": { + "type": "boolean" + }, + "hasThumbnail": { + "type": "boolean" + }, + "headRevisionId": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageMediaMetadata": { + "properties": { + "aperture": { + "type": "number" + }, + "cameraMake": { + "type": "string" + }, + "cameraModel": { + "type": "string" + }, + "colorSpace": { + "type": "string" + }, + "exposureBias": { + "type": "number" + }, + "exposureMode": { + "type": "string" + }, + "exposureTime": { + "type": "number" + }, + "flashUsed": { + "type": "boolean" + }, + "focalLength": { + "type": "number" + }, + "height": { + "type": "integer" + }, + "isoSpeed": { + "type": "integer" + }, + "lens": { + "type": "string" + }, + "location": { + "properties": { + "altitude": { + "type": "number" + }, + "latitude": { + "type": "number" + }, + "longitude": { + "type": "number" + } + }, + "type": "object" + }, + "maxApertureValue": { + "type": "number" + }, + "meteringMode": { + "type": "string" + }, + "rotation": { + "type": "integer" + }, + "sensor": { + "type": "string" + }, + "subjectDistance": { + "type": "integer" + }, + "time": { + "type": "string" + }, + "whiteBalance": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "isAppAuthorized": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "labelInfo": { + "properties": { + "labels": { + "items": { + "properties": { + "fields": { + "type": "object" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "revisionId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "lastModifyingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "linkShareMetadata": { + "properties": { + "securityUpdateEligible": { + "type": "boolean" + }, + "securityUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "md5Checksum": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modifiedByMe": { + "type": "boolean" + }, + "modifiedByMeTime": { + "type": "string" + }, + "modifiedTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "originalFilename": { + "type": "string" + }, + "ownedByMe": { + "type": "boolean" + }, + "owners": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "parents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissions": { + "items": { + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "type": "object" + }, + "quotaBytesUsed": { + "type": "string" + }, + "resourceKey": { + "type": "string" + }, + "sha1Checksum": { + "type": "string" + }, + "sha256Checksum": { + "type": "string" + }, + "shared": { + "type": "boolean" + }, + "sharedWithMeTime": { + "type": "string" + }, + "sharingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "shortcutDetails": { + "properties": { + "targetId": { + "type": "string" + }, + "targetMimeType": { + "type": "string" + }, + "targetResourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "type": "string" + }, + "spaces": { + "items": { + "type": "string" + }, + "type": "array" + }, + "starred": { + "type": "boolean" + }, + "teamDriveId": { + "type": "string" + }, + "thumbnailLink": { + "type": "string" + }, + "thumbnailVersion": { + "type": "string" + }, + "trashed": { + "type": "boolean" + }, + "trashedTime": { + "type": "string" + }, + "trashingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "version": { + "type": "string" + }, + "videoMediaMetadata": { + "properties": { + "durationMillis": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "viewedByMe": { + "type": "boolean" + }, + "viewedByMeTime": { + "type": "string" + }, + "viewersCanCopyContent": { + "type": "boolean" + }, + "webContentLink": { + "type": "string" + }, + "webViewLink": { + "type": "string" + }, + "writersCanShare": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
drive.files.create16 fields changed- added
Input schema / properties / enforceSingleParent / defaultAdded value: +"false" - changed
Input schema / properties / enforceSingleParent / descriptionPrevious value: -"Deprecated: Creating files in multiple folders is no longer supported."New value: +"[query parameter] Deprecated: Creating files in multiple folders is no longer supported." - added
Input schema / properties / ignoreDefaultVisibility / defaultAdded value: +"false" - changed
Input schema / properties / ignoreDefaultVisibility / descriptionPrevious value: -"Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the doma"New value: +"[query parameter] Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the doma" - changed
Input schema / properties / includeLabels / descriptionPrevious value: -"A comma-separated list of IDs of labels to include in the `labelInfo` part of the response."New value: +"[query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response." - changed
Input schema / properties / includePermissionsForView / descriptionPrevious value: -"Specifies which additional view's permissions to include in the response. Only `published` is supported."New value: +"[query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported." - added
Input schema / properties / keepRevisionForever / defaultAdded value: +"false" - changed
Input schema / properties / keepRevisionForever / descriptionPrevious value: -"Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for th"New value: +"[query parameter] Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for th" - changed
Input schema / properties / ocrLanguage / descriptionPrevious value: -"A language hint for OCR processing during image import (ISO 639-1 code)."New value: +"[query parameter] A language hint for OCR processing during image import (ISO 639-1 code)." - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - added
Input schema / properties / useContentAsIndexableText / defaultAdded value: +"false" - changed
Input schema / properties / useContentAsIndexableText / descriptionPrevious value: -"Whether to use the uploaded content as indexable text."New value: +"[query parameter] Whether to use the uploaded content as indexable text." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "appProperties": { + "type": "object" + }, + "capabilities": { + "properties": { + "canAcceptOwnership": { + "type": "boolean" + }, + "canAccessViaGenAi": { + "type": "boolean" + }, + "canAddChildren": { + "type": "boolean" + }, + "canAddFolderFromAnotherDrive": { + "type": "boolean" + }, + "canAddMyDriveParent": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermission": { + "type": "boolean" + }, + "canChangeItemDownloadRestriction": { + "type": "boolean" + }, + "canChangeSecurityUpdateEnabled": { + "type": "boolean" + }, + "canChangeViewersCanCopyContent": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDelete": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDisableInheritedPermissions": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canEnableInheritedPermissions": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canModifyContent": { + "type": "boolean" + }, + "canModifyContentRestriction": { + "type": "boolean" + }, + "canModifyEditorContentRestriction": { + "type": "boolean" + }, + "canModifyLabels": { + "type": "boolean" + }, + "canModifyOwnerContentRestriction": { + "type": "boolean" + }, + "canMoveChildrenOutOfDrive": { + "type": "boolean" + }, + "canMoveChildrenOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinTeamDrive": { + "type": "boolean" + }, + "canMoveItemIntoTeamDrive": { + "type": "boolean" + }, + "canMoveItemOutOfDrive": { + "type": "boolean" + }, + "canMoveItemOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveItemWithinDrive": { + "type": "boolean" + }, + "canMoveItemWithinTeamDrive": { + "type": "boolean" + }, + "canMoveTeamDriveItem": { + "type": "boolean" + }, + "canReadDrive": { + "type": "boolean" + }, + "canReadLabels": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canReadTeamDrive": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRemoveContentRestriction": { + "type": "boolean" + }, + "canRemoveMyDriveParent": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canStartApproval": { + "type": "boolean" + }, + "canTrash": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + }, + "canUntrash": { + "type": "boolean" + } + }, + "type": "object" + }, + "clientEncryptionDetails": { + "properties": { + "decryptionMetadata": { + "properties": { + "aes256GcmChunkSize": { + "type": "string" + }, + "encryptionResourceKeyHash": { + "type": "string" + }, + "jwt": { + "type": "string" + }, + "kaclsId": { + "type": "string" + }, + "kaclsName": { + "type": "string" + }, + "keyFormat": { + "type": "string" + }, + "wrappedKey": { + "type": "string" + } + }, + "type": "object" + }, + "encryptionState": { + "type": "string" + } + }, + "type": "object" + }, + "contentHints": { + "properties": { + "indexableText": { + "type": "string" + }, + "thumbnail": { + "properties": { + "image": { + "type": "string" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "contentRestrictions": { + "items": { + "properties": { + "ownerRestricted": { + "type": "boolean" + }, + "readOnly": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "restrictingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "restrictionTime": { + "type": "string" + }, + "systemRestricted": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "createdTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "downloadRestrictions": { + "properties": { + "effectiveDownloadRestrictionWithContext": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "itemDownloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "driveId": { + "type": "string" + }, + "explicitlyTrashed": { + "type": "boolean" + }, + "exportLinks": { + "type": "object" + }, + "fileExtension": { + "type": "string" + }, + "folderColorRgb": { + "type": "string" + }, + "fullFileExtension": { + "type": "string" + }, + "hasAugmentedPermissions": { + "type": "boolean" + }, + "hasThumbnail": { + "type": "boolean" + }, + "headRevisionId": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageMediaMetadata": { + "properties": { + "aperture": { + "type": "number" + }, + "cameraMake": { + "type": "string" + }, + "cameraModel": { + "type": "string" + }, + "colorSpace": { + "type": "string" + }, + "exposureBias": { + "type": "number" + }, + "exposureMode": { + "type": "string" + }, + "exposureTime": { + "type": "number" + }, + "flashUsed": { + "type": "boolean" + }, + "focalLength": { + "type": "number" + }, + "height": { + "type": "integer" + }, + "isoSpeed": { + "type": "integer" + }, + "lens": { + "type": "string" + }, + "location": { + "properties": { + "altitude": { + "type": "number" + }, + "latitude": { + "type": "number" + }, + "longitude": { + "type": "number" + } + }, + "type": "object" + }, + "maxApertureValue": { + "type": "number" + }, + "meteringMode": { + "type": "string" + }, + "rotation": { + "type": "integer" + }, + "sensor": { + "type": "string" + }, + "subjectDistance": { + "type": "integer" + }, + "time": { + "type": "string" + }, + "whiteBalance": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "isAppAuthorized": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "labelInfo": { + "properties": { + "labels": { + "items": { + "properties": { + "fields": { + "type": "object" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "revisionId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "lastModifyingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "linkShareMetadata": { + "properties": { + "securityUpdateEligible": { + "type": "boolean" + }, + "securityUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "md5Checksum": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modifiedByMe": { + "type": "boolean" + }, + "modifiedByMeTime": { + "type": "string" + }, + "modifiedTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "originalFilename": { + "type": "string" + }, + "ownedByMe": { + "type": "boolean" + }, + "owners": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "parents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissions": { + "items": { + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "type": "object" + }, + "quotaBytesUsed": { + "type": "string" + }, + "resourceKey": { + "type": "string" + }, + "sha1Checksum": { + "type": "string" + }, + "sha256Checksum": { + "type": "string" + }, + "shared": { + "type": "boolean" + }, + "sharedWithMeTime": { + "type": "string" + }, + "sharingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "shortcutDetails": { + "properties": { + "targetId": { + "type": "string" + }, + "targetMimeType": { + "type": "string" + }, + "targetResourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "type": "string" + }, + "spaces": { + "items": { + "type": "string" + }, + "type": "array" + }, + "starred": { + "type": "boolean" + }, + "teamDriveId": { + "type": "string" + }, + "thumbnailLink": { + "type": "string" + }, + "thumbnailVersion": { + "type": "string" + }, + "trashed": { + "type": "boolean" + }, + "trashedTime": { + "type": "string" + }, + "trashingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "version": { + "type": "string" + }, + "videoMediaMetadata": { + "properties": { + "durationMillis": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "viewedByMe": { + "type": "boolean" + }, + "viewedByMeTime": { + "type": "string" + }, + "viewersCanCopyContent": { + "type": "boolean" + }, + "webContentLink": { + "type": "string" + }, + "webViewLink": { + "type": "string" + }, + "writersCanShare": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
drive.files.delete7 fields changed- added
Input schema / properties / enforceSingleParent / defaultAdded value: +"false" - changed
Input schema / properties / enforceSingleParent / descriptionPrevious value: -"Deprecated: If an item isn't in a shared drive and its last parent is deleted but the item itself isn't, the item will be placed under its owner's root."New value: +"[query parameter] Deprecated: If an item isn't in a shared drive and its last parent is deleted but the item itself isn't, the item will be placed under its owner's root." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead."
- Changed
drive.files.download4 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"Required. The ID of the file to download."New value: +"[URL path segment] Required. The ID of the file to download." - changed
Input schema / properties / mimeType / descriptionPrevious value: -"Optional. The MIME type the file should be downloaded as. This field can only be set when downloading Google Workspace documents. For a list of supported MIME t"New value: +"[query parameter] Optional. The MIME type the file should be downloaded as. This field can only be set when downloading Google Workspace documents. For a list of supported MIME t" - changed
Input schema / properties / revisionId / descriptionPrevious value: -"Optional. The revision ID of the file to download. This field can only be set when downloading blob files, Google Docs, and Google Sheets. Returns `INVALID_ARGU"New value: +"[query parameter] Optional. The revision ID of the file to download. This field can only be set when downloading blob files, Google Docs, and Google Sheets. Returns `INVALID_ARGU" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "done": { + "type": "boolean" + }, + "error": { + "properties": { + "code": { + "type": "integer" + }, + "details": { + "items": { + "type": "object" + }, + "type": "array" + }, + "message": { + "type": "string" + } + }, + "type": "object" + }, + "metadata": { + "type": "object" + }, + "name": { + "type": "string" + }, + "response": { + "type": "object" + } + }, + "type": "object" +}
- Changed
drive.files.emptyTrash3 fields changed- changed
Input schema / properties / driveId / descriptionPrevious value: -"If set, empties the trash of the provided shared drive."New value: +"[query parameter] If set, empties the trash of the provided shared drive." - added
Input schema / properties / enforceSingleParent / defaultAdded value: +"false" - changed
Input schema / properties / enforceSingleParent / descriptionPrevious value: -"Deprecated: If an item isn't in a shared drive and its last parent is deleted but the item itself isn't, the item will be placed under its owner's root."New value: +"[query parameter] Deprecated: If an item isn't in a shared drive and its last parent is deleted but the item itself isn't, the item will be placed under its owner's root."
- Changed
drive.files.export2 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - changed
Input schema / properties / mimeType / descriptionPrevious value: -"Required. The MIME type of the format requested for this export. For a list of supported MIME types, see [Export MIME types for Google Workspace documents](/wor"New value: +"[query parameter] Required. The MIME type of the format requested for this export. For a list of supported MIME types, see [Export MIME types for Google Workspace documents](/wor"
- Changed
drive.files.generateCseToken3 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file for which the JWT should be generated. If not provided, an id will be generated."New value: +"[query parameter] The ID of the file for which the JWT should be generated. If not provided, an id will be generated." - changed
Input schema / properties / parent / descriptionPrevious value: -"The ID of the expected parent of the file. Used when generating a JWT for a new CSE file. If specified, the parent will be fetched, and if the parent is a share"New value: +"[query parameter] The ID of the expected parent of the file. Used when generating a JWT for a new CSE file. If specified, the parent will be fetched, and if the parent is a share" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "currentKaclsId": { + "type": "string" + }, + "currentKaclsName": { + "type": "string" + }, + "fileId": { + "type": "string" + }, + "jwt": { + "type": "string" + }, + "kind": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.files.generateIds10 fields changed- added
Input schema / properties / count / defaultAdded value: +"10" - changed
Input schema / properties / count / descriptionPrevious value: -"The number of IDs to return."New value: +"[query parameter] The number of IDs to return." - added
Input schema / properties / count / formatAdded value: +"int32" - added
Input schema / properties / count / maximumAdded value: +1000 - added
Input schema / properties / count / minimumAdded value: +1 - added
Input schema / properties / space / defaultAdded value: +"drive" - changed
Input schema / properties / space / descriptionPrevious value: -"The space in which the IDs can be used to create files. Supported values are `drive` and `appDataFolder`. (Default: `drive`.) For more information, see [File or"New value: +"[query parameter] The space in which the IDs can be used to create files. Supported values are `drive` and `appDataFolder`. (Default: `drive`.) For more information, see [File or" - added
Input schema / properties / type / defaultAdded value: +"files" - changed
Input schema / properties / type / descriptionPrevious value: -"The type of items which the IDs can be used for. Supported values are `files` and `shortcuts`. Note that `shortcuts` are only supported in the `drive` `space`. "New value: +"[query parameter] The type of items which the IDs can be used for. Supported values are `files` and `shortcuts`. Note that `shortcuts` are only supported in the `drive` `space`. " - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "ids": { + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "space": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.files.get10 fields changed- added
Input schema / properties / acknowledgeAbuse / defaultAdded value: +"false" - changed
Input schema / properties / acknowledgeAbuse / descriptionPrevious value: -"Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when the `alt` parameter is set to `medi"New value: +"[query parameter] Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when the `alt` parameter is set to `medi" - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - changed
Input schema / properties / includeLabels / descriptionPrevious value: -"A comma-separated list of IDs of labels to include in the `labelInfo` part of the response."New value: +"[query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response." - changed
Input schema / properties / includePermissionsForView / descriptionPrevious value: -"Specifies which additional view's permissions to include in the response. Only `published` is supported."New value: +"[query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported." - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "appProperties": { + "type": "object" + }, + "capabilities": { + "properties": { + "canAcceptOwnership": { + "type": "boolean" + }, + "canAccessViaGenAi": { + "type": "boolean" + }, + "canAddChildren": { + "type": "boolean" + }, + "canAddFolderFromAnotherDrive": { + "type": "boolean" + }, + "canAddMyDriveParent": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermission": { + "type": "boolean" + }, + "canChangeItemDownloadRestriction": { + "type": "boolean" + }, + "canChangeSecurityUpdateEnabled": { + "type": "boolean" + }, + "canChangeViewersCanCopyContent": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDelete": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDisableInheritedPermissions": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canEnableInheritedPermissions": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canModifyContent": { + "type": "boolean" + }, + "canModifyContentRestriction": { + "type": "boolean" + }, + "canModifyEditorContentRestriction": { + "type": "boolean" + }, + "canModifyLabels": { + "type": "boolean" + }, + "canModifyOwnerContentRestriction": { + "type": "boolean" + }, + "canMoveChildrenOutOfDrive": { + "type": "boolean" + }, + "canMoveChildrenOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinTeamDrive": { + "type": "boolean" + }, + "canMoveItemIntoTeamDrive": { + "type": "boolean" + }, + "canMoveItemOutOfDrive": { + "type": "boolean" + }, + "canMoveItemOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveItemWithinDrive": { + "type": "boolean" + }, + "canMoveItemWithinTeamDrive": { + "type": "boolean" + }, + "canMoveTeamDriveItem": { + "type": "boolean" + }, + "canReadDrive": { + "type": "boolean" + }, + "canReadLabels": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canReadTeamDrive": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRemoveContentRestriction": { + "type": "boolean" + }, + "canRemoveMyDriveParent": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canStartApproval": { + "type": "boolean" + }, + "canTrash": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + }, + "canUntrash": { + "type": "boolean" + } + }, + "type": "object" + }, + "clientEncryptionDetails": { + "properties": { + "decryptionMetadata": { + "properties": { + "aes256GcmChunkSize": { + "type": "string" + }, + "encryptionResourceKeyHash": { + "type": "string" + }, + "jwt": { + "type": "string" + }, + "kaclsId": { + "type": "string" + }, + "kaclsName": { + "type": "string" + }, + "keyFormat": { + "type": "string" + }, + "wrappedKey": { + "type": "string" + } + }, + "type": "object" + }, + "encryptionState": { + "type": "string" + } + }, + "type": "object" + }, + "contentHints": { + "properties": { + "indexableText": { + "type": "string" + }, + "thumbnail": { + "properties": { + "image": { + "type": "string" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "contentRestrictions": { + "items": { + "properties": { + "ownerRestricted": { + "type": "boolean" + }, + "readOnly": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "restrictingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "restrictionTime": { + "type": "string" + }, + "systemRestricted": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "createdTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "downloadRestrictions": { + "properties": { + "effectiveDownloadRestrictionWithContext": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "itemDownloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "driveId": { + "type": "string" + }, + "explicitlyTrashed": { + "type": "boolean" + }, + "exportLinks": { + "type": "object" + }, + "fileExtension": { + "type": "string" + }, + "folderColorRgb": { + "type": "string" + }, + "fullFileExtension": { + "type": "string" + }, + "hasAugmentedPermissions": { + "type": "boolean" + }, + "hasThumbnail": { + "type": "boolean" + }, + "headRevisionId": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageMediaMetadata": { + "properties": { + "aperture": { + "type": "number" + }, + "cameraMake": { + "type": "string" + }, + "cameraModel": { + "type": "string" + }, + "colorSpace": { + "type": "string" + }, + "exposureBias": { + "type": "number" + }, + "exposureMode": { + "type": "string" + }, + "exposureTime": { + "type": "number" + }, + "flashUsed": { + "type": "boolean" + }, + "focalLength": { + "type": "number" + }, + "height": { + "type": "integer" + }, + "isoSpeed": { + "type": "integer" + }, + "lens": { + "type": "string" + }, + "location": { + "properties": { + "altitude": { + "type": "number" + }, + "latitude": { + "type": "number" + }, + "longitude": { + "type": "number" + } + }, + "type": "object" + }, + "maxApertureValue": { + "type": "number" + }, + "meteringMode": { + "type": "string" + }, + "rotation": { + "type": "integer" + }, + "sensor": { + "type": "string" + }, + "subjectDistance": { + "type": "integer" + }, + "time": { + "type": "string" + }, + "whiteBalance": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "isAppAuthorized": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "labelInfo": { + "properties": { + "labels": { + "items": { + "properties": { + "fields": { + "type": "object" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "revisionId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "lastModifyingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "linkShareMetadata": { + "properties": { + "securityUpdateEligible": { + "type": "boolean" + }, + "securityUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "md5Checksum": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modifiedByMe": { + "type": "boolean" + }, + "modifiedByMeTime": { + "type": "string" + }, + "modifiedTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "originalFilename": { + "type": "string" + }, + "ownedByMe": { + "type": "boolean" + }, + "owners": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "parents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissions": { + "items": { + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "type": "object" + }, + "quotaBytesUsed": { + "type": "string" + }, + "resourceKey": { + "type": "string" + }, + "sha1Checksum": { + "type": "string" + }, + "sha256Checksum": { + "type": "string" + }, + "shared": { + "type": "boolean" + }, + "sharedWithMeTime": { + "type": "string" + }, + "sharingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "shortcutDetails": { + "properties": { + "targetId": { + "type": "string" + }, + "targetMimeType": { + "type": "string" + }, + "targetResourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "type": "string" + }, + "spaces": { + "items": { + "type": "string" + }, + "type": "array" + }, + "starred": { + "type": "boolean" + }, + "teamDriveId": { + "type": "string" + }, + "thumbnailLink": { + "type": "string" + }, + "thumbnailVersion": { + "type": "string" + }, + "trashed": { + "type": "boolean" + }, + "trashedTime": { + "type": "string" + }, + "trashingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "version": { + "type": "string" + }, + "videoMediaMetadata": { + "properties": { + "durationMillis": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "viewedByMe": { + "type": "boolean" + }, + "viewedByMeTime": { + "type": "string" + }, + "viewersCanCopyContent": { + "type": "boolean" + }, + "webContentLink": { + "type": "string" + }, + "webViewLink": { + "type": "string" + }, + "writersCanShare": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
drive.files.list25 fields changed- changed
Input schema / properties / corpora / descriptionPrevious value: -"Specifies a collection of items (files or documents) to which the query applies. Supported items include: * `user` * `domain` * `drive` * `allDrives` Prefer `us"New value: +"[query parameter] Specifies a collection of items (files or documents) to which the query applies. Supported items include: * `user` * `domain` * `drive` * `allDrives` Prefer `us" - changed
Input schema / properties / corpus / descriptionPrevious value: -"Deprecated: The source of files to list. Use `corpora` instead."New value: +"[query parameter] Deprecated: The source of files to list. Use `corpora` instead. Values: `domain` = Files shared to the user's domain.; `user` = Files owned by or shared to the user.." - changed
Input schema / properties / driveId / descriptionPrevious value: -"ID of the shared drive to search."New value: +"[query parameter] ID of the shared drive to search." - added
Input schema / properties / includeItemsFromAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / includeItemsFromAllDrives / descriptionPrevious value: -"Whether both My Drive and shared drive items should be included in results."New value: +"[query parameter] Whether both My Drive and shared drive items should be included in results." - changed
Input schema / properties / includeLabels / descriptionPrevious value: -"A comma-separated list of IDs of labels to include in the `labelInfo` part of the response."New value: +"[query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response." - changed
Input schema / properties / includePermissionsForView / descriptionPrevious value: -"Specifies which additional view's permissions to include in the response. Only `published` is supported."New value: +"[query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported." - added
Input schema / properties / includeTeamDriveItems / defaultAdded value: +"false" - changed
Input schema / properties / includeTeamDriveItems / descriptionPrevious value: -"Deprecated: Use `includeItemsFromAllDrives` instead."New value: +"[query parameter] Deprecated: Use `includeItemsFromAllDrives` instead." - changed
Input schema / properties / orderBy / descriptionPrevious value: -"A comma-separated list of sort keys. Valid keys are: * `createdTime`: When the file was created. Avoid using this key for queries on large item collections as i"New value: +"[query parameter] A comma-separated list of sort keys. Valid keys are: * `createdTime`: When the file was created. Avoid using this key for queries on large item collections as i" - added
Input schema / properties / pageSize / defaultAdded value: +"100" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of files to return. The service may return fewer than this value. If unspecified, at most 100 files will be returned for shared drives, and t"New value: +"[query parameter] The maximum number of files to return. The service may return fewer than this value. If unspecified, at most 100 files will be returned for shared drives, and t" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - added
Input schema / properties / pageSize / maximumAdded value: +1000 - added
Input schema / properties / pageSize / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response."New value: +"[query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response." - changed
Input schema / properties / q / descriptionPrevious value: -"A query for filtering the file results. For supported syntax, see [Search for files and folders](/workspace/drive/api/guides/search-files)."New value: +"[query parameter] A query for filtering the file results. For supported syntax, see [Search for files and folders](/workspace/drive/api/guides/search-files)." - added
Input schema / properties / spaces / defaultAdded value: +"drive" - changed
Input schema / properties / spaces / descriptionPrevious value: -"A comma-separated list of spaces to query within the corpora. Supported values are `drive` and `appDataFolder`. For more information, see [File organization](ht"New value: +"[query parameter] A comma-separated list of spaces to query within the corpora. Supported values are `drive` and `appDataFolder`. For more information, see [File organization](ht" - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - changed
Input schema / properties / teamDriveId / descriptionPrevious value: -"Deprecated: Use `driveId` instead."New value: +"[query parameter] Deprecated: Use `driveId` instead." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "files": { + "items": { + "properties": { + "appProperties": { + "type": "object" + }, + "capabilities": { + "properties": { + "canAcceptOwnership": { + "type": "boolean" + }, + "canAccessViaGenAi": { + "type": "boolean" + }, + "canAddChildren": { + "type": "boolean" + }, + "canAddFolderFromAnotherDrive": { + "type": "boolean" + }, + "canAddMyDriveParent": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermission": { + "type": "boolean" + }, + "canChangeItemDownloadRestriction": { + "type": "boolean" + }, + "canChangeSecurityUpdateEnabled": { + "type": "boolean" + }, + "canChangeViewersCanCopyContent": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDelete": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDisableInheritedPermissions": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canEnableInheritedPermissions": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canModifyContent": { + "type": "boolean" + }, + "canModifyContentRestriction": { + "type": "boolean" + }, + "canModifyEditorContentRestriction": { + "type": "boolean" + }, + "canModifyLabels": { + "type": "boolean" + }, + "canModifyOwnerContentRestriction": { + "type": "boolean" + }, + "canMoveChildrenOutOfDrive": { + "type": "boolean" + }, + "canMoveChildrenOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinTeamDrive": { + "type": "boolean" + }, + "canMoveItemIntoTeamDrive": { + "type": "boolean" + }, + "canMoveItemOutOfDrive": { + "type": "boolean" + }, + "canMoveItemOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveItemWithinDrive": { + "type": "boolean" + }, + "canMoveItemWithinTeamDrive": { + "type": "boolean" + }, + "canMoveTeamDriveItem": { + "type": "boolean" + }, + "canReadDrive": { + "type": "boolean" + }, + "canReadLabels": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canReadTeamDrive": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRemoveContentRestriction": { + "type": "boolean" + }, + "canRemoveMyDriveParent": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canStartApproval": { + "type": "boolean" + }, + "canTrash": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + }, + "canUntrash": { + "type": "boolean" + } + }, + "type": "object" + }, + "clientEncryptionDetails": { + "properties": { + "decryptionMetadata": { + "properties": { + "aes256GcmChunkSize": { + "type": "string" + }, + "encryptionResourceKeyHash": { + "type": "string" + }, + "jwt": { + "type": "string" + }, + "kaclsId": { + "type": "string" + }, + "kaclsName": { + "type": "string" + }, + "keyFormat": { + "type": "string" + }, + "wrappedKey": { + "type": "string" + } + }, + "type": "object" + }, + "encryptionState": { + "type": "string" + } + }, + "type": "object" + }, + "contentHints": { + "properties": { + "indexableText": { + "type": "string" + }, + "thumbnail": { + "properties": { + "image": { + "type": "string" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "contentRestrictions": { + "items": { + "properties": { + "ownerRestricted": { + "type": "boolean" + }, + "readOnly": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "restrictingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "restrictionTime": { + "type": "string" + }, + "systemRestricted": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "createdTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "downloadRestrictions": { + "properties": { + "effectiveDownloadRestrictionWithContext": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "itemDownloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "driveId": { + "type": "string" + }, + "explicitlyTrashed": { + "type": "boolean" + }, + "exportLinks": { + "type": "object" + }, + "fileExtension": { + "type": "string" + }, + "folderColorRgb": { + "type": "string" + }, + "fullFileExtension": { + "type": "string" + }, + "hasAugmentedPermissions": { + "type": "boolean" + }, + "hasThumbnail": { + "type": "boolean" + }, + "headRevisionId": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageMediaMetadata": { + "properties": { + "aperture": { + "type": "number" + }, + "cameraMake": { + "type": "string" + }, + "cameraModel": { + "type": "string" + }, + "colorSpace": { + "type": "string" + }, + "exposureBias": { + "type": "number" + }, + "exposureMode": { + "type": "string" + }, + "exposureTime": { + "type": "number" + }, + "flashUsed": { + "type": "boolean" + }, + "focalLength": { + "type": "number" + }, + "height": { + "type": "integer" + }, + "isoSpeed": { + "type": "integer" + }, + "lens": { + "type": "string" + }, + "location": { + "properties": { + "altitude": { + "type": "number" + }, + "latitude": { + "type": "number" + }, + "longitude": { + "type": "number" + } + }, + "type": "object" + }, + "maxApertureValue": { + "type": "number" + }, + "meteringMode": { + "type": "string" + }, + "rotation": { + "type": "integer" + }, + "sensor": { + "type": "string" + }, + "subjectDistance": { + "type": "integer" + }, + "time": { + "type": "string" + }, + "whiteBalance": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "isAppAuthorized": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "labelInfo": { + "properties": { + "labels": { + "items": { + "properties": { + "fields": { + "type": "object" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "revisionId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "lastModifyingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "linkShareMetadata": { + "properties": { + "securityUpdateEligible": { + "type": "boolean" + }, + "securityUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "md5Checksum": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modifiedByMe": { + "type": "boolean" + }, + "modifiedByMeTime": { + "type": "string" + }, + "modifiedTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "originalFilename": { + "type": "string" + }, + "ownedByMe": { + "type": "boolean" + }, + "owners": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "parents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissions": { + "items": { + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "type": "object" + }, + "quotaBytesUsed": { + "type": "string" + }, + "resourceKey": { + "type": "string" + }, + "sha1Checksum": { + "type": "string" + }, + "sha256Checksum": { + "type": "string" + }, + "shared": { + "type": "boolean" + }, + "sharedWithMeTime": { + "type": "string" + }, + "sharingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "shortcutDetails": { + "properties": { + "targetId": { + "type": "string" + }, + "targetMimeType": { + "type": "string" + }, + "targetResourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "type": "string" + }, + "spaces": { + "items": { + "type": "string" + }, + "type": "array" + }, + "starred": { + "type": "boolean" + }, + "teamDriveId": { + "type": "string" + }, + "thumbnailLink": { + "type": "string" + }, + "thumbnailVersion": { + "type": "string" + }, + "trashed": { + "type": "boolean" + }, + "trashedTime": { + "type": "string" + }, + "trashingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "version": { + "type": "string" + }, + "videoMediaMetadata": { + "properties": { + "durationMillis": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "viewedByMe": { + "type": "boolean" + }, + "viewedByMeTime": { + "type": "string" + }, + "viewersCanCopyContent": { + "type": "boolean" + }, + "webContentLink": { + "type": "string" + }, + "webViewLink": { + "type": "string" + }, + "writersCanShare": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "incompleteSearch": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.files.listLabels8 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID for the file."New value: +"[URL path segment] The ID for the file." - added
Input schema / properties / maxResults / defaultAdded value: +"100" - changed
Input schema / properties / maxResults / descriptionPrevious value: -"The maximum number of labels to return per page. When not set, defaults to 100."New value: +"[query parameter] The maximum number of labels to return per page. When not set, defaults to 100." - added
Input schema / properties / maxResults / formatAdded value: +"int32" - added
Input schema / properties / maxResults / maximumAdded value: +100 - added
Input schema / properties / maxResults / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response."New value: +"[query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "kind": { + "type": "string" + }, + "labels": { + "items": { + "properties": { + "fields": { + "type": "object" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "revisionId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.files.modifyLabels2 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file to which the labels belong."New value: +"[URL path segment] The ID of the file to which the labels belong." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "kind": { + "type": "string" + }, + "modifiedLabels": { + "items": { + "properties": { + "fields": { + "type": "object" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "revisionId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
drive.files.update17 fields changed- changed
Input schema / properties / addParents / descriptionPrevious value: -"A comma-separated list of parent IDs to add."New value: +"[query parameter] A comma-separated list of parent IDs to add." - added
Input schema / properties / enforceSingleParent / defaultAdded value: +"false" - changed
Input schema / properties / enforceSingleParent / descriptionPrevious value: -"Deprecated: Adding files to multiple folders is no longer supported. Use shortcuts instead."New value: +"[query parameter] Deprecated: Adding files to multiple folders is no longer supported. Use shortcuts instead." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - changed
Input schema / properties / includeLabels / descriptionPrevious value: -"A comma-separated list of IDs of labels to include in the `labelInfo` part of the response."New value: +"[query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response." - changed
Input schema / properties / includePermissionsForView / descriptionPrevious value: -"Specifies which additional view's permissions to include in the response. Only `published` is supported."New value: +"[query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported." - added
Input schema / properties / keepRevisionForever / defaultAdded value: +"false" - changed
Input schema / properties / keepRevisionForever / descriptionPrevious value: -"Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for th"New value: +"[query parameter] Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for th" - changed
Input schema / properties / ocrLanguage / descriptionPrevious value: -"A language hint for OCR processing during image import (ISO 639-1 code)."New value: +"[query parameter] A language hint for OCR processing during image import (ISO 639-1 code)." - changed
Input schema / properties / removeParents / descriptionPrevious value: -"A comma-separated list of parent IDs to remove."New value: +"[query parameter] A comma-separated list of parent IDs to remove." - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - added
Input schema / properties / useContentAsIndexableText / defaultAdded value: +"false" - changed
Input schema / properties / useContentAsIndexableText / descriptionPrevious value: -"Whether to use the uploaded content as indexable text."New value: +"[query parameter] Whether to use the uploaded content as indexable text." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "appProperties": { + "type": "object" + }, + "capabilities": { + "properties": { + "canAcceptOwnership": { + "type": "boolean" + }, + "canAccessViaGenAi": { + "type": "boolean" + }, + "canAddChildren": { + "type": "boolean" + }, + "canAddFolderFromAnotherDrive": { + "type": "boolean" + }, + "canAddMyDriveParent": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermission": { + "type": "boolean" + }, + "canChangeItemDownloadRestriction": { + "type": "boolean" + }, + "canChangeSecurityUpdateEnabled": { + "type": "boolean" + }, + "canChangeViewersCanCopyContent": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDelete": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDisableInheritedPermissions": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canEnableInheritedPermissions": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canModifyContent": { + "type": "boolean" + }, + "canModifyContentRestriction": { + "type": "boolean" + }, + "canModifyEditorContentRestriction": { + "type": "boolean" + }, + "canModifyLabels": { + "type": "boolean" + }, + "canModifyOwnerContentRestriction": { + "type": "boolean" + }, + "canMoveChildrenOutOfDrive": { + "type": "boolean" + }, + "canMoveChildrenOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinDrive": { + "type": "boolean" + }, + "canMoveChildrenWithinTeamDrive": { + "type": "boolean" + }, + "canMoveItemIntoTeamDrive": { + "type": "boolean" + }, + "canMoveItemOutOfDrive": { + "type": "boolean" + }, + "canMoveItemOutOfTeamDrive": { + "type": "boolean" + }, + "canMoveItemWithinDrive": { + "type": "boolean" + }, + "canMoveItemWithinTeamDrive": { + "type": "boolean" + }, + "canMoveTeamDriveItem": { + "type": "boolean" + }, + "canReadDrive": { + "type": "boolean" + }, + "canReadLabels": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canReadTeamDrive": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRemoveContentRestriction": { + "type": "boolean" + }, + "canRemoveMyDriveParent": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canStartApproval": { + "type": "boolean" + }, + "canTrash": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + }, + "canUntrash": { + "type": "boolean" + } + }, + "type": "object" + }, + "clientEncryptionDetails": { + "properties": { + "decryptionMetadata": { + "properties": { + "aes256GcmChunkSize": { + "type": "string" + }, + "encryptionResourceKeyHash": { + "type": "string" + }, + "jwt": { + "type": "string" + }, + "kaclsId": { + "type": "string" + }, + "kaclsName": { + "type": "string" + }, + "keyFormat": { + "type": "string" + }, + "wrappedKey": { + "type": "string" + } + }, + "type": "object" + }, + "encryptionState": { + "type": "string" + } + }, + "type": "object" + }, + "contentHints": { + "properties": { + "indexableText": { + "type": "string" + }, + "thumbnail": { + "properties": { + "image": { + "type": "string" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "contentRestrictions": { + "items": { + "properties": { + "ownerRestricted": { + "type": "boolean" + }, + "readOnly": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "restrictingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "restrictionTime": { + "type": "string" + }, + "systemRestricted": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "createdTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "downloadRestrictions": { + "properties": { + "effectiveDownloadRestrictionWithContext": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "itemDownloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "driveId": { + "type": "string" + }, + "explicitlyTrashed": { + "type": "boolean" + }, + "exportLinks": { + "type": "object" + }, + "fileExtension": { + "type": "string" + }, + "folderColorRgb": { + "type": "string" + }, + "fullFileExtension": { + "type": "string" + }, + "hasAugmentedPermissions": { + "type": "boolean" + }, + "hasThumbnail": { + "type": "boolean" + }, + "headRevisionId": { + "type": "string" + }, + "iconLink": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageMediaMetadata": { + "properties": { + "aperture": { + "type": "number" + }, + "cameraMake": { + "type": "string" + }, + "cameraModel": { + "type": "string" + }, + "colorSpace": { + "type": "string" + }, + "exposureBias": { + "type": "number" + }, + "exposureMode": { + "type": "string" + }, + "exposureTime": { + "type": "number" + }, + "flashUsed": { + "type": "boolean" + }, + "focalLength": { + "type": "number" + }, + "height": { + "type": "integer" + }, + "isoSpeed": { + "type": "integer" + }, + "lens": { + "type": "string" + }, + "location": { + "properties": { + "altitude": { + "type": "number" + }, + "latitude": { + "type": "number" + }, + "longitude": { + "type": "number" + } + }, + "type": "object" + }, + "maxApertureValue": { + "type": "number" + }, + "meteringMode": { + "type": "string" + }, + "rotation": { + "type": "integer" + }, + "sensor": { + "type": "string" + }, + "subjectDistance": { + "type": "integer" + }, + "time": { + "type": "string" + }, + "whiteBalance": { + "type": "string" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "isAppAuthorized": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "labelInfo": { + "properties": { + "labels": { + "items": { + "properties": { + "fields": { + "type": "object" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "revisionId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "lastModifyingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "linkShareMetadata": { + "properties": { + "securityUpdateEligible": { + "type": "boolean" + }, + "securityUpdateEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "md5Checksum": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modifiedByMe": { + "type": "boolean" + }, + "modifiedByMeTime": { + "type": "string" + }, + "modifiedTime": { + "type": "string" + }, + "name": { + "type": "string" + }, + "originalFilename": { + "type": "string" + }, + "ownedByMe": { + "type": "boolean" + }, + "owners": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "parents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissionIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "permissions": { + "items": { + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "type": "object" + }, + "quotaBytesUsed": { + "type": "string" + }, + "resourceKey": { + "type": "string" + }, + "sha1Checksum": { + "type": "string" + }, + "sha256Checksum": { + "type": "string" + }, + "shared": { + "type": "boolean" + }, + "sharedWithMeTime": { + "type": "string" + }, + "sharingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "shortcutDetails": { + "properties": { + "targetId": { + "type": "string" + }, + "targetMimeType": { + "type": "string" + }, + "targetResourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "type": "string" + }, + "spaces": { + "items": { + "type": "string" + }, + "type": "array" + }, + "starred": { + "type": "boolean" + }, + "teamDriveId": { + "type": "string" + }, + "thumbnailLink": { + "type": "string" + }, + "thumbnailVersion": { + "type": "string" + }, + "trashed": { + "type": "boolean" + }, + "trashedTime": { + "type": "string" + }, + "trashingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "version": { + "type": "string" + }, + "videoMediaMetadata": { + "properties": { + "durationMillis": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "viewedByMe": { + "type": "boolean" + }, + "viewedByMeTime": { + "type": "string" + }, + "viewersCanCopyContent": { + "type": "boolean" + }, + "webContentLink": { + "type": "string" + }, + "webViewLink": { + "type": "string" + }, + "writersCanShare": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
drive.files.watch10 fields changed- added
Input schema / properties / acknowledgeAbuse / defaultAdded value: +"false" - changed
Input schema / properties / acknowledgeAbuse / descriptionPrevious value: -"Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when the `alt` parameter is set to `medi"New value: +"[query parameter] Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when the `alt` parameter is set to `medi" - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - changed
Input schema / properties / includeLabels / descriptionPrevious value: -"A comma-separated list of IDs of labels to include in the `labelInfo` part of the response."New value: +"[query parameter] A comma-separated list of IDs of labels to include in the `labelInfo` part of the response." - changed
Input schema / properties / includePermissionsForView / descriptionPrevious value: -"Specifies which additional view's permissions to include in the response. Only `published` is supported."New value: +"[query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported." - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "address": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "params": { + "type": "object" + }, + "payload": { + "type": "boolean" + }, + "resourceId": { + "type": "string" + }, + "resourceUri": { + "type": "string" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.operations.get2 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"The name of the operation resource."New value: +"[URL path segment] The name of the operation resource." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "done": { + "type": "boolean" + }, + "error": { + "properties": { + "code": { + "type": "integer" + }, + "details": { + "items": { + "type": "object" + }, + "type": "array" + }, + "message": { + "type": "string" + } + }, + "type": "object" + }, + "metadata": { + "type": "object" + }, + "name": { + "type": "string" + }, + "response": { + "type": "object" + } + }, + "type": "object" +}
- Changed
drive.permissions.create18 fields changed- changed
Input schema / properties / emailMessage / descriptionPrevious value: -"A plain text custom message to include in the notification email."New value: +"[query parameter] A plain text custom message to include in the notification email." - added
Input schema / properties / enforceExpansiveAccess / defaultAdded value: +"false" - changed
Input schema / properties / enforceExpansiveAccess / descriptionPrevious value: -"Deprecated: All requests use the expansive access rules."New value: +"[query parameter] Deprecated: All requests use the expansive access rules." - added
Input schema / properties / enforceSingleParent / defaultAdded value: +"false" - changed
Input schema / properties / enforceSingleParent / descriptionPrevious value: -"Deprecated: See `moveToNewOwnersRoot` for details."New value: +"[query parameter] Deprecated: See `moveToNewOwnersRoot` for details." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file or shared drive."New value: +"[URL path segment] The ID of the file or shared drive." - added
Input schema / properties / moveToNewOwnersRoot / defaultAdded value: +"false" - changed
Input schema / properties / moveToNewOwnersRoot / descriptionPrevious value: -"This parameter only takes effect if the item isn't in a shared drive and the request is attempting to transfer the ownership of the item. If set to `true`, the "New value: +"[query parameter] This parameter only takes effect if the item isn't in a shared drive and the request is attempting to transfer the ownership of the item. If set to `true`, the " - changed
Input schema / properties / sendNotificationEmail / descriptionPrevious value: -"Whether to send a notification email when sharing to users or groups. This defaults to `true` for users and groups, and is not allowed for other requests. It mu"New value: +"[query parameter] Whether to send a notification email when sharing to users or groups. This defaults to `true` for users and groups, and is not allowed for other requests. It mu" - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - added
Input schema / properties / transferOwnership / defaultAdded value: +"false" - changed
Input schema / properties / transferOwnership / descriptionPrevious value: -"Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side ef"New value: +"[query parameter] Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side ef" - added
Input schema / properties / useDomainAdminAccess / defaultAdded value: +"false" - changed
Input schema / properties / useDomainAdminAccess / descriptionPrevious value: -"Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file "New value: +"[query parameter] Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file " - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.permissions.delete10 fields changed- added
Input schema / properties / enforceExpansiveAccess / defaultAdded value: +"false" - changed
Input schema / properties / enforceExpansiveAccess / descriptionPrevious value: -"Deprecated: All requests use the expansive access rules."New value: +"[query parameter] Deprecated: All requests use the expansive access rules." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file or shared drive."New value: +"[URL path segment] The ID of the file or shared drive." - changed
Input schema / properties / permissionId / descriptionPrevious value: -"The ID of the permission."New value: +"[URL path segment] The ID of the permission." - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - added
Input schema / properties / useDomainAdminAccess / defaultAdded value: +"false" - changed
Input schema / properties / useDomainAdminAccess / descriptionPrevious value: -"Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file "New value: +"[query parameter] Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file "
- Changed
drive.permissions.get9 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - changed
Input schema / properties / permissionId / descriptionPrevious value: -"The ID of the permission."New value: +"[URL path segment] The ID of the permission." - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - added
Input schema / properties / useDomainAdminAccess / defaultAdded value: +"false" - changed
Input schema / properties / useDomainAdminAccess / descriptionPrevious value: -"Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file "New value: +"[query parameter] Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file " - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.permissions.list14 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file or shared drive."New value: +"[URL path segment] The ID of the file or shared drive." - changed
Input schema / properties / includePermissionsForView / descriptionPrevious value: -"Specifies which additional view's permissions to include in the response. Only `published` is supported."New value: +"[query parameter] Specifies which additional view's permissions to include in the response. Only `published` is supported." - changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of permissions to return. The service may return fewer than this value. If unspecified, at most 100 permissions will be returned for shared d"New value: +"[query parameter] The maximum number of permissions to return. The service may return fewer than this value. If unspecified, at most 100 permissions will be returned for shared d" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - added
Input schema / properties / pageSize / maximumAdded value: +100 - added
Input schema / properties / pageSize / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response."New value: +"[query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response." - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - added
Input schema / properties / useDomainAdminAccess / defaultAdded value: +"false" - changed
Input schema / properties / useDomainAdminAccess / descriptionPrevious value: -"Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file "New value: +"[query parameter] Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file " - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + }, + "permissions": { + "items": { + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
drive.permissions.update15 fields changed- added
Input schema / properties / enforceExpansiveAccess / defaultAdded value: +"false" - changed
Input schema / properties / enforceExpansiveAccess / descriptionPrevious value: -"Deprecated: All requests use the expansive access rules."New value: +"[query parameter] Deprecated: All requests use the expansive access rules." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file or shared drive."New value: +"[URL path segment] The ID of the file or shared drive." - changed
Input schema / properties / permissionId / descriptionPrevious value: -"The ID of the permission."New value: +"[URL path segment] The ID of the permission." - added
Input schema / properties / removeExpiration / defaultAdded value: +"false" - changed
Input schema / properties / removeExpiration / descriptionPrevious value: -"Whether to remove the expiration date."New value: +"[query parameter] Whether to remove the expiration date." - added
Input schema / properties / supportsAllDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsAllDrives / descriptionPrevious value: -"Whether the requesting application supports both My Drives and shared drives."New value: +"[query parameter] Whether the requesting application supports both My Drives and shared drives." - added
Input schema / properties / supportsTeamDrives / defaultAdded value: +"false" - changed
Input schema / properties / supportsTeamDrives / descriptionPrevious value: -"Deprecated: Use `supportsAllDrives` instead."New value: +"[query parameter] Deprecated: Use `supportsAllDrives` instead." - added
Input schema / properties / transferOwnership / defaultAdded value: +"false" - changed
Input schema / properties / transferOwnership / descriptionPrevious value: -"Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side ef"New value: +"[query parameter] Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side ef" - added
Input schema / properties / useDomainAdminAccess / defaultAdded value: +"false" - changed
Input schema / properties / useDomainAdminAccess / descriptionPrevious value: -"Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file "New value: +"[query parameter] Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file " - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "allowFileDiscovery": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "expirationTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inheritedPermissionsDisabled": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "pendingOwner": { + "type": "boolean" + }, + "permissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "permissionType": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photoLink": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionDetails": { + "items": { + "properties": { + "inherited": { + "type": "boolean" + }, + "inheritedFrom": { + "type": "string" + }, + "role": { + "type": "string" + }, + "teamDrivePermissionType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "view": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.replies.create3 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"The ID of the comment."New value: +"[URL path segment] The ID of the comment." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "action": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.replies.delete3 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"The ID of the comment."New value: +"[URL path segment] The ID of the comment." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - changed
Input schema / properties / replyId / descriptionPrevious value: -"The ID of the reply."New value: +"[URL path segment] The ID of the reply."
- Changed
drive.replies.get6 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"The ID of the comment."New value: +"[URL path segment] The ID of the comment." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - added
Input schema / properties / includeDeleted / defaultAdded value: +"false" - changed
Input schema / properties / includeDeleted / descriptionPrevious value: -"Whether to return deleted replies. Deleted replies don't include their original content."New value: +"[query parameter] Whether to return deleted replies. Deleted replies don't include their original content." - changed
Input schema / properties / replyId / descriptionPrevious value: -"The ID of the reply."New value: +"[URL path segment] The ID of the reply." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "action": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.replies.list11 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"The ID of the comment."New value: +"[URL path segment] The ID of the comment." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - added
Input schema / properties / includeDeleted / defaultAdded value: +"false" - changed
Input schema / properties / includeDeleted / descriptionPrevious value: -"Whether to include deleted replies. Deleted replies don't include their original content."New value: +"[query parameter] Whether to include deleted replies. Deleted replies don't include their original content." - added
Input schema / properties / pageSize / defaultAdded value: +"20" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of replies to return. The service may return fewer than this value. If unspecified, at most 20 replies will be returned. The maximum value is"New value: +"[query parameter] The maximum number of replies to return. The service may return fewer than this value. If unspecified, at most 20 replies will be returned. The maximum value is" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - added
Input schema / properties / pageSize / maximumAdded value: +100 - added
Input schema / properties / pageSize / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response."New value: +"[query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "action": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
drive.replies.update4 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"The ID of the comment."New value: +"[URL path segment] The ID of the comment." - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - changed
Input schema / properties / replyId / descriptionPrevious value: -"The ID of the reply."New value: +"[URL path segment] The ID of the reply." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "action": { + "type": "string" + }, + "assigneeEmailAddress": { + "type": "string" + }, + "author": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "content": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "htmlContent": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "mentionedEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "modifiedTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.revisions.delete2 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - changed
Input schema / properties / revisionId / descriptionPrevious value: -"The ID of the revision."New value: +"[URL path segment] The ID of the revision."
- Changed
drive.revisions.get5 fields changed- added
Input schema / properties / acknowledgeAbuse / defaultAdded value: +"false" - changed
Input schema / properties / acknowledgeAbuse / descriptionPrevious value: -"Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when the `alt` parameter is set to `medi"New value: +"[query parameter] Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when the `alt` parameter is set to `medi" - changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - changed
Input schema / properties / revisionId / descriptionPrevious value: -"The ID of the revision."New value: +"[URL path segment] The ID of the revision." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "exportLinks": { + "type": "object" + }, + "id": { + "type": "string" + }, + "keepForever": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "lastModifyingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "md5Checksum": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modifiedTime": { + "type": "string" + }, + "originalFilename": { + "type": "string" + }, + "publishAuto": { + "type": "boolean" + }, + "published": { + "type": "boolean" + }, + "publishedLink": { + "type": "string" + }, + "publishedOutsideDomain": { + "type": "boolean" + }, + "size": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.revisions.list8 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - added
Input schema / properties / pageSize / defaultAdded value: +"200" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of revisions to return. The service may return fewer than this value. If unspecified, at most 200 revisions will be returned. The maximum val"New value: +"[query parameter] The maximum number of revisions to return. The service may return fewer than this value. If unspecified, at most 200 revisions will be returned. The maximum val" - added
Input schema / properties / pageSize / formatAdded value: +"int32" - added
Input schema / properties / pageSize / maximumAdded value: +1000 - added
Input schema / properties / pageSize / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response."New value: +"[query parameter] The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + }, + "revisions": { + "items": { + "properties": { + "exportLinks": { + "type": "object" + }, + "id": { + "type": "string" + }, + "keepForever": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "lastModifyingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "md5Checksum": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modifiedTime": { + "type": "string" + }, + "originalFilename": { + "type": "string" + }, + "publishAuto": { + "type": "boolean" + }, + "published": { + "type": "boolean" + }, + "publishedLink": { + "type": "string" + }, + "publishedOutsideDomain": { + "type": "boolean" + }, + "size": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
drive.revisions.update3 fields changed- changed
Input schema / properties / fileId / descriptionPrevious value: -"The ID of the file."New value: +"[URL path segment] The ID of the file." - changed
Input schema / properties / revisionId / descriptionPrevious value: -"The ID of the revision."New value: +"[URL path segment] The ID of the revision." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "exportLinks": { + "type": "object" + }, + "id": { + "type": "string" + }, + "keepForever": { + "type": "boolean" + }, + "kind": { + "type": "string" + }, + "lastModifyingUser": { + "properties": { + "displayName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "permissionId": { + "type": "string" + }, + "photoLink": { + "type": "string" + } + }, + "type": "object" + }, + "md5Checksum": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "modifiedTime": { + "type": "string" + }, + "originalFilename": { + "type": "string" + }, + "publishAuto": { + "type": "boolean" + }, + "published": { + "type": "boolean" + }, + "publishedLink": { + "type": "string" + }, + "publishedOutsideDomain": { + "type": "boolean" + }, + "size": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.teamdrives.create2 fields changed- changed
Input schema / properties / requestId / descriptionPrevious value: -"Required. An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a Team Drive. A repeated request by the same us"New value: +"[query parameter] Required. An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a Team Drive. A repeated request by the same us" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canChangeTeamDriveBackground": { + "type": "boolean" + }, + "canChangeTeamMembersOnlyRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteTeamDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameTeamDrive": { + "type": "boolean" + }, + "canResetTeamDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + }, + "teamMembersOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.teamdrives.delete1 field changed- changed
Input schema / properties / teamDriveId / descriptionPrevious value: -"The ID of the Team Drive"New value: +"[URL path segment] The ID of the Team Drive"
- Changed
drive.teamdrives.get4 fields changed- changed
Input schema / properties / teamDriveId / descriptionPrevious value: -"The ID of the Team Drive"New value: +"[URL path segment] The ID of the Team Drive" - added
Input schema / properties / useDomainAdminAccess / defaultAdded value: +"false" - changed
Input schema / properties / useDomainAdminAccess / descriptionPrevious value: -"Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the T"New value: +"[query parameter] Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the T" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canChangeTeamDriveBackground": { + "type": "boolean" + }, + "canChangeTeamMembersOnlyRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteTeamDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameTeamDrive": { + "type": "boolean" + }, + "canResetTeamDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + }, + "teamMembersOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
drive.teamdrives.list10 fields changed- added
Input schema / properties / pageSize / defaultAdded value: +"10" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"Maximum number of Team Drives to return."New value: +"[query parameter] Maximum number of Team Drives to return." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - added
Input schema / properties / pageSize / maximumAdded value: +100 - added
Input schema / properties / pageSize / minimumAdded value: +1 - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Page token for Team Drives."New value: +"[query parameter] Page token for Team Drives." - changed
Input schema / properties / q / descriptionPrevious value: -"Query string for searching Team Drives."New value: +"[query parameter] Query string for searching Team Drives." - added
Input schema / properties / useDomainAdminAccess / defaultAdded value: +"false" - changed
Input schema / properties / useDomainAdminAccess / descriptionPrevious value: -"Issue the request as a domain administrator; if set to true, then all Team Drives of the domain in which the requester is an administrator are returned."New value: +"[query parameter] Issue the request as a domain administrator; if set to true, then all Team Drives of the domain in which the requester is an administrator are returned." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + }, + "teamDrives": { + "items": { + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canChangeTeamDriveBackground": { + "type": "boolean" + }, + "canChangeTeamMembersOnlyRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteTeamDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameTeamDrive": { + "type": "boolean" + }, + "canResetTeamDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + }, + "teamMembersOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
drive.teamdrives.update4 fields changed- changed
Input schema / properties / teamDriveId / descriptionPrevious value: -"The ID of the Team Drive"New value: +"[URL path segment] The ID of the Team Drive" - added
Input schema / properties / useDomainAdminAccess / defaultAdded value: +"false" - changed
Input schema / properties / useDomainAdminAccess / descriptionPrevious value: -"Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the T"New value: +"[query parameter] Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the T" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "backgroundImageFile": { + "properties": { + "id": { + "type": "string" + }, + "width": { + "type": "number" + }, + "xCoordinate": { + "type": "number" + }, + "yCoordinate": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "type": "string" + }, + "capabilities": { + "properties": { + "canAddChildren": { + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "type": "boolean" + }, + "canChangeDownloadRestriction": { + "type": "boolean" + }, + "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": { + "type": "boolean" + }, + "canChangeTeamDriveBackground": { + "type": "boolean" + }, + "canChangeTeamMembersOnlyRestriction": { + "type": "boolean" + }, + "canComment": { + "type": "boolean" + }, + "canCopy": { + "type": "boolean" + }, + "canDeleteChildren": { + "type": "boolean" + }, + "canDeleteTeamDrive": { + "type": "boolean" + }, + "canDownload": { + "type": "boolean" + }, + "canEdit": { + "type": "boolean" + }, + "canListChildren": { + "type": "boolean" + }, + "canManageMembers": { + "type": "boolean" + }, + "canReadRevisions": { + "type": "boolean" + }, + "canRemoveChildren": { + "type": "boolean" + }, + "canRename": { + "type": "boolean" + }, + "canRenameTeamDrive": { + "type": "boolean" + }, + "canResetTeamDriveRestrictions": { + "type": "boolean" + }, + "canShare": { + "type": "boolean" + }, + "canTrashChildren": { + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "type": "string" + }, + "createdTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "orgUnitId": { + "type": "string" + }, + "restrictions": { + "properties": { + "adminManagedRestrictions": { + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "type": "boolean" + }, + "domainUsersOnly": { + "type": "boolean" + }, + "downloadRestriction": { + "properties": { + "restrictedForReaders": { + "type": "boolean" + }, + "restrictedForWriters": { + "type": "boolean" + } + }, + "type": "object" + }, + "sharingFoldersRequiresOrganizerPermission": { + "type": "boolean" + }, + "teamMembersOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
forms.forms.batchUpdate2 fields changed- changed
Input schema / properties / formId / descriptionPrevious value: -"Required. The form ID."New value: +"[URL path segment] Required. The form ID." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "form": { + "properties": { + "formId": { + "type": "string" + }, + "info": { + "properties": { + "description": { + "type": "string" + }, + "documentTitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "items": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "imageItem": { + "properties": { + "image": { + "type": "object" + } + }, + "type": "object" + }, + "itemId": { + "type": "string" + }, + "pageBreakItem": { + "type": "object" + }, + "questionGroupItem": { + "properties": { + "grid": { + "type": "object" + }, + "image": { + "type": "object" + }, + "questions": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "questionItem": { + "properties": { + "image": { + "type": "object" + }, + "question": { + "type": "object" + } + }, + "type": "object" + }, + "textItem": { + "type": "object" + }, + "title": { + "type": "string" + }, + "videoItem": { + "properties": { + "caption": { + "type": "string" + }, + "video": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "linkedSheetId": { + "type": "string" + }, + "publishSettings": { + "properties": { + "publishState": { + "properties": { + "isAcceptingResponses": { + "type": "boolean" + }, + "isPublished": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "responderUri": { + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "settings": { + "properties": { + "emailCollectionType": { + "enum": [ + "EMAIL_COLLECTION_TYPE_UNSPECIFIED", + "DO_NOT_COLLECT", + "VERIFIED", + "RESPONDER_INPUT" + ], + "type": "string" + }, + "quizSettings": { + "properties": { + "isQuiz": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "replies": { + "items": { + "properties": { + "createItem": { + "properties": { + "itemId": { + "type": "string" + }, + "questionId": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "writeControl": { + "properties": { + "requiredRevisionId": { + "type": "string" + }, + "targetRevisionId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
forms.forms.create2 fields changed- changed
Input schema / properties / unpublished / descriptionPrevious value: -"Optional. Whether the form is unpublished. If set to `true`, the form doesn't accept responses. If set to `false` or unset, the form is published and accepts re"New value: +"[query parameter] Optional. Whether the form is unpublished. If set to `true`, the form doesn't accept responses. If set to `false` or unset, the form is published and accepts re" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "formId": { + "type": "string" + }, + "info": { + "properties": { + "description": { + "type": "string" + }, + "documentTitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "items": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "imageItem": { + "properties": { + "image": { + "properties": { + "altText": { + "type": "string" + }, + "contentUri": { + "type": "string" + }, + "properties": { + "type": "object" + }, + "sourceUri": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "itemId": { + "type": "string" + }, + "pageBreakItem": { + "type": "object" + }, + "questionGroupItem": { + "properties": { + "grid": { + "properties": { + "columns": { + "type": "object" + }, + "shuffleQuestions": { + "type": "boolean" + } + }, + "type": "object" + }, + "image": { + "properties": { + "altText": { + "type": "string" + }, + "contentUri": { + "type": "string" + }, + "properties": { + "type": "object" + }, + "sourceUri": { + "type": "string" + } + }, + "type": "object" + }, + "questions": { + "items": { + "properties": { + "choiceQuestion": { + "type": "object" + }, + "dateQuestion": { + "type": "object" + }, + "fileUploadQuestion": { + "type": "object" + }, + "grading": { + "type": "object" + }, + "questionId": { + "type": "string" + }, + "ratingQuestion": { + "type": "object" + }, + "required": { + "type": "boolean" + }, + "rowQuestion": { + "type": "object" + }, + "scaleQuestion": { + "type": "object" + }, + "textQuestion": { + "type": "object" + }, + "timeQuestion": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "questionItem": { + "properties": { + "image": { + "properties": { + "altText": { + "type": "string" + }, + "contentUri": { + "type": "string" + }, + "properties": { + "type": "object" + }, + "sourceUri": { + "type": "string" + } + }, + "type": "object" + }, + "question": { + "properties": { + "choiceQuestion": { + "type": "object" + }, + "dateQuestion": { + "type": "object" + }, + "fileUploadQuestion": { + "type": "object" + }, + "grading": { + "type": "object" + }, + "questionId": { + "type": "string" + }, + "ratingQuestion": { + "type": "object" + }, + "required": { + "type": "boolean" + }, + "rowQuestion": { + "type": "object" + }, + "scaleQuestion": { + "type": "object" + }, + "textQuestion": { + "type": "object" + }, + "timeQuestion": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "textItem": { + "type": "object" + }, + "title": { + "type": "string" + }, + "videoItem": { + "properties": { + "caption": { + "type": "string" + }, + "video": { + "properties": { + "properties": { + "type": "object" + }, + "youtubeUri": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "linkedSheetId": { + "type": "string" + }, + "publishSettings": { + "properties": { + "publishState": { + "properties": { + "isAcceptingResponses": { + "type": "boolean" + }, + "isPublished": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "responderUri": { + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "settings": { + "properties": { + "emailCollectionType": { + "enum": [ + "EMAIL_COLLECTION_TYPE_UNSPECIFIED", + "DO_NOT_COLLECT", + "VERIFIED", + "RESPONDER_INPUT" + ], + "type": "string" + }, + "quizSettings": { + "properties": { + "isQuiz": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
forms.forms.get2 fields changed- changed
Input schema / properties / formId / descriptionPrevious value: -"Required. The form ID."New value: +"[URL path segment] Required. The form ID." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "formId": { + "type": "string" + }, + "info": { + "properties": { + "description": { + "type": "string" + }, + "documentTitle": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "items": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "imageItem": { + "properties": { + "image": { + "properties": { + "altText": { + "type": "string" + }, + "contentUri": { + "type": "string" + }, + "properties": { + "type": "object" + }, + "sourceUri": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "itemId": { + "type": "string" + }, + "pageBreakItem": { + "type": "object" + }, + "questionGroupItem": { + "properties": { + "grid": { + "properties": { + "columns": { + "type": "object" + }, + "shuffleQuestions": { + "type": "boolean" + } + }, + "type": "object" + }, + "image": { + "properties": { + "altText": { + "type": "string" + }, + "contentUri": { + "type": "string" + }, + "properties": { + "type": "object" + }, + "sourceUri": { + "type": "string" + } + }, + "type": "object" + }, + "questions": { + "items": { + "properties": { + "choiceQuestion": { + "type": "object" + }, + "dateQuestion": { + "type": "object" + }, + "fileUploadQuestion": { + "type": "object" + }, + "grading": { + "type": "object" + }, + "questionId": { + "type": "string" + }, + "ratingQuestion": { + "type": "object" + }, + "required": { + "type": "boolean" + }, + "rowQuestion": { + "type": "object" + }, + "scaleQuestion": { + "type": "object" + }, + "textQuestion": { + "type": "object" + }, + "timeQuestion": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "questionItem": { + "properties": { + "image": { + "properties": { + "altText": { + "type": "string" + }, + "contentUri": { + "type": "string" + }, + "properties": { + "type": "object" + }, + "sourceUri": { + "type": "string" + } + }, + "type": "object" + }, + "question": { + "properties": { + "choiceQuestion": { + "type": "object" + }, + "dateQuestion": { + "type": "object" + }, + "fileUploadQuestion": { + "type": "object" + }, + "grading": { + "type": "object" + }, + "questionId": { + "type": "string" + }, + "ratingQuestion": { + "type": "object" + }, + "required": { + "type": "boolean" + }, + "rowQuestion": { + "type": "object" + }, + "scaleQuestion": { + "type": "object" + }, + "textQuestion": { + "type": "object" + }, + "timeQuestion": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "textItem": { + "type": "object" + }, + "title": { + "type": "string" + }, + "videoItem": { + "properties": { + "caption": { + "type": "string" + }, + "video": { + "properties": { + "properties": { + "type": "object" + }, + "youtubeUri": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "linkedSheetId": { + "type": "string" + }, + "publishSettings": { + "properties": { + "publishState": { + "properties": { + "isAcceptingResponses": { + "type": "boolean" + }, + "isPublished": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "responderUri": { + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "settings": { + "properties": { + "emailCollectionType": { + "enum": [ + "EMAIL_COLLECTION_TYPE_UNSPECIFIED", + "DO_NOT_COLLECT", + "VERIFIED", + "RESPONDER_INPUT" + ], + "type": "string" + }, + "quizSettings": { + "properties": { + "isQuiz": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
forms.forms.responses.get3 fields changed- changed
Input schema / properties / formId / descriptionPrevious value: -"Required. The form ID."New value: +"[URL path segment] Required. The form ID." - changed
Input schema / properties / responseId / descriptionPrevious value: -"Required. The response ID within the form."New value: +"[URL path segment] Required. The response ID within the form." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "answers": { + "type": "object" + }, + "createTime": { + "type": "string" + }, + "formId": { + "type": "string" + }, + "lastSubmittedTime": { + "type": "string" + }, + "respondentEmail": { + "type": "string" + }, + "responseId": { + "type": "string" + }, + "totalScore": { + "type": "number" + } + }, + "type": "object" +}
- Changed
forms.forms.responses.list6 fields changed- changed
Input schema / properties / filter / descriptionPrevious value: -"Which form responses to return. Currently, the only supported filters are: * timestamp > *N* which means to get all form responses submitted after (but not at) "New value: +"[query parameter] Which form responses to return. Currently, the only supported filters are: * timestamp > *N* which means to get all form responses submitted after (but not at) " - changed
Input schema / properties / formId / descriptionPrevious value: -"Required. ID of the Form whose responses to list."New value: +"[URL path segment] Required. ID of the Form whose responses to list." - changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of responses to return. The service may return fewer than this value. If unspecified or zero, at most 5000 responses are returned."New value: +"[query parameter] The maximum number of responses to return. The service may return fewer than this value. If unspecified or zero, at most 5000 responses are returned." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"A page token returned by a previous list response. If this field is set, the form and the values of the filter must be the same as for the original request."New value: +"[query parameter] A page token returned by a previous list response. If this field is set, the form and the values of the filter must be the same as for the original request." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "responses": { + "items": { + "properties": { + "answers": { + "type": "object" + }, + "createTime": { + "type": "string" + }, + "formId": { + "type": "string" + }, + "lastSubmittedTime": { + "type": "string" + }, + "respondentEmail": { + "type": "string" + }, + "responseId": { + "type": "string" + }, + "totalScore": { + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
forms.forms.setPublishSettings2 fields changed- changed
Input schema / properties / formId / descriptionPrevious value: -"Required. The ID of the form. You can get the id from Form.form_id field."New value: +"[URL path segment] Required. The ID of the form. You can get the id from Form.form_id field." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "formId": { + "type": "string" + }, + "publishSettings": { + "properties": { + "publishState": { + "properties": { + "isAcceptingResponses": { + "type": "boolean" + }, + "isPublished": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
forms.forms.watches.create2 fields changed- changed
Input schema / properties / formId / descriptionPrevious value: -"Required. ID of the Form to watch."New value: +"[URL path segment] Required. ID of the Form to watch." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "createTime": { + "type": "string" + }, + "errorType": { + "enum": [ + "ERROR_TYPE_UNSPECIFIED", + "PROJECT_NOT_AUTHORIZED", + "NO_USER_ACCESS", + "OTHER_ERRORS" + ], + "type": "string" + }, + "eventType": { + "enum": [ + "EVENT_TYPE_UNSPECIFIED", + "SCHEMA", + "RESPONSES" + ], + "type": "string" + }, + "expireTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "SUSPENDED" + ], + "type": "string" + }, + "target": { + "properties": { + "topic": { + "properties": { + "topicName": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
forms.forms.watches.delete3 fields changed- changed
Input schema / properties / formId / descriptionPrevious value: -"Required. The ID of the Form."New value: +"[URL path segment] Required. The ID of the Form." - changed
Input schema / properties / watchId / descriptionPrevious value: -"Required. The ID of the Watch to delete."New value: +"[URL path segment] Required. The ID of the Watch to delete." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
forms.forms.watches.list2 fields changed- changed
Input schema / properties / formId / descriptionPrevious value: -"Required. ID of the Form whose watches to list."New value: +"[URL path segment] Required. ID of the Form whose watches to list." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "watches": { + "items": { + "properties": { + "createTime": { + "type": "string" + }, + "errorType": { + "enum": [ + "ERROR_TYPE_UNSPECIFIED", + "PROJECT_NOT_AUTHORIZED", + "NO_USER_ACCESS", + "OTHER_ERRORS" + ], + "type": "string" + }, + "eventType": { + "enum": [ + "EVENT_TYPE_UNSPECIFIED", + "SCHEMA", + "RESPONSES" + ], + "type": "string" + }, + "expireTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "SUSPENDED" + ], + "type": "string" + }, + "target": { + "properties": { + "topic": { + "properties": { + "topicName": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
forms.forms.watches.renew3 fields changed- changed
Input schema / properties / formId / descriptionPrevious value: -"Required. The ID of the Form."New value: +"[URL path segment] Required. The ID of the Form." - changed
Input schema / properties / watchId / descriptionPrevious value: -"Required. The ID of the Watch to renew."New value: +"[URL path segment] Required. The ID of the Watch to renew." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "createTime": { + "type": "string" + }, + "errorType": { + "enum": [ + "ERROR_TYPE_UNSPECIFIED", + "PROJECT_NOT_AUTHORIZED", + "NO_USER_ACCESS", + "OTHER_ERRORS" + ], + "type": "string" + }, + "eventType": { + "enum": [ + "EVENT_TYPE_UNSPECIFIED", + "SCHEMA", + "RESPONSES" + ], + "type": "string" + }, + "expireTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "state": { + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "SUSPENDED" + ], + "type": "string" + }, + "target": { + "properties": { + "topic": { + "properties": { + "topicName": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
gmail.users.drafts.create3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "id": { + "type": "string" + }, + "message": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
gmail.users.drafts.delete3 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the draft to delete."New value: +"[URL path segment] The ID of the draft to delete." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user."
- Changed
gmail.users.drafts.get6 fields changed- added
Input schema / properties / format / defaultAdded value: +"full" - changed
Input schema / properties / format / descriptionPrevious value: -"The format to return the draft in."New value: +"[query parameter] The format to return the draft in. Values: `minimal` = Returns only email message ID and labels; does not return the email headers, body, or payload.; `full` = Returns the full email message data with body content parsed in the `payload` field; the `raw` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.; `raw` = Returns the full email message data with body content in the `raw` field as a base64url encoded string; the `payload` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.; `metadata` = Returns only email message ID, labels, and email headers.." - changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the draft to retrieve."New value: +"[URL path segment] The ID of the draft to retrieve." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "id": { + "type": "string" + }, + "message": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
gmail.users.drafts.list10 fields changed- added
Input schema / properties / includeSpamTrash / defaultAdded value: +"false" - changed
Input schema / properties / includeSpamTrash / descriptionPrevious value: -"Include drafts from `SPAM` and `TRASH` in the results."New value: +"[query parameter] Include drafts from `SPAM` and `TRASH` in the results." - added
Input schema / properties / maxResults / defaultAdded value: +"100" - changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of drafts to return. This field defaults to 100. The maximum allowed value for this field is 500."New value: +"[query parameter] Maximum number of drafts to return. This field defaults to 100. The maximum allowed value for this field is 500." - added
Input schema / properties / maxResults / formatAdded value: +"uint32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Page token to retrieve a specific page of results in the list."New value: +"[query parameter] Page token to retrieve a specific page of results in the list." - changed
Input schema / properties / q / descriptionPrevious value: -"Only return draft messages matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822"New value: +"[query parameter] Only return draft messages matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822" - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "drafts": { + "items": { + "properties": { + "id": { + "type": "string" + }, + "message": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + }, + "resultSizeEstimate": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
gmail.users.drafts.send3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.drafts.update4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the draft to update."New value: +"[URL path segment] The ID of the draft to update." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "id": { + "type": "string" + }, + "message": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
gmail.users.getProfile3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "emailAddress": { + "type": "string" + }, + "historyId": { + "type": "string" + }, + "messagesTotal": { + "type": "integer" + }, + "threadsTotal": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
gmail.users.history.list11 fields changed- changed
Input schema / properties / historyTypes / items / descriptionPrevious value: -"History types to be returned by the function"New value: +"[query parameter] History types to be returned by the function Values: `messageAdded` = ; `messageDeleted` = ; `labelAdded` = ; `labelRemoved` = ." - changed
Input schema / properties / labelId / descriptionPrevious value: -"Only return messages with a label matching the ID."New value: +"[query parameter] Only return messages with a label matching the ID." - added
Input schema / properties / maxResults / defaultAdded value: +"100" - changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of history records to return. This field defaults to 100. The maximum allowed value for this field is 500."New value: +"[query parameter] Maximum number of history records to return. This field defaults to 100. The maximum allowed value for this field is 500." - added
Input schema / properties / maxResults / formatAdded value: +"uint32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Page token to retrieve a specific page of results in the list."New value: +"[query parameter] Page token to retrieve a specific page of results in the list." - changed
Input schema / properties / startHistoryId / descriptionPrevious value: -"Required. Returns history records after the specified `startHistoryId`. The supplied `startHistoryId` should be obtained from the `historyId` of a message, thre"New value: +"[query parameter] Required. Returns history records after the specified `startHistoryId`. The supplied `startHistoryId` should be obtained from the `historyId` of a message, thre" - added
Input schema / properties / startHistoryId / formatAdded value: +"uint64" - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "history": { + "items": { + "properties": { + "id": { + "type": "string" + }, + "labelsAdded": { + "items": { + "properties": { + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "message": { + "properties": { + "classificationLabelValues": { + "items": { + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelsRemoved": { + "items": { + "properties": { + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "message": { + "properties": { + "classificationLabelValues": { + "items": { + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "messages": { + "items": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "messagesAdded": { + "items": { + "properties": { + "message": { + "properties": { + "classificationLabelValues": { + "items": { + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "messagesDeleted": { + "items": { + "properties": { + "message": { + "properties": { + "classificationLabelValues": { + "items": { + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.labels.create3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "color": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "textColor": { + "type": "string" + } + }, + "type": "object" + }, + "id": { + "type": "string" + }, + "labelListVisibility": { + "enum": [ + "labelShow", + "labelShowIfUnread", + "labelHide" + ], + "type": "string" + }, + "messageListVisibility": { + "enum": [ + "show", + "hide" + ], + "type": "string" + }, + "messagesTotal": { + "type": "integer" + }, + "messagesUnread": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "threadsTotal": { + "type": "integer" + }, + "threadsUnread": { + "type": "integer" + }, + "type": { + "enum": [ + "system", + "user" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.labels.delete3 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the label to delete."New value: +"[URL path segment] The ID of the label to delete." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user."
- Changed
gmail.users.labels.get4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the label to retrieve."New value: +"[URL path segment] The ID of the label to retrieve." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "color": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "textColor": { + "type": "string" + } + }, + "type": "object" + }, + "id": { + "type": "string" + }, + "labelListVisibility": { + "enum": [ + "labelShow", + "labelShowIfUnread", + "labelHide" + ], + "type": "string" + }, + "messageListVisibility": { + "enum": [ + "show", + "hide" + ], + "type": "string" + }, + "messagesTotal": { + "type": "integer" + }, + "messagesUnread": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "threadsTotal": { + "type": "integer" + }, + "threadsUnread": { + "type": "integer" + }, + "type": { + "enum": [ + "system", + "user" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.labels.list3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "labels": { + "items": { + "properties": { + "color": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "textColor": { + "type": "string" + } + }, + "type": "object" + }, + "id": { + "type": "string" + }, + "labelListVisibility": { + "enum": [ + "labelShow", + "labelShowIfUnread", + "labelHide" + ], + "type": "string" + }, + "messageListVisibility": { + "enum": [ + "show", + "hide" + ], + "type": "string" + }, + "messagesTotal": { + "type": "integer" + }, + "messagesUnread": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "threadsTotal": { + "type": "integer" + }, + "threadsUnread": { + "type": "integer" + }, + "type": { + "enum": [ + "system", + "user" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.labels.patch4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the label to update."New value: +"[URL path segment] The ID of the label to update." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "color": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "textColor": { + "type": "string" + } + }, + "type": "object" + }, + "id": { + "type": "string" + }, + "labelListVisibility": { + "enum": [ + "labelShow", + "labelShowIfUnread", + "labelHide" + ], + "type": "string" + }, + "messageListVisibility": { + "enum": [ + "show", + "hide" + ], + "type": "string" + }, + "messagesTotal": { + "type": "integer" + }, + "messagesUnread": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "threadsTotal": { + "type": "integer" + }, + "threadsUnread": { + "type": "integer" + }, + "type": { + "enum": [ + "system", + "user" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.labels.update4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the label to update."New value: +"[URL path segment] The ID of the label to update." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "color": { + "properties": { + "backgroundColor": { + "type": "string" + }, + "textColor": { + "type": "string" + } + }, + "type": "object" + }, + "id": { + "type": "string" + }, + "labelListVisibility": { + "enum": [ + "labelShow", + "labelShowIfUnread", + "labelHide" + ], + "type": "string" + }, + "messageListVisibility": { + "enum": [ + "show", + "hide" + ], + "type": "string" + }, + "messagesTotal": { + "type": "integer" + }, + "messagesUnread": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "threadsTotal": { + "type": "integer" + }, + "threadsUnread": { + "type": "integer" + }, + "type": { + "enum": [ + "system", + "user" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.attachments.get5 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the attachment."New value: +"[URL path segment] The ID of the attachment." - changed
Input schema / properties / messageId / descriptionPrevious value: -"The ID of the message containing the attachment."New value: +"[URL path segment] The ID of the message containing the attachment." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.batchDelete2 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user."
- Changed
gmail.users.messages.batchModify2 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user."
- Changed
gmail.users.messages.delete3 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the message to delete."New value: +"[URL path segment] The ID of the message to delete." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user."
- Changed
gmail.users.messages.get7 fields changed- added
Input schema / properties / format / defaultAdded value: +"full" - changed
Input schema / properties / format / descriptionPrevious value: -"The format to return the message in."New value: +"[query parameter] The format to return the message in. Values: `minimal` = Returns only email message ID and labels; does not return the email headers, body, or payload.; `full` = Returns the full email message data with body content parsed in the `payload` field; the `raw` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.; `raw` = Returns the full email message data with body content in the `raw` field as a base64url encoded string; the `payload` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.; `metadata` = Returns only email message ID, labels, and email headers.." - changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the message to retrieve. This ID is usually retrieved using `messages.list`. The ID is also contained in the result when a message is inserted (`messa"New value: +"[URL path segment] The ID of the message to retrieve. This ID is usually retrieved using `messages.list`. The ID is also contained in the result when a message is inserted (`messa" - changed
Input schema / properties / metadataHeaders / items / descriptionPrevious value: -"When given and format is `METADATA`, only include headers specified."New value: +"[query parameter] When given and format is `METADATA`, only include headers specified." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.import11 fields changed- added
Input schema / properties / deleted / defaultAdded value: +"false" - changed
Input schema / properties / deleted / descriptionPrevious value: -"Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for Google Workspace accounts."New value: +"[query parameter] Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for Google Workspace accounts." - added
Input schema / properties / internalDateSource / defaultAdded value: +"dateHeader" - changed
Input schema / properties / internalDateSource / descriptionPrevious value: -"Source for Gmail's internal date of the message."New value: +"[query parameter] Source for Gmail's internal date of the message. Values: `receivedTime` = Internal message date set to current time when received by Gmail.; `dateHeader` = Internal message time based on 'Date' header in email, when valid.." - added
Input schema / properties / neverMarkSpam / defaultAdded value: +"false" - changed
Input schema / properties / neverMarkSpam / descriptionPrevious value: -"Ignore the Gmail spam classifier decision and never mark this email as SPAM in the mailbox."New value: +"[query parameter] Ignore the Gmail spam classifier decision and never mark this email as SPAM in the mailbox." - added
Input schema / properties / processForCalendar / defaultAdded value: +"false" - changed
Input schema / properties / processForCalendar / descriptionPrevious value: -"Process calendar invites in the email and add any extracted meetings to the Google Calendar for this user."New value: +"[query parameter] Process calendar invites in the email and add any extracted meetings to the Google Calendar for this user." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.insert7 fields changed- added
Input schema / properties / deleted / defaultAdded value: +"false" - changed
Input schema / properties / deleted / descriptionPrevious value: -"Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for Google Workspace accounts."New value: +"[query parameter] Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for Google Workspace accounts." - added
Input schema / properties / internalDateSource / defaultAdded value: +"receivedTime" - changed
Input schema / properties / internalDateSource / descriptionPrevious value: -"Source for Gmail's internal date of the message."New value: +"[query parameter] Source for Gmail's internal date of the message. Values: `receivedTime` = Internal message date set to current time when received by Gmail.; `dateHeader` = Internal message time based on 'Date' header in email, when valid.." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.list11 fields changed- added
Input schema / properties / includeSpamTrash / defaultAdded value: +"false" - changed
Input schema / properties / includeSpamTrash / descriptionPrevious value: -"Include messages from `SPAM` and `TRASH` in the results."New value: +"[query parameter] Include messages from `SPAM` and `TRASH` in the results." - changed
Input schema / properties / labelIds / items / descriptionPrevious value: -"Only return messages with labels that match all of the specified label IDs. Messages in a thread might have labels that other messages in the same thread don't "New value: +"[query parameter] Only return messages with labels that match all of the specified label IDs. Messages in a thread might have labels that other messages in the same thread don't " - added
Input schema / properties / maxResults / defaultAdded value: +"100" - changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of messages to return. This field defaults to 100. The maximum allowed value for this field is 500."New value: +"[query parameter] Maximum number of messages to return. This field defaults to 100. The maximum allowed value for this field is 500." - added
Input schema / properties / maxResults / formatAdded value: +"uint32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Page token to retrieve a specific page of results in the list."New value: +"[query parameter] Page token to retrieve a specific page of results in the list." - changed
Input schema / properties / q / descriptionPrevious value: -"Only return messages matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid:"New value: +"[query parameter] Only return messages matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid:" - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "messages": { + "items": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + }, + "resultSizeEstimate": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.modify4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the message to modify."New value: +"[URL path segment] The ID of the message to modify." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.send3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.trash4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the message to Trash."New value: +"[URL path segment] The ID of the message to Trash." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.messages.untrash4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the message to remove from Trash."New value: +"[URL path segment] The ID of the message to remove from Trash." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.identities.create3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."New value: +"[URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "emailAddress": { + "type": "string" + }, + "primaryKeyPairId": { + "type": "string" + }, + "signAndEncryptKeyPairs": { + "properties": { + "encryptionKeyPairId": { + "type": "string" + }, + "signingKeyPairId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.identities.delete3 fields changed- changed
Input schema / properties / cseEmailAddress / descriptionPrevious value: -"The primary email address associated with the client-side encryption identity configuration that's removed."New value: +"[URL path segment] The primary email address associated with the client-side encryption identity configuration that's removed." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."New value: +"[URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."
- Changed
gmail.users.settings.cse.identities.get4 fields changed- changed
Input schema / properties / cseEmailAddress / descriptionPrevious value: -"The primary email address associated with the client-side encryption identity configuration that's retrieved."New value: +"[URL path segment] The primary email address associated with the client-side encryption identity configuration that's retrieved." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."New value: +"[URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "emailAddress": { + "type": "string" + }, + "primaryKeyPairId": { + "type": "string" + }, + "signAndEncryptKeyPairs": { + "properties": { + "encryptionKeyPairId": { + "type": "string" + }, + "signingKeyPairId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.identities.list7 fields changed- added
Input schema / properties / pageSize / defaultAdded value: +"20" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"The number of identities to return. If not provided, the page size will default to 20 entries."New value: +"[query parameter] The number of identities to return. If not provided, the page size will default to 20 entries." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Pagination token indicating which page of identities to return. If the token is not supplied, then the API will return the first page of results."New value: +"[query parameter] Pagination token indicating which page of identities to return. If the token is not supplied, then the API will return the first page of results." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."New value: +"[URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "cseIdentities": { + "items": { + "properties": { + "emailAddress": { + "type": "string" + }, + "primaryKeyPairId": { + "type": "string" + }, + "signAndEncryptKeyPairs": { + "properties": { + "encryptionKeyPairId": { + "type": "string" + }, + "signingKeyPairId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.identities.patch4 fields changed- changed
Input schema / properties / emailAddress / descriptionPrevious value: -"The email address of the client-side encryption identity to update."New value: +"[URL path segment] The email address of the client-side encryption identity to update." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."New value: +"[URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "emailAddress": { + "type": "string" + }, + "primaryKeyPairId": { + "type": "string" + }, + "signAndEncryptKeyPairs": { + "properties": { + "encryptionKeyPairId": { + "type": "string" + }, + "signingKeyPairId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.keypairs.create5 fields changed- added
Input schema / properties / chainValidation / defaultAdded value: +"all" - changed
Input schema / properties / chainValidation / descriptionPrevious value: -"The type of certificate chain validation to perform at creation. The request will be rejected if the uploaded chain fails to satisfy the requested validation ch"New value: +"[query parameter] The type of certificate chain validation to perform at creation. The request will be rejected if the uploaded chain fails to satisfy the requested validation ch Values: `all` = Enable all certificate chain validation and certificate revocation checks. Recommended for normal use.; `none` = Disable all certificate chain validation and certificate revocation checks. This may be useful when deliberately creating key pairs with invalid, out-of-use certificate chains to be used only for decryption of historical S/MIME messages. Key pairs created with invalid or revoked certificates cannot be used in a CseIdentity object.." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."New value: +"[URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "disableTime": { + "type": "string" + }, + "enablementState": { + "enum": [ + "stateUnspecified", + "enabled", + "disabled" + ], + "type": "string" + }, + "keyPairId": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "pkcs7": { + "type": "string" + }, + "privateKeyMetadata": { + "items": { + "properties": { + "hardwareKeyMetadata": { + "properties": { + "description": { + "type": "string" + } + }, + "type": "object" + }, + "kaclsKeyMetadata": { + "properties": { + "kaclsData": { + "type": "string" + }, + "kaclsUri": { + "type": "string" + } + }, + "type": "object" + }, + "privateKeyMetadataId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "subjectEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.keypairs.disable4 fields changed- changed
Input schema / properties / keyPairId / descriptionPrevious value: -"The identifier of the key pair to turn off."New value: +"[URL path segment] The identifier of the key pair to turn off." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."New value: +"[URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "disableTime": { + "type": "string" + }, + "enablementState": { + "enum": [ + "stateUnspecified", + "enabled", + "disabled" + ], + "type": "string" + }, + "keyPairId": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "pkcs7": { + "type": "string" + }, + "privateKeyMetadata": { + "items": { + "properties": { + "hardwareKeyMetadata": { + "properties": { + "description": { + "type": "string" + } + }, + "type": "object" + }, + "kaclsKeyMetadata": { + "properties": { + "kaclsData": { + "type": "string" + }, + "kaclsUri": { + "type": "string" + } + }, + "type": "object" + }, + "privateKeyMetadataId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "subjectEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.keypairs.enable4 fields changed- changed
Input schema / properties / keyPairId / descriptionPrevious value: -"The identifier of the key pair to turn on."New value: +"[URL path segment] The identifier of the key pair to turn on." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."New value: +"[URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "disableTime": { + "type": "string" + }, + "enablementState": { + "enum": [ + "stateUnspecified", + "enabled", + "disabled" + ], + "type": "string" + }, + "keyPairId": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "pkcs7": { + "type": "string" + }, + "privateKeyMetadata": { + "items": { + "properties": { + "hardwareKeyMetadata": { + "properties": { + "description": { + "type": "string" + } + }, + "type": "object" + }, + "kaclsKeyMetadata": { + "properties": { + "kaclsData": { + "type": "string" + }, + "kaclsUri": { + "type": "string" + } + }, + "type": "object" + }, + "privateKeyMetadataId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "subjectEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.keypairs.get4 fields changed- changed
Input schema / properties / keyPairId / descriptionPrevious value: -"The identifier of the key pair to retrieve."New value: +"[URL path segment] The identifier of the key pair to retrieve." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."New value: +"[URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "disableTime": { + "type": "string" + }, + "enablementState": { + "enum": [ + "stateUnspecified", + "enabled", + "disabled" + ], + "type": "string" + }, + "keyPairId": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "pkcs7": { + "type": "string" + }, + "privateKeyMetadata": { + "items": { + "properties": { + "hardwareKeyMetadata": { + "properties": { + "description": { + "type": "string" + } + }, + "type": "object" + }, + "kaclsKeyMetadata": { + "properties": { + "kaclsData": { + "type": "string" + }, + "kaclsUri": { + "type": "string" + } + }, + "type": "object" + }, + "privateKeyMetadataId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "subjectEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.keypairs.list7 fields changed- added
Input schema / properties / pageSize / defaultAdded value: +"20" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"The number of key pairs to return. If not provided, the page size will default to 20 entries."New value: +"[query parameter] The number of key pairs to return. If not provided, the page size will default to 20 entries." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Pagination token indicating which page of key pairs to return. If the token is not supplied, then the API will return the first page of results."New value: +"[query parameter] Pagination token indicating which page of key pairs to return. If the token is not supplied, then the API will return the first page of results." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."New value: +"[URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "cseKeyPairs": { + "items": { + "properties": { + "disableTime": { + "type": "string" + }, + "enablementState": { + "enum": [ + "stateUnspecified", + "enabled", + "disabled" + ], + "type": "string" + }, + "keyPairId": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "pkcs7": { + "type": "string" + }, + "privateKeyMetadata": { + "items": { + "properties": { + "hardwareKeyMetadata": { + "properties": { + "description": { + "type": "string" + } + }, + "type": "object" + }, + "kaclsKeyMetadata": { + "properties": { + "kaclsData": { + "type": "string" + }, + "kaclsUri": { + "type": "string" + } + }, + "type": "object" + }, + "privateKeyMetadataId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "subjectEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.cse.keypairs.obliterate3 fields changed- changed
Input schema / properties / keyPairId / descriptionPrevious value: -"The identifier of the key pair to obliterate."New value: +"[URL path segment] The identifier of the key pair to obliterate." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."New value: +"[URL path segment] The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."
- Changed
gmail.users.settings.delegates.create3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "delegateEmail": { + "type": "string" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending", + "rejected", + "expired" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.delegates.delete3 fields changed- changed
Input schema / properties / delegateEmail / descriptionPrevious value: -"The email address of the user to be removed as a delegate."New value: +"[URL path segment] The email address of the user to be removed as a delegate." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user."
- Changed
gmail.users.settings.delegates.get4 fields changed- changed
Input schema / properties / delegateEmail / descriptionPrevious value: -"The email address of the user whose delegate relationship is to be retrieved."New value: +"[URL path segment] The email address of the user whose delegate relationship is to be retrieved." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "delegateEmail": { + "type": "string" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending", + "rejected", + "expired" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.delegates.list3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "delegates": { + "items": { + "properties": { + "delegateEmail": { + "type": "string" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending", + "rejected", + "expired" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.filters.create3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "action": { + "properties": { + "addLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "forward": { + "type": "string" + }, + "removeLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "criteria": { + "properties": { + "excludeChats": { + "type": "boolean" + }, + "from": { + "type": "string" + }, + "hasAttachment": { + "type": "boolean" + }, + "negatedQuery": { + "type": "string" + }, + "query": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "sizeComparison": { + "enum": [ + "unspecified", + "smaller", + "larger" + ], + "type": "string" + }, + "subject": { + "type": "string" + }, + "to": { + "type": "string" + } + }, + "type": "object" + }, + "id": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.filters.delete3 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the filter to be deleted."New value: +"[URL path segment] The ID of the filter to be deleted." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user."
- Changed
gmail.users.settings.filters.get4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the filter to be fetched."New value: +"[URL path segment] The ID of the filter to be fetched." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "action": { + "properties": { + "addLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "forward": { + "type": "string" + }, + "removeLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "criteria": { + "properties": { + "excludeChats": { + "type": "boolean" + }, + "from": { + "type": "string" + }, + "hasAttachment": { + "type": "boolean" + }, + "negatedQuery": { + "type": "string" + }, + "query": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "sizeComparison": { + "enum": [ + "unspecified", + "smaller", + "larger" + ], + "type": "string" + }, + "subject": { + "type": "string" + }, + "to": { + "type": "string" + } + }, + "type": "object" + }, + "id": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.filters.list3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "filter": { + "items": { + "properties": { + "action": { + "properties": { + "addLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "forward": { + "type": "string" + }, + "removeLabelIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "criteria": { + "properties": { + "excludeChats": { + "type": "boolean" + }, + "from": { + "type": "string" + }, + "hasAttachment": { + "type": "boolean" + }, + "negatedQuery": { + "type": "string" + }, + "query": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "sizeComparison": { + "enum": [ + "unspecified", + "smaller", + "larger" + ], + "type": "string" + }, + "subject": { + "type": "string" + }, + "to": { + "type": "string" + } + }, + "type": "object" + }, + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.forwardingAddresses.create3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "forwardingEmail": { + "type": "string" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.forwardingAddresses.delete3 fields changed- changed
Input schema / properties / forwardingEmail / descriptionPrevious value: -"The forwarding address to be deleted."New value: +"[URL path segment] The forwarding address to be deleted." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user."
- Changed
gmail.users.settings.forwardingAddresses.get4 fields changed- changed
Input schema / properties / forwardingEmail / descriptionPrevious value: -"The forwarding address to be retrieved."New value: +"[URL path segment] The forwarding address to be retrieved." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "forwardingEmail": { + "type": "string" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.forwardingAddresses.list3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "forwardingAddresses": { + "items": { + "properties": { + "forwardingEmail": { + "type": "string" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.getAutoForwarding3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "disposition": { + "enum": [ + "dispositionUnspecified", + "leaveInInbox", + "archive", + "trash", + "markRead" + ], + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "enabled": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.getImap3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "autoExpunge": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "expungeBehavior": { + "enum": [ + "expungeBehaviorUnspecified", + "archive", + "trash", + "deleteForever" + ], + "type": "string" + }, + "maxFolderSize": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.getLanguage3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "displayLanguage": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.getPop3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessWindow": { + "enum": [ + "accessWindowUnspecified", + "disabled", + "fromNowOn", + "allMail" + ], + "type": "string" + }, + "disposition": { + "enum": [ + "dispositionUnspecified", + "leaveInInbox", + "archive", + "trash", + "markRead" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.getVacation3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "enableAutoReply": { + "type": "boolean" + }, + "endTime": { + "type": "string" + }, + "responseBodyHtml": { + "type": "string" + }, + "responseBodyPlainText": { + "type": "string" + }, + "responseSubject": { + "type": "string" + }, + "restrictToContacts": { + "type": "boolean" + }, + "restrictToDomain": { + "type": "boolean" + }, + "startTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.sendAs.create3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "displayName": { + "type": "string" + }, + "isDefault": { + "type": "boolean" + }, + "isPrimary": { + "type": "boolean" + }, + "replyToAddress": { + "type": "string" + }, + "sendAsEmail": { + "type": "string" + }, + "signature": { + "type": "string" + }, + "smtpMsa": { + "properties": { + "host": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "securityMode": { + "enum": [ + "securityModeUnspecified", + "none", + "ssl", + "starttls" + ], + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "treatAsAlias": { + "type": "boolean" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.sendAs.delete3 fields changed- changed
Input schema / properties / sendAsEmail / descriptionPrevious value: -"The send-as alias to be deleted."New value: +"[URL path segment] The send-as alias to be deleted." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user."
- Changed
gmail.users.settings.sendAs.get4 fields changed- changed
Input schema / properties / sendAsEmail / descriptionPrevious value: -"The send-as alias to be retrieved."New value: +"[URL path segment] The send-as alias to be retrieved." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "displayName": { + "type": "string" + }, + "isDefault": { + "type": "boolean" + }, + "isPrimary": { + "type": "boolean" + }, + "replyToAddress": { + "type": "string" + }, + "sendAsEmail": { + "type": "string" + }, + "signature": { + "type": "string" + }, + "smtpMsa": { + "properties": { + "host": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "securityMode": { + "enum": [ + "securityModeUnspecified", + "none", + "ssl", + "starttls" + ], + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "treatAsAlias": { + "type": "boolean" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.sendAs.list3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "sendAs": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "isDefault": { + "type": "boolean" + }, + "isPrimary": { + "type": "boolean" + }, + "replyToAddress": { + "type": "string" + }, + "sendAsEmail": { + "type": "string" + }, + "signature": { + "type": "string" + }, + "smtpMsa": { + "properties": { + "host": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "securityMode": { + "enum": [ + "securityModeUnspecified", + "none", + "ssl", + "starttls" + ], + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "treatAsAlias": { + "type": "boolean" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.sendAs.patch4 fields changed- changed
Input schema / properties / sendAsEmail / descriptionPrevious value: -"The send-as alias to be updated."New value: +"[URL path segment] The send-as alias to be updated." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "displayName": { + "type": "string" + }, + "isDefault": { + "type": "boolean" + }, + "isPrimary": { + "type": "boolean" + }, + "replyToAddress": { + "type": "string" + }, + "sendAsEmail": { + "type": "string" + }, + "signature": { + "type": "string" + }, + "smtpMsa": { + "properties": { + "host": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "securityMode": { + "enum": [ + "securityModeUnspecified", + "none", + "ssl", + "starttls" + ], + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "treatAsAlias": { + "type": "boolean" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.sendAs.smimeInfo.delete4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The immutable ID for the SmimeInfo."New value: +"[URL path segment] The immutable ID for the SmimeInfo." - changed
Input schema / properties / sendAsEmail / descriptionPrevious value: -"The email address that appears in the \"From:\" header for mail sent using this alias."New value: +"[URL path segment] The email address that appears in the \"From:\" header for mail sent using this alias." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user."
- Changed
gmail.users.settings.sendAs.smimeInfo.get5 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The immutable ID for the SmimeInfo."New value: +"[URL path segment] The immutable ID for the SmimeInfo." - changed
Input schema / properties / sendAsEmail / descriptionPrevious value: -"The email address that appears in the \"From:\" header for mail sent using this alias."New value: +"[URL path segment] The email address that appears in the \"From:\" header for mail sent using this alias." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "encryptedKeyPassword": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isDefault": { + "type": "boolean" + }, + "issuerCn": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "pkcs12": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.sendAs.smimeInfo.insert4 fields changed- changed
Input schema / properties / sendAsEmail / descriptionPrevious value: -"The email address that appears in the \"From:\" header for mail sent using this alias."New value: +"[URL path segment] The email address that appears in the \"From:\" header for mail sent using this alias." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "encryptedKeyPassword": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isDefault": { + "type": "boolean" + }, + "issuerCn": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "pkcs12": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.sendAs.smimeInfo.list4 fields changed- changed
Input schema / properties / sendAsEmail / descriptionPrevious value: -"The email address that appears in the \"From:\" header for mail sent using this alias."New value: +"[URL path segment] The email address that appears in the \"From:\" header for mail sent using this alias." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "smimeInfo": { + "items": { + "properties": { + "encryptedKeyPassword": { + "type": "string" + }, + "expiration": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isDefault": { + "type": "boolean" + }, + "issuerCn": { + "type": "string" + }, + "pem": { + "type": "string" + }, + "pkcs12": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.sendAs.smimeInfo.setDefault4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The immutable ID for the SmimeInfo."New value: +"[URL path segment] The immutable ID for the SmimeInfo." - changed
Input schema / properties / sendAsEmail / descriptionPrevious value: -"The email address that appears in the \"From:\" header for mail sent using this alias."New value: +"[URL path segment] The email address that appears in the \"From:\" header for mail sent using this alias." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user."
- Changed
gmail.users.settings.sendAs.update4 fields changed- changed
Input schema / properties / sendAsEmail / descriptionPrevious value: -"The send-as alias to be updated."New value: +"[URL path segment] The send-as alias to be updated." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "displayName": { + "type": "string" + }, + "isDefault": { + "type": "boolean" + }, + "isPrimary": { + "type": "boolean" + }, + "replyToAddress": { + "type": "string" + }, + "sendAsEmail": { + "type": "string" + }, + "signature": { + "type": "string" + }, + "smtpMsa": { + "properties": { + "host": { + "type": "string" + }, + "password": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "securityMode": { + "enum": [ + "securityModeUnspecified", + "none", + "ssl", + "starttls" + ], + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "treatAsAlias": { + "type": "boolean" + }, + "verificationStatus": { + "enum": [ + "verificationStatusUnspecified", + "accepted", + "pending" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.sendAs.verify3 fields changed- changed
Input schema / properties / sendAsEmail / descriptionPrevious value: -"The send-as alias to be verified."New value: +"[URL path segment] The send-as alias to be verified." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user."
- Changed
gmail.users.settings.updateAutoForwarding3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "disposition": { + "enum": [ + "dispositionUnspecified", + "leaveInInbox", + "archive", + "trash", + "markRead" + ], + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "enabled": { + "type": "boolean" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.updateImap3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "autoExpunge": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "expungeBehavior": { + "enum": [ + "expungeBehaviorUnspecified", + "archive", + "trash", + "deleteForever" + ], + "type": "string" + }, + "maxFolderSize": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.updateLanguage3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "displayLanguage": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.updatePop3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "accessWindow": { + "enum": [ + "accessWindowUnspecified", + "disabled", + "fromNowOn", + "allMail" + ], + "type": "string" + }, + "disposition": { + "enum": [ + "dispositionUnspecified", + "leaveInInbox", + "archive", + "trash", + "markRead" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.settings.updateVacation3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"User's email address. The special value \"me\" can be used to indicate the authenticated user."New value: +"[URL path segment] User's email address. The special value \"me\" can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "enableAutoReply": { + "type": "boolean" + }, + "endTime": { + "type": "string" + }, + "responseBodyHtml": { + "type": "string" + }, + "responseBodyPlainText": { + "type": "string" + }, + "responseSubject": { + "type": "string" + }, + "restrictToContacts": { + "type": "boolean" + }, + "restrictToDomain": { + "type": "boolean" + }, + "startTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.stop2 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user."
- Changed
gmail.users.threads.delete3 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"ID of the Thread to delete."New value: +"[URL path segment] ID of the Thread to delete." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user."
- Changed
gmail.users.threads.get7 fields changed- added
Input schema / properties / format / defaultAdded value: +"full" - changed
Input schema / properties / format / descriptionPrevious value: -"The format to return the messages in."New value: +"[query parameter] The format to return the messages in. Values: `full` = Returns the full email message data with body content parsed in the `payload` field; the `raw` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.; `metadata` = Returns only email message IDs, labels, and email headers.; `minimal` = Returns only email message IDs and labels; does not return the email headers, body, or payload.." - changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the thread to retrieve."New value: +"[URL path segment] The ID of the thread to retrieve." - changed
Input schema / properties / metadataHeaders / items / descriptionPrevious value: -"When given and format is METADATA, only include headers specified."New value: +"[query parameter] When given and format is METADATA, only include headers specified." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "messages": { + "items": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "snippet": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.threads.list11 fields changed- added
Input schema / properties / includeSpamTrash / defaultAdded value: +"false" - changed
Input schema / properties / includeSpamTrash / descriptionPrevious value: -"Include threads from `SPAM` and `TRASH` in the results."New value: +"[query parameter] Include threads from `SPAM` and `TRASH` in the results." - changed
Input schema / properties / labelIds / items / descriptionPrevious value: -"Only return threads with labels that match all of the specified label IDs."New value: +"[query parameter] Only return threads with labels that match all of the specified label IDs." - added
Input schema / properties / maxResults / defaultAdded value: +"100" - changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of threads to return. This field defaults to 100. The maximum allowed value for this field is 500."New value: +"[query parameter] Maximum number of threads to return. This field defaults to 100. The maximum allowed value for this field is 500." - added
Input schema / properties / maxResults / formatAdded value: +"uint32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Page token to retrieve a specific page of results in the list."New value: +"[query parameter] Page token to retrieve a specific page of results in the list." - changed
Input schema / properties / q / descriptionPrevious value: -"Only return threads matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid: "New value: +"[query parameter] Only return threads matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid: " - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "resultSizeEstimate": { + "type": "integer" + }, + "threads": { + "items": { + "properties": { + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "messages": { + "items": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "snippet": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
gmail.users.threads.modify4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the thread to modify."New value: +"[URL path segment] The ID of the thread to modify." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "messages": { + "items": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "snippet": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.threads.trash4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the thread to Trash."New value: +"[URL path segment] The ID of the thread to Trash." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "messages": { + "items": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "snippet": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.threads.untrash4 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"The ID of the thread to remove from Trash."New value: +"[URL path segment] The ID of the thread to remove from Trash." - added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "messages": { + "items": { + "properties": { + "classificationLabelValues": { + "items": { + "properties": { + "fields": { + "items": { + "properties": { + "fieldId": { + "type": "string" + }, + "selection": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "labelId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "historyId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "internalDate": { + "type": "string" + }, + "labelIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payload": { + "properties": { + "body": { + "properties": { + "attachmentId": { + "type": "string" + }, + "data": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "properties": { + "body": { + "type": "object" + }, + "filename": { + "type": "string" + }, + "headers": { + "items": { + "type": "object" + }, + "type": "array" + }, + "mimeType": { + "type": "string" + }, + "partId": { + "type": "string" + }, + "parts": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "raw": { + "type": "string" + }, + "sizeEstimate": { + "type": "integer" + }, + "snippet": { + "type": "string" + }, + "threadId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "snippet": { + "type": "string" + } + }, + "type": "object" +}
- Changed
gmail.users.watch3 fields changed- added
Input schema / properties / userId / defaultAdded value: +"me" - changed
Input schema / properties / userId / descriptionPrevious value: -"The user's email address. The special value `me` can be used to indicate the authenticated user."New value: +"[URL path segment] The user's email address. The special value `me` can be used to indicate the authenticated user." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "expiration": { + "type": "string" + }, + "historyId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
people.contactGroups.batchGet6 fields changed- changed
Input schema / properties / groupFields / descriptionPrevious value: -"Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, `memberCount`, and `name` if not set or set to e"New value: +"[query parameter] Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, `memberCount`, and `name` if not set or set to e" - added
Input schema / properties / groupFields / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / maxMembers / descriptionPrevious value: -"Optional. Specifies the maximum number of members to return for each group. Defaults to 0 if not set, which will return zero members."New value: +"[query parameter] Optional. Specifies the maximum number of members to return for each group. Defaults to 0 if not set, which will return zero members." - added
Input schema / properties / maxMembers / formatAdded value: +"int32" - changed
Input schema / properties / resourceNames / items / descriptionPrevious value: -"Required. The resource names of the contact groups to get. There is a maximum of 200 resource names."New value: +"[query parameter] Required. The resource names of the contact groups to get. There is a maximum of 200 resource names." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "responses": { + "items": { + "properties": { + "contactGroup": { + "properties": { + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "formattedName": { + "type": "string" + }, + "groupType": { + "enum": [ + "GROUP_TYPE_UNSPECIFIED", + "USER_CONTACT_GROUP", + "SYSTEM_CONTACT_GROUP" + ], + "type": "string" + }, + "memberCount": { + "type": "integer" + }, + "memberResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + }, + "requestedResourceName": { + "type": "string" + }, + "status": { + "properties": { + "code": { + "type": "integer" + }, + "details": { + "items": { + "type": "object" + }, + "type": "array" + }, + "message": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.contactGroups.create1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "formattedName": { + "type": "string" + }, + "groupType": { + "enum": [ + "GROUP_TYPE_UNSPECIFIED", + "USER_CONTACT_GROUP", + "SYSTEM_CONTACT_GROUP" + ], + "type": "string" + }, + "memberCount": { + "type": "integer" + }, + "memberResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" +}
- Changed
people.contactGroups.delete4 fields changed- changed
Input schema / properties / deleteContacts / descriptionPrevious value: -"Optional. Set to true to also delete the contacts in the specified group."New value: +"[query parameter] Optional. Set to true to also delete the contacts in the specified group." - changed
Input schema / properties / resourceName / descriptionPrevious value: -"Required. The resource name of the contact group to delete."New value: +"[URL path segment] Required. The resource name of the contact group to delete." - added
Input schema / properties / resourceName / patternAdded value: +"^contactGroups/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
people.contactGroups.get7 fields changed- changed
Input schema / properties / groupFields / descriptionPrevious value: -"Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, `memberCount`, and `name` if not set or set to e"New value: +"[query parameter] Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, `memberCount`, and `name` if not set or set to e" - added
Input schema / properties / groupFields / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / maxMembers / descriptionPrevious value: -"Optional. Specifies the maximum number of members to return. Defaults to 0 if not set, which will return zero members."New value: +"[query parameter] Optional. Specifies the maximum number of members to return. Defaults to 0 if not set, which will return zero members." - added
Input schema / properties / maxMembers / formatAdded value: +"int32" - changed
Input schema / properties / resourceName / descriptionPrevious value: -"Required. The resource name of the contact group to get."New value: +"[URL path segment] Required. The resource name of the contact group to get." - added
Input schema / properties / resourceName / patternAdded value: +"^contactGroups/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "formattedName": { + "type": "string" + }, + "groupType": { + "enum": [ + "GROUP_TYPE_UNSPECIFIED", + "USER_CONTACT_GROUP", + "SYSTEM_CONTACT_GROUP" + ], + "type": "string" + }, + "memberCount": { + "type": "integer" + }, + "memberResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" +}
- Changed
people.contactGroups.list7 fields changed- changed
Input schema / properties / groupFields / descriptionPrevious value: -"Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, `memberCount`, and `name` if not set or set to e"New value: +"[query parameter] Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, `memberCount`, and `name` if not set or set to e" - added
Input schema / properties / groupFields / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The maximum number of resources to return. Valid values are between 1 and 1000, inclusive. Defaults to 30 if not set or set to 0."New value: +"[query parameter] Optional. The maximum number of resources to return. Valid values are between 1 and 1000, inclusive. Defaults to 30 if not set or set to 0." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. The next_page_token value returned from a previous call to [ListContactGroups](/people/api/rest/v1/contactgroups/list). Requests the next page of reso"New value: +"[query parameter] Optional. The next_page_token value returned from a previous call to [ListContactGroups](/people/api/rest/v1/contactgroups/list). Requests the next page of reso" - changed
Input schema / properties / syncToken / descriptionPrevious value: -"Optional. A sync token, returned by a previous call to `contactgroups.list`. Only resources changed since the sync token was created will be returned."New value: +"[query parameter] Optional. A sync token, returned by a previous call to `contactgroups.list`. Only resources changed since the sync token was created will be returned." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "contactGroups": { + "items": { + "properties": { + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "formattedName": { + "type": "string" + }, + "groupType": { + "enum": [ + "GROUP_TYPE_UNSPECIFIED", + "USER_CONTACT_GROUP", + "SYSTEM_CONTACT_GROUP" + ], + "type": "string" + }, + "memberCount": { + "type": "integer" + }, + "memberResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + }, + "nextSyncToken": { + "type": "string" + }, + "totalItems": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
people.contactGroups.members.modify3 fields changed- changed
Input schema / properties / resourceName / descriptionPrevious value: -"Required. The resource name of the contact group to modify."New value: +"[URL path segment] Required. The resource name of the contact group to modify." - added
Input schema / properties / resourceName / patternAdded value: +"^contactGroups/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "canNotRemoveLastContactGroupResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "notFoundResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.contactGroups.update3 fields changed- changed
Input schema / properties / resourceName / descriptionPrevious value: -"The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`."New value: +"[URL path segment] The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`." - added
Input schema / properties / resourceName / patternAdded value: +"^contactGroups/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "formattedName": { + "type": "string" + }, + "groupType": { + "enum": [ + "GROUP_TYPE_UNSPECIFIED", + "USER_CONTACT_GROUP", + "SYSTEM_CONTACT_GROUP" + ], + "type": "string" + }, + "memberCount": { + "type": "integer" + }, + "memberResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "resourceName": { + "type": "string" + } + }, + "type": "object" +}
- Changed
people.otherContacts.copyOtherContactToMyContactsGroup3 fields changed- changed
Input schema / properties / resourceName / descriptionPrevious value: -"Required. The resource name of the \"Other contact\" to copy."New value: +"[URL path segment] Required. The resource name of the \"Other contact\" to copy." - added
Input schema / properties / resourceName / patternAdded value: +"^otherContacts/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "properties": { + "contactGroupId": { + "type": "string" + }, + "contactGroupResourceName": { + "type": "string" + } + }, + "type": "object" + }, + "domainMembership": { + "properties": { + "inViewerDomain": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "properties": { + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "userTypes": { + "items": { + "enum": [ + "USER_TYPE_UNKNOWN", + "GOOGLE_USER", + "GPLUS_USER", + "GOOGLE_APPS_USER" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.otherContacts.list9 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The number of \"Other contacts\" to include in the response. Valid values are between 1 and 1000, inclusive. Defaults to 100 if not set or set to 0."New value: +"[query parameter] Optional. The number of \"Other contacts\" to include in the response. Valid values are between 1 and 1000, inclusive. Defaults to 100 if not set or set to 0." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters"New value: +"[query parameter] Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters" - changed
Input schema / properties / readMask / descriptionPrevious value: -"Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. What values are va"New value: +"[query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. What values are va" - added
Input schema / properties / readMask / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / requestSyncToken / descriptionPrevious value: -"Optional. Whether the response should return `next_sync_token` on the last page of results. It can be used to get incremental changes since the last request by "New value: +"[query parameter] Optional. Whether the response should return `next_sync_token` on the last page of results. It can be used to get incremental changes since the last request by " - changed
Input schema / properties / sources / items / descriptionPrevious value: -"Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT if not set. Possible values for this field are: * READ_SOURCE_TYPE_CONTACT"New value: +"[query parameter] Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT if not set. Possible values for this field are: * READ_SOURCE_TYPE_CONTACT Values: `READ_SOURCE_TYPE_UNSPECIFIED` = Unspecified.; `READ_SOURCE_TYPE_PROFILE` = Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.; `READ_SOURCE_TYPE_CONTACT` = Returns SourceType.CONTACT.; `READ_SOURCE_TYPE_DOMAIN_CONTACT` = Returns SourceType.DOMAIN_CONTACT.; `READ_SOURCE_TYPE_OTHER_CONTACT` = Returns SourceType.OTHER_CONTACT.." - changed
Input schema / properties / syncToken / descriptionPrevious value: -"Optional. A sync token, received from a previous response `next_sync_token` Provide this to retrieve only the resources changed since the last request. When syn"New value: +"[query parameter] Optional. A sync token, received from a previous response `next_sync_token` Provide this to retrieve only the resources changed since the last request. When syn" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "nextSyncToken": { + "type": "string" + }, + "otherContacts": { + "items": { + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "properties": { + "contactGroupId": { + "type": "string" + }, + "contactGroupResourceName": { + "type": "string" + } + }, + "type": "object" + }, + "domainMembership": { + "properties": { + "inViewerDomain": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "totalSize": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
people.otherContacts.search5 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The number of results to return. Defaults to 10 if field is not set, or set to 0. Values greater than 30 will be capped to 30."New value: +"[query parameter] Optional. The number of results to return. Defaults to 10 if field is not set, or set to 0. Values greater than 30 will be capped to 30." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / readMask / descriptionPrevious value: -"Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: "New value: +"[query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: " - added
Input schema / properties / readMask / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "results": { + "items": { + "properties": { + "person": { + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "type": "object" + }, + "metadata": { + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "type": "object" + }, + "domainMembership": { + "type": "object" + }, + "metadata": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.people.batchCreateContacts1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "createdPeople": { + "items": { + "properties": { + "httpStatusCode": { + "type": "integer" + }, + "person": { + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "type": "object" + }, + "metadata": { + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "type": "object" + }, + "domainMembership": { + "type": "object" + }, + "metadata": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "requestedResourceName": { + "type": "string" + }, + "status": { + "properties": { + "code": { + "type": "integer" + }, + "details": { + "items": { + "type": "object" + }, + "type": "array" + }, + "message": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.people.batchDeleteContacts1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
people.people.batchUpdateContacts1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "updateResult": { + "type": "object" + } + }, + "type": "object" +}
- Changed
people.people.connections.list14 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The number of connections to include in the response. Valid values are between 1 and 1000, inclusive. Defaults to 100 if not set or set to 0."New value: +"[query parameter] Optional. The number of connections to include in the response. Valid values are between 1 and 1000, inclusive. Defaults to 100 if not set or set to 0." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters"New value: +"[query parameter] Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters" - changed
Input schema / properties / personFields / descriptionPrevious value: -"Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: "New value: +"[query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: " - added
Input schema / properties / personFields / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / requestMask.includeField / descriptionPrevious value: -"Required. Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.ph"New value: +"[query parameter] Required. Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.ph" - added
Input schema / properties / requestMask.includeField / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / requestSyncToken / descriptionPrevious value: -"Optional. Whether the response should return `next_sync_token` on the last page of results. It can be used to get incremental changes since the last request by "New value: +"[query parameter] Optional. Whether the response should return `next_sync_token` on the last page of results. It can be used to get incremental changes since the last request by " - changed
Input schema / properties / resourceName / descriptionPrevious value: -"Required. The resource name to return connections for. Only `people/me` is valid."New value: +"[URL path segment] Required. The resource name to return connections for. Only `people/me` is valid." - added
Input schema / properties / resourceName / patternAdded value: +"^people/[^/]+$" - changed
Input schema / properties / sortOrder / descriptionPrevious value: -"Optional. The order in which the connections should be sorted. Defaults to `LAST_MODIFIED_ASCENDING`."New value: +"[query parameter] Optional. The order in which the connections should be sorted. Defaults to `LAST_MODIFIED_ASCENDING`. Values: `LAST_MODIFIED_ASCENDING` = Sort people by when they were changed; older entries first.; `LAST_MODIFIED_DESCENDING` = Sort people by when they were changed; newer entries first.; `FIRST_NAME_ASCENDING` = Sort people by first name.; `LAST_NAME_ASCENDING` = Sort people by last name.." - changed
Input schema / properties / sources / items / descriptionPrevious value: -"Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set."New value: +"[query parameter] Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set. Values: `READ_SOURCE_TYPE_UNSPECIFIED` = Unspecified.; `READ_SOURCE_TYPE_PROFILE` = Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.; `READ_SOURCE_TYPE_CONTACT` = Returns SourceType.CONTACT.; `READ_SOURCE_TYPE_DOMAIN_CONTACT` = Returns SourceType.DOMAIN_CONTACT.; `READ_SOURCE_TYPE_OTHER_CONTACT` = Returns SourceType.OTHER_CONTACT.." - changed
Input schema / properties / syncToken / descriptionPrevious value: -"Optional. A sync token, received from a previous response `next_sync_token` Provide this to retrieve only the resources changed since the last request. When syn"New value: +"[query parameter] Optional. A sync token, received from a previous response `next_sync_token` Provide this to retrieve only the resources changed since the last request. When syn" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "connections": { + "items": { + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "properties": { + "contactGroupId": { + "type": "string" + }, + "contactGroupResourceName": { + "type": "string" + } + }, + "type": "object" + }, + "domainMembership": { + "properties": { + "inViewerDomain": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + }, + "nextSyncToken": { + "type": "string" + }, + "totalItems": { + "type": "integer" + }, + "totalPeople": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
people.people.createContact4 fields changed- changed
Input schema / properties / personFields / descriptionPrevious value: -"Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Defaults to all fi"New value: +"[query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Defaults to all fi" - added
Input schema / properties / personFields / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / sources / items / descriptionPrevious value: -"Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set."New value: +"[query parameter] Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set. Values: `READ_SOURCE_TYPE_UNSPECIFIED` = Unspecified.; `READ_SOURCE_TYPE_PROFILE` = Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.; `READ_SOURCE_TYPE_CONTACT` = Returns SourceType.CONTACT.; `READ_SOURCE_TYPE_DOMAIN_CONTACT` = Returns SourceType.DOMAIN_CONTACT.; `READ_SOURCE_TYPE_OTHER_CONTACT` = Returns SourceType.OTHER_CONTACT.." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "properties": { + "contactGroupId": { + "type": "string" + }, + "contactGroupResourceName": { + "type": "string" + } + }, + "type": "object" + }, + "domainMembership": { + "properties": { + "inViewerDomain": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "properties": { + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "userTypes": { + "items": { + "enum": [ + "USER_TYPE_UNKNOWN", + "GOOGLE_USER", + "GPLUS_USER", + "GOOGLE_APPS_USER" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.people.deleteContact3 fields changed- changed
Input schema / properties / resourceName / descriptionPrevious value: -"Required. The resource name of the contact to delete."New value: +"[URL path segment] Required. The resource name of the contact to delete." - added
Input schema / properties / resourceName / patternAdded value: +"^people/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
people.people.deleteContactPhoto6 fields changed- changed
Input schema / properties / personFields / descriptionPrevious value: -"Optional. A field mask to restrict which fields on the person are returned. Multiple fields can be specified by separating them with commas. Defaults to empty i"New value: +"[query parameter] Optional. A field mask to restrict which fields on the person are returned. Multiple fields can be specified by separating them with commas. Defaults to empty i" - added
Input schema / properties / personFields / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / resourceName / descriptionPrevious value: -"Required. The resource name of the contact whose photo will be deleted."New value: +"[URL path segment] Required. The resource name of the contact whose photo will be deleted." - added
Input schema / properties / resourceName / patternAdded value: +"^people/[^/]+$" - changed
Input schema / properties / sources / items / descriptionPrevious value: -"Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set."New value: +"[query parameter] Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set. Values: `READ_SOURCE_TYPE_UNSPECIFIED` = Unspecified.; `READ_SOURCE_TYPE_PROFILE` = Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.; `READ_SOURCE_TYPE_CONTACT` = Returns SourceType.CONTACT.; `READ_SOURCE_TYPE_DOMAIN_CONTACT` = Returns SourceType.DOMAIN_CONTACT.; `READ_SOURCE_TYPE_OTHER_CONTACT` = Returns SourceType.OTHER_CONTACT.." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "person": { + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "properties": { + "contactGroupId": { + "type": "string" + }, + "contactGroupResourceName": { + "type": "string" + } + }, + "type": "object" + }, + "domainMembership": { + "properties": { + "inViewerDomain": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
people.people.get8 fields changed- changed
Input schema / properties / personFields / descriptionPrevious value: -"Required. A field mask to restrict which fields on the person are returned. Multiple fields can be specified by separating them with commas. Valid values are: *"New value: +"[query parameter] Required. A field mask to restrict which fields on the person are returned. Multiple fields can be specified by separating them with commas. Valid values are: *" - added
Input schema / properties / personFields / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / requestMask.includeField / descriptionPrevious value: -"Required. Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.ph"New value: +"[query parameter] Required. Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.ph" - added
Input schema / properties / requestMask.includeField / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / resourceName / descriptionPrevious value: -"Required. The resource name of the person to provide information about. - To get information about the authenticated user, specify `people/me`. - To get informa"New value: +"[URL path segment] Required. The resource name of the person to provide information about. - To get information about the authenticated user, specify `people/me`. - To get informa" - added
Input schema / properties / resourceName / patternAdded value: +"^people/[^/]+$" - changed
Input schema / properties / sources / items / descriptionPrevious value: -"Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_PROFILE and READ_SOURCE_TYPE_CONTACT if not set."New value: +"[query parameter] Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_PROFILE and READ_SOURCE_TYPE_CONTACT if not set. Values: `READ_SOURCE_TYPE_UNSPECIFIED` = Unspecified.; `READ_SOURCE_TYPE_PROFILE` = Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.; `READ_SOURCE_TYPE_CONTACT` = Returns SourceType.CONTACT.; `READ_SOURCE_TYPE_DOMAIN_CONTACT` = Returns SourceType.DOMAIN_CONTACT.; `READ_SOURCE_TYPE_OTHER_CONTACT` = Returns SourceType.OTHER_CONTACT.." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "properties": { + "contactGroupId": { + "type": "string" + }, + "contactGroupResourceName": { + "type": "string" + } + }, + "type": "object" + }, + "domainMembership": { + "properties": { + "inViewerDomain": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "properties": { + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "userTypes": { + "items": { + "enum": [ + "USER_TYPE_UNKNOWN", + "GOOGLE_USER", + "GPLUS_USER", + "GOOGLE_APPS_USER" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.people.getBatchGet7 fields changed- changed
Input schema / properties / personFields / descriptionPrevious value: -"Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: "New value: +"[query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: " - added
Input schema / properties / personFields / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / requestMask.includeField / descriptionPrevious value: -"Required. Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.ph"New value: +"[query parameter] Required. Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.ph" - added
Input schema / properties / requestMask.includeField / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / resourceNames / items / descriptionPrevious value: -"Required. The resource names of the people to provide information about. It's repeatable. The URL query parameter should be resourceNames=<name1>&resourceNames="New value: +"[query parameter] Required. The resource names of the people to provide information about. It's repeatable. The URL query parameter should be resourceNames=<name1>&resourceNames=" - changed
Input schema / properties / sources / items / descriptionPrevious value: -"Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set."New value: +"[query parameter] Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set. Values: `READ_SOURCE_TYPE_UNSPECIFIED` = Unspecified.; `READ_SOURCE_TYPE_PROFILE` = Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.; `READ_SOURCE_TYPE_CONTACT` = Returns SourceType.CONTACT.; `READ_SOURCE_TYPE_DOMAIN_CONTACT` = Returns SourceType.DOMAIN_CONTACT.; `READ_SOURCE_TYPE_OTHER_CONTACT` = Returns SourceType.OTHER_CONTACT.." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "responses": { + "items": { + "properties": { + "httpStatusCode": { + "type": "integer" + }, + "person": { + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "type": "object" + }, + "metadata": { + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "type": "object" + }, + "domainMembership": { + "type": "object" + }, + "metadata": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "requestedResourceName": { + "type": "string" + }, + "status": { + "properties": { + "code": { + "type": "integer" + }, + "details": { + "items": { + "type": "object" + }, + "type": "array" + }, + "message": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.people.listDirectoryPeople10 fields changed- changed
Input schema / properties / mergeSources / items / descriptionPrevious value: -"Optional. Additional data to merge into the directory sources if they are connected through verified join keys such as email addresses or phone numbers."New value: +"[query parameter] Optional. Additional data to merge into the directory sources if they are connected through verified join keys such as email addresses or phone numbers. Values: `DIRECTORY_MERGE_SOURCE_TYPE_UNSPECIFIED` = Unspecified.; `DIRECTORY_MERGE_SOURCE_TYPE_CONTACT` = User owned contact.." - changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The number of people to include in the response. Valid values are between 1 and 1000, inclusive. Defaults to 100 if not set or set to 0."New value: +"[query parameter] Optional. The number of people to include in the response. Valid values are between 1 and 1000, inclusive. Defaults to 100 if not set or set to 0." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters"New value: +"[query parameter] Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters" - changed
Input schema / properties / readMask / descriptionPrevious value: -"Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: "New value: +"[query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: " - added
Input schema / properties / readMask / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / requestSyncToken / descriptionPrevious value: -"Optional. Whether the response should return `next_sync_token`. It can be used to get incremental changes since the last request by setting it on the request `s"New value: +"[query parameter] Optional. Whether the response should return `next_sync_token`. It can be used to get incremental changes since the last request by setting it on the request `s" - changed
Input schema / properties / sources / items / descriptionPrevious value: -"Required. Directory sources to return."New value: +"[query parameter] Required. Directory sources to return. Values: `DIRECTORY_SOURCE_TYPE_UNSPECIFIED` = Unspecified.; `DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT` = Google Workspace domain shared contact.; `DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE` = Google Workspace domain profile.." - changed
Input schema / properties / syncToken / descriptionPrevious value: -"Optional. A sync token, received from a previous response `next_sync_token` Provide this to retrieve only the resources changed since the last request. When syn"New value: +"[query parameter] Optional. A sync token, received from a previous response `next_sync_token` Provide this to retrieve only the resources changed since the last request. When syn" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "nextSyncToken": { + "type": "string" + }, + "people": { + "items": { + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "properties": { + "contactGroupId": { + "type": "string" + }, + "contactGroupResourceName": { + "type": "string" + } + }, + "type": "object" + }, + "domainMembership": { + "properties": { + "inViewerDomain": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.people.searchContacts6 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The number of results to return. Defaults to 10 if field is not set, or set to 0. Values greater than 30 will be capped to 30."New value: +"[query parameter] Optional. The number of results to return. Defaults to 10 if field is not set, or set to 0. Values greater than 30 will be capped to 30." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / readMask / descriptionPrevious value: -"Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: "New value: +"[query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: " - added
Input schema / properties / readMask / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / sources / items / descriptionPrevious value: -"Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT if not set."New value: +"[query parameter] Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT if not set. Values: `READ_SOURCE_TYPE_UNSPECIFIED` = Unspecified.; `READ_SOURCE_TYPE_PROFILE` = Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.; `READ_SOURCE_TYPE_CONTACT` = Returns SourceType.CONTACT.; `READ_SOURCE_TYPE_DOMAIN_CONTACT` = Returns SourceType.DOMAIN_CONTACT.; `READ_SOURCE_TYPE_OTHER_CONTACT` = Returns SourceType.OTHER_CONTACT.." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "results": { + "items": { + "properties": { + "person": { + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "type": "object" + }, + "metadata": { + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "type": "object" + }, + "domainMembership": { + "type": "object" + }, + "metadata": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.people.searchDirectoryPeople8 fields changed- changed
Input schema / properties / mergeSources / items / descriptionPrevious value: -"Optional. Additional data to merge into the directory sources if they are connected through verified join keys such as email addresses or phone numbers."New value: +"[query parameter] Optional. Additional data to merge into the directory sources if they are connected through verified join keys such as email addresses or phone numbers. Values: `DIRECTORY_MERGE_SOURCE_TYPE_UNSPECIFIED` = Unspecified.; `DIRECTORY_MERGE_SOURCE_TYPE_CONTACT` = User owned contact.." - changed
Input schema / properties / pageSize / descriptionPrevious value: -"Optional. The number of people to include in the response. Valid values are between 1 and 500, inclusive. Defaults to 100 if not set or set to 0."New value: +"[query parameter] Optional. The number of people to include in the response. Valid values are between 1 and 500, inclusive. Defaults to 100 if not set or set to 0." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters"New value: +"[query parameter] Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters" - changed
Input schema / properties / readMask / descriptionPrevious value: -"Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: "New value: +"[query parameter] Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: " - added
Input schema / properties / readMask / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / sources / items / descriptionPrevious value: -"Required. Directory sources to return."New value: +"[query parameter] Required. Directory sources to return. Values: `DIRECTORY_SOURCE_TYPE_UNSPECIFIED` = Unspecified.; `DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT` = Google Workspace domain shared contact.; `DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE` = Google Workspace domain profile.." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "people": { + "items": { + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "properties": { + "contactGroupId": { + "type": "string" + }, + "contactGroupResourceName": { + "type": "string" + } + }, + "type": "object" + }, + "domainMembership": { + "properties": { + "inViewerDomain": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "totalSize": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
people.people.updateContact8 fields changed- changed
Input schema / properties / personFields / descriptionPrevious value: -"Optional. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Defaults to all fi"New value: +"[query parameter] Optional. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Defaults to all fi" - added
Input schema / properties / personFields / formatAdded value: +"google-fieldmask" - changed
Input schema / properties / resourceName / descriptionPrevious value: -"The resource name for the person, assigned by the server. An ASCII string in the form of `people/{person_id}`."New value: +"[URL path segment] The resource name for the person, assigned by the server. An ASCII string in the form of `people/{person_id}`." - added
Input schema / properties / resourceName / patternAdded value: +"^people/[^/]+$" - changed
Input schema / properties / sources / items / descriptionPrevious value: -"Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set."New value: +"[query parameter] Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set. Values: `READ_SOURCE_TYPE_UNSPECIFIED` = Unspecified.; `READ_SOURCE_TYPE_PROFILE` = Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.; `READ_SOURCE_TYPE_CONTACT` = Returns SourceType.CONTACT.; `READ_SOURCE_TYPE_DOMAIN_CONTACT` = Returns SourceType.DOMAIN_CONTACT.; `READ_SOURCE_TYPE_OTHER_CONTACT` = Returns SourceType.OTHER_CONTACT.." - changed
Input schema / properties / updatePersonFields / descriptionPrevious value: -"Required. A field mask to restrict which fields on the person are updated. Multiple fields can be specified by separating them with commas. All updated fields w"New value: +"[query parameter] Required. A field mask to restrict which fields on the person are updated. Multiple fields can be specified by separating them with commas. All updated fields w" - added
Input schema / properties / updatePersonFields / formatAdded value: +"google-fieldmask" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "properties": { + "contactGroupId": { + "type": "string" + }, + "contactGroupResourceName": { + "type": "string" + } + }, + "type": "object" + }, + "domainMembership": { + "properties": { + "inViewerDomain": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "properties": { + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "userTypes": { + "items": { + "enum": [ + "USER_TYPE_UNKNOWN", + "GOOGLE_USER", + "GPLUS_USER", + "GOOGLE_APPS_USER" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
people.people.updateContactPhoto3 fields changed- changed
Input schema / properties / resourceName / descriptionPrevious value: -"Required. Person resource name"New value: +"[URL path segment] Required. Person resource name" - added
Input schema / properties / resourceName / patternAdded value: +"^people/[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "person": { + "properties": { + "addresses": { + "items": { + "properties": { + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "extendedAddress": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "poBox": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "ageRanges": { + "items": { + "properties": { + "ageRange": { + "enum": [ + "AGE_RANGE_UNSPECIFIED", + "LESS_THAN_EIGHTEEN", + "EIGHTEEN_TO_TWENTY", + "TWENTY_ONE_OR_OLDER" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "biographies": { + "items": { + "properties": { + "contentType": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "TEXT_PLAIN", + "TEXT_HTML" + ], + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "birthdays": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "braggingRights": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "calendarUrls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "clientData": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "coverPhotos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "emailAddresses": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "etag": { + "type": "string" + }, + "events": { + "items": { + "properties": { + "date": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "fileAses": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "genders": { + "items": { + "properties": { + "addressMeAs": { + "type": "string" + }, + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "imClients": { + "items": { + "properties": { + "formattedProtocol": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "protocol": { + "type": "string" + }, + "type": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "interests": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locales": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "locations": { + "items": { + "properties": { + "buildingId": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "deskCode": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "floorSection": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "memberships": { + "items": { + "properties": { + "contactGroupMembership": { + "properties": { + "contactGroupId": { + "type": "string" + }, + "contactGroupResourceName": { + "type": "string" + } + }, + "type": "object" + }, + "domainMembership": { + "properties": { + "inViewerDomain": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "metadata": { + "properties": { + "deleted": { + "type": "boolean" + }, + "linkedPeopleResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "objectType": { + "enum": [ + "OBJECT_TYPE_UNSPECIFIED", + "PERSON", + "PAGE" + ], + "type": "string" + }, + "previousResourceNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "profileMetadata": { + "type": "object" + }, + "type": { + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "ACCOUNT", + "PROFILE", + "DOMAIN_PROFILE", + "CONTACT", + "OTHER_CONTACT", + "DOMAIN_CONTACT" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "miscKeywords": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "TYPE_UNSPECIFIED", + "OUTLOOK_BILLING_INFORMATION", + "OUTLOOK_DIRECTORY_SERVER", + "OUTLOOK_KEYWORD", + "OUTLOOK_MILEAGE", + "OUTLOOK_PRIORITY", + "OUTLOOK_SENSITIVITY", + "OUTLOOK_SUBJECT", + "OUTLOOK_USER", + "HOME", + "WORK", + "OTHER" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "names": { + "items": { + "properties": { + "displayName": { + "type": "string" + }, + "displayNameLastFirst": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "honorificPrefix": { + "type": "string" + }, + "honorificSuffix": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "middleName": { + "type": "string" + }, + "phoneticFamilyName": { + "type": "string" + }, + "phoneticFullName": { + "type": "string" + }, + "phoneticGivenName": { + "type": "string" + }, + "phoneticHonorificPrefix": { + "type": "string" + }, + "phoneticHonorificSuffix": { + "type": "string" + }, + "phoneticMiddleName": { + "type": "string" + }, + "unstructuredName": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nicknames": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "enum": [ + "DEFAULT", + "MAIDEN_NAME", + "INITIALS", + "GPLUS", + "OTHER_NAME", + "ALTERNATE_NAME", + "SHORT_NAME" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "occupations": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "organizations": { + "items": { + "properties": { + "costCenter": { + "type": "string" + }, + "current": { + "type": "boolean" + }, + "department": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "endDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "formattedType": { + "type": "string" + }, + "fullTimeEquivalentMillipercent": { + "type": "integer" + }, + "jobDescription": { + "type": "string" + }, + "location": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "phoneticName": { + "type": "string" + }, + "startDate": { + "properties": { + "day": { + "type": "integer" + }, + "month": { + "type": "integer" + }, + "year": { + "type": "integer" + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "phoneNumbers": { + "items": { + "properties": { + "canonicalForm": { + "type": "string" + }, + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "photos": { + "items": { + "properties": { + "default": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relations": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "person": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipInterests": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "relationshipStatuses": { + "items": { + "properties": { + "formattedValue": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "residences": { + "items": { + "properties": { + "current": { + "type": "boolean" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceName": { + "type": "string" + }, + "sipAddresses": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "skills": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "taglines": { + "items": { + "properties": { + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "urls": { + "items": { + "properties": { + "formattedType": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "userDefined": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "metadata": { + "properties": { + "primary": { + "type": "boolean" + }, + "source": { + "type": "object" + }, + "sourcePrimary": { + "type": "boolean" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
script.processes.list15 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of returned processes per page of results. Defaults to 50."New value: +"[query parameter] The maximum number of returned processes per page of results. Defaults to 50." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response."New value: +"[query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response." - changed
Input schema / properties / userProcessFilter.deploymentId / descriptionPrevious value: -"Optional field used to limit returned processes to those originating from projects with a specific deployment ID."New value: +"[query parameter] Optional field used to limit returned processes to those originating from projects with a specific deployment ID." - changed
Input schema / properties / userProcessFilter.endTime / descriptionPrevious value: -"Optional field used to limit returned processes to those that completed on or before the given timestamp."New value: +"[query parameter] Optional field used to limit returned processes to those that completed on or before the given timestamp." - added
Input schema / properties / userProcessFilter.endTime / formatAdded value: +"google-datetime" - changed
Input schema / properties / userProcessFilter.functionName / descriptionPrevious value: -"Optional field used to limit returned processes to those originating from a script function with the given function name."New value: +"[query parameter] Optional field used to limit returned processes to those originating from a script function with the given function name." - changed
Input schema / properties / userProcessFilter.projectName / descriptionPrevious value: -"Optional field used to limit returned processes to those originating from projects with project names containing a specific string."New value: +"[query parameter] Optional field used to limit returned processes to those originating from projects with project names containing a specific string." - changed
Input schema / properties / userProcessFilter.scriptId / descriptionPrevious value: -"Optional field used to limit returned processes to those originating from projects with a specific script ID."New value: +"[query parameter] Optional field used to limit returned processes to those originating from projects with a specific script ID." - changed
Input schema / properties / userProcessFilter.startTime / descriptionPrevious value: -"Optional field used to limit returned processes to those that were started on or after the given timestamp."New value: +"[query parameter] Optional field used to limit returned processes to those that were started on or after the given timestamp." - added
Input schema / properties / userProcessFilter.startTime / formatAdded value: +"google-datetime" - changed
Input schema / properties / userProcessFilter.statuses / items / descriptionPrevious value: -"Optional field used to limit returned processes to those having one of the specified process statuses."New value: +"[query parameter] Optional field used to limit returned processes to those having one of the specified process statuses. Values: `PROCESS_STATUS_UNSPECIFIED` = Unspecified status.; `RUNNING` = The process is currently running.; `PAUSED` = The process has paused.; `COMPLETED` = The process has completed.; `CANCELED` = The process was cancelled.; `FAILED` = The process failed.; `TIMED_OUT` = The process timed out.; `UNKNOWN` = Process status unknown.; `DELAYED` = The process is delayed, waiting for quota.; `EXECUTION_DISABLED` = AppsScript executions are disabled by Admin.." - changed
Input schema / properties / userProcessFilter.types / items / descriptionPrevious value: -"Optional field used to limit returned processes to those having one of the specified process types."New value: +"[query parameter] Optional field used to limit returned processes to those having one of the specified process types. Values: `PROCESS_TYPE_UNSPECIFIED` = Unspecified type.; `ADD_ON` = The process was started from an add-on entry point.; `EXECUTION_API` = The process was started using the Apps Script API.; `TIME_DRIVEN` = The process was started from a time-based trigger.; `TRIGGER` = The process was started from an event-based trigger.; `WEBAPP` = The process was started from a web app entry point.; `EDITOR` = The process was started using the Apps Script IDE.; `SIMPLE_TRIGGER` = The process was started from a G Suite simple trigger.; `MENU` = The process was started from a G Suite menu item.; `BATCH_TASK` = The process was started as a task in a batch job.." - changed
Input schema / properties / userProcessFilter.userAccessLevels / items / descriptionPrevious value: -"Optional field used to limit returned processes to those having one of the specified user access levels."New value: +"[query parameter] Optional field used to limit returned processes to those having one of the specified user access levels. Values: `USER_ACCESS_LEVEL_UNSPECIFIED` = User access level unspecified; `NONE` = The user has no access.; `READ` = The user has read-only access.; `WRITE` = The user has write access.; `OWNER` = The user is an owner.." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "processes": { + "items": { + "properties": { + "duration": { + "type": "string" + }, + "functionName": { + "type": "string" + }, + "processStatus": { + "enum": [ + "PROCESS_STATUS_UNSPECIFIED", + "RUNNING", + "PAUSED", + "COMPLETED", + "CANCELED", + "FAILED", + "TIMED_OUT", + "UNKNOWN", + "DELAYED", + "EXECUTION_DISABLED" + ], + "type": "string" + }, + "processType": { + "enum": [ + "PROCESS_TYPE_UNSPECIFIED", + "ADD_ON", + "EXECUTION_API", + "TIME_DRIVEN", + "TRIGGER", + "WEBAPP", + "EDITOR", + "SIMPLE_TRIGGER", + "MENU", + "BATCH_TASK" + ], + "type": "string" + }, + "projectName": { + "type": "string" + }, + "runtimeVersion": { + "enum": [ + "RUNTIME_VERSION_UNSPECIFIED", + "DEPRECATED_ES5", + "V8" + ], + "type": "string" + }, + "startTime": { + "type": "string" + }, + "userAccessLevel": { + "enum": [ + "USER_ACCESS_LEVEL_UNSPECIFIED", + "NONE", + "READ", + "WRITE", + "OWNER" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
script.processes.listScriptProcesses14 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of returned processes per page of results. Defaults to 50."New value: +"[query parameter] The maximum number of returned processes per page of results. Defaults to 50." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response."New value: +"[query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response." - changed
Input schema / properties / scriptId / descriptionPrevious value: -"The script ID of the project whose processes are listed."New value: +"[query parameter] The script ID of the project whose processes are listed." - changed
Input schema / properties / scriptProcessFilter.deploymentId / descriptionPrevious value: -"Optional field used to limit returned processes to those originating from projects with a specific deployment ID."New value: +"[query parameter] Optional field used to limit returned processes to those originating from projects with a specific deployment ID." - changed
Input schema / properties / scriptProcessFilter.endTime / descriptionPrevious value: -"Optional field used to limit returned processes to those that completed on or before the given timestamp."New value: +"[query parameter] Optional field used to limit returned processes to those that completed on or before the given timestamp." - added
Input schema / properties / scriptProcessFilter.endTime / formatAdded value: +"google-datetime" - changed
Input schema / properties / scriptProcessFilter.functionName / descriptionPrevious value: -"Optional field used to limit returned processes to those originating from a script function with the given function name."New value: +"[query parameter] Optional field used to limit returned processes to those originating from a script function with the given function name." - changed
Input schema / properties / scriptProcessFilter.startTime / descriptionPrevious value: -"Optional field used to limit returned processes to those that were started on or after the given timestamp."New value: +"[query parameter] Optional field used to limit returned processes to those that were started on or after the given timestamp." - added
Input schema / properties / scriptProcessFilter.startTime / formatAdded value: +"google-datetime" - changed
Input schema / properties / scriptProcessFilter.statuses / items / descriptionPrevious value: -"Optional field used to limit returned processes to those having one of the specified process statuses."New value: +"[query parameter] Optional field used to limit returned processes to those having one of the specified process statuses. Values: `PROCESS_STATUS_UNSPECIFIED` = Unspecified status.; `RUNNING` = The process is currently running.; `PAUSED` = The process has paused.; `COMPLETED` = The process has completed.; `CANCELED` = The process was cancelled.; `FAILED` = The process failed.; `TIMED_OUT` = The process timed out.; `UNKNOWN` = Process status unknown.; `DELAYED` = The process is delayed, waiting for quota.; `EXECUTION_DISABLED` = AppsScript executions are disabled by Admin.." - changed
Input schema / properties / scriptProcessFilter.types / items / descriptionPrevious value: -"Optional field used to limit returned processes to those having one of the specified process types."New value: +"[query parameter] Optional field used to limit returned processes to those having one of the specified process types. Values: `PROCESS_TYPE_UNSPECIFIED` = Unspecified type.; `ADD_ON` = The process was started from an add-on entry point.; `EXECUTION_API` = The process was started using the Apps Script API.; `TIME_DRIVEN` = The process was started from a time-based trigger.; `TRIGGER` = The process was started from an event-based trigger.; `WEBAPP` = The process was started from a web app entry point.; `EDITOR` = The process was started using the Apps Script IDE.; `SIMPLE_TRIGGER` = The process was started from a G Suite simple trigger.; `MENU` = The process was started from a G Suite menu item.; `BATCH_TASK` = The process was started as a task in a batch job.." - changed
Input schema / properties / scriptProcessFilter.userAccessLevels / items / descriptionPrevious value: -"Optional field used to limit returned processes to those having one of the specified user access levels."New value: +"[query parameter] Optional field used to limit returned processes to those having one of the specified user access levels. Values: `USER_ACCESS_LEVEL_UNSPECIFIED` = User access level unspecified; `NONE` = The user has no access.; `READ` = The user has read-only access.; `WRITE` = The user has write access.; `OWNER` = The user is an owner.." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "processes": { + "items": { + "properties": { + "duration": { + "type": "string" + }, + "functionName": { + "type": "string" + }, + "processStatus": { + "enum": [ + "PROCESS_STATUS_UNSPECIFIED", + "RUNNING", + "PAUSED", + "COMPLETED", + "CANCELED", + "FAILED", + "TIMED_OUT", + "UNKNOWN", + "DELAYED", + "EXECUTION_DISABLED" + ], + "type": "string" + }, + "processType": { + "enum": [ + "PROCESS_TYPE_UNSPECIFIED", + "ADD_ON", + "EXECUTION_API", + "TIME_DRIVEN", + "TRIGGER", + "WEBAPP", + "EDITOR", + "SIMPLE_TRIGGER", + "MENU", + "BATCH_TASK" + ], + "type": "string" + }, + "projectName": { + "type": "string" + }, + "runtimeVersion": { + "enum": [ + "RUNTIME_VERSION_UNSPECIFIED", + "DEPRECATED_ES5", + "V8" + ], + "type": "string" + }, + "startTime": { + "type": "string" + }, + "userAccessLevel": { + "enum": [ + "USER_ACCESS_LEVEL_UNSPECIFIED", + "NONE", + "READ", + "WRITE", + "OWNER" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
script.projects.create1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "createTime": { + "type": "string" + }, + "creator": { + "properties": { + "domain": { + "type": "string" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + }, + "photoUrl": { + "type": "string" + } + }, + "type": "object" + }, + "lastModifyUser": { + "properties": { + "domain": { + "type": "string" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + }, + "photoUrl": { + "type": "string" + } + }, + "type": "object" + }, + "parentId": { + "type": "string" + }, + "scriptId": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
script.projects.deployments.create2 fields changed- changed
Input schema / properties / scriptId / descriptionPrevious value: -"The script project's Drive ID."New value: +"[URL path segment] The script project's Drive ID." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "deploymentConfig": { + "properties": { + "description": { + "type": "string" + }, + "manifestFileName": { + "type": "string" + }, + "scriptId": { + "type": "string" + }, + "versionNumber": { + "type": "integer" + } + }, + "type": "object" + }, + "deploymentId": { + "type": "string" + }, + "entryPoints": { + "items": { + "properties": { + "addOn": { + "properties": { + "addOnType": { + "enum": [ + "UNKNOWN_ADDON_TYPE", + "GMAIL", + "DATA_STUDIO" + ], + "type": "string" + }, + "description": { + "type": "string" + }, + "helpUrl": { + "type": "string" + }, + "postInstallTipUrl": { + "type": "string" + }, + "reportIssueUrl": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "entryPointType": { + "enum": [ + "ENTRY_POINT_TYPE_UNSPECIFIED", + "WEB_APP", + "EXECUTION_API", + "ADD_ON" + ], + "type": "string" + }, + "executionApi": { + "properties": { + "entryPointConfig": { + "properties": { + "access": { + "enum": [ + "UNKNOWN_ACCESS", + "MYSELF", + "DOMAIN", + "ANYONE", + "ANYONE_ANONYMOUS" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "webApp": { + "properties": { + "entryPointConfig": { + "properties": { + "access": { + "enum": [ + "UNKNOWN_ACCESS", + "MYSELF", + "DOMAIN", + "ANYONE", + "ANYONE_ANONYMOUS" + ], + "type": "string" + }, + "executeAs": { + "enum": [ + "UNKNOWN_EXECUTE_AS", + "USER_ACCESSING", + "USER_DEPLOYING" + ], + "type": "string" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
script.projects.deployments.delete3 fields changed- changed
Input schema / properties / deploymentId / descriptionPrevious value: -"The deployment ID to be undeployed."New value: +"[URL path segment] The deployment ID to be undeployed." - changed
Input schema / properties / scriptId / descriptionPrevious value: -"The script project's Drive ID."New value: +"[URL path segment] The script project's Drive ID." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
script.projects.deployments.get3 fields changed- changed
Input schema / properties / deploymentId / descriptionPrevious value: -"The deployment ID."New value: +"[URL path segment] The deployment ID." - changed
Input schema / properties / scriptId / descriptionPrevious value: -"The script project's Drive ID."New value: +"[URL path segment] The script project's Drive ID." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "deploymentConfig": { + "properties": { + "description": { + "type": "string" + }, + "manifestFileName": { + "type": "string" + }, + "scriptId": { + "type": "string" + }, + "versionNumber": { + "type": "integer" + } + }, + "type": "object" + }, + "deploymentId": { + "type": "string" + }, + "entryPoints": { + "items": { + "properties": { + "addOn": { + "properties": { + "addOnType": { + "enum": [ + "UNKNOWN_ADDON_TYPE", + "GMAIL", + "DATA_STUDIO" + ], + "type": "string" + }, + "description": { + "type": "string" + }, + "helpUrl": { + "type": "string" + }, + "postInstallTipUrl": { + "type": "string" + }, + "reportIssueUrl": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "entryPointType": { + "enum": [ + "ENTRY_POINT_TYPE_UNSPECIFIED", + "WEB_APP", + "EXECUTION_API", + "ADD_ON" + ], + "type": "string" + }, + "executionApi": { + "properties": { + "entryPointConfig": { + "properties": { + "access": { + "enum": [ + "UNKNOWN_ACCESS", + "MYSELF", + "DOMAIN", + "ANYONE", + "ANYONE_ANONYMOUS" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "webApp": { + "properties": { + "entryPointConfig": { + "properties": { + "access": { + "enum": [ + "UNKNOWN_ACCESS", + "MYSELF", + "DOMAIN", + "ANYONE", + "ANYONE_ANONYMOUS" + ], + "type": "string" + }, + "executeAs": { + "enum": [ + "UNKNOWN_EXECUTE_AS", + "USER_ACCESSING", + "USER_DEPLOYING" + ], + "type": "string" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
script.projects.deployments.list5 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of deployments on each returned page. Defaults to 50."New value: +"[query parameter] The maximum number of deployments on each returned page. Defaults to 50." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response."New value: +"[query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response." - changed
Input schema / properties / scriptId / descriptionPrevious value: -"The script project's Drive ID."New value: +"[URL path segment] The script project's Drive ID." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "deployments": { + "items": { + "properties": { + "deploymentConfig": { + "properties": { + "description": { + "type": "string" + }, + "manifestFileName": { + "type": "string" + }, + "scriptId": { + "type": "string" + }, + "versionNumber": { + "type": "integer" + } + }, + "type": "object" + }, + "deploymentId": { + "type": "string" + }, + "entryPoints": { + "items": { + "properties": { + "addOn": { + "properties": { + "addOnType": { + "enum": [ + "UNKNOWN_ADDON_TYPE", + "GMAIL", + "DATA_STUDIO" + ], + "type": "string" + }, + "description": { + "type": "string" + }, + "helpUrl": { + "type": "string" + }, + "postInstallTipUrl": { + "type": "string" + }, + "reportIssueUrl": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "entryPointType": { + "enum": [ + "ENTRY_POINT_TYPE_UNSPECIFIED", + "WEB_APP", + "EXECUTION_API", + "ADD_ON" + ], + "type": "string" + }, + "executionApi": { + "properties": { + "entryPointConfig": { + "type": "object" + } + }, + "type": "object" + }, + "webApp": { + "properties": { + "entryPointConfig": { + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
script.projects.deployments.update3 fields changed- changed
Input schema / properties / deploymentId / descriptionPrevious value: -"The deployment ID for this deployment."New value: +"[URL path segment] The deployment ID for this deployment." - changed
Input schema / properties / scriptId / descriptionPrevious value: -"The script project's Drive ID."New value: +"[URL path segment] The script project's Drive ID." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "deploymentConfig": { + "properties": { + "description": { + "type": "string" + }, + "manifestFileName": { + "type": "string" + }, + "scriptId": { + "type": "string" + }, + "versionNumber": { + "type": "integer" + } + }, + "type": "object" + }, + "deploymentId": { + "type": "string" + }, + "entryPoints": { + "items": { + "properties": { + "addOn": { + "properties": { + "addOnType": { + "enum": [ + "UNKNOWN_ADDON_TYPE", + "GMAIL", + "DATA_STUDIO" + ], + "type": "string" + }, + "description": { + "type": "string" + }, + "helpUrl": { + "type": "string" + }, + "postInstallTipUrl": { + "type": "string" + }, + "reportIssueUrl": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "entryPointType": { + "enum": [ + "ENTRY_POINT_TYPE_UNSPECIFIED", + "WEB_APP", + "EXECUTION_API", + "ADD_ON" + ], + "type": "string" + }, + "executionApi": { + "properties": { + "entryPointConfig": { + "properties": { + "access": { + "enum": [ + "UNKNOWN_ACCESS", + "MYSELF", + "DOMAIN", + "ANYONE", + "ANYONE_ANONYMOUS" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "webApp": { + "properties": { + "entryPointConfig": { + "properties": { + "access": { + "enum": [ + "UNKNOWN_ACCESS", + "MYSELF", + "DOMAIN", + "ANYONE", + "ANYONE_ANONYMOUS" + ], + "type": "string" + }, + "executeAs": { + "enum": [ + "UNKNOWN_EXECUTE_AS", + "USER_ACCESSING", + "USER_DEPLOYING" + ], + "type": "string" + } + }, + "type": "object" + }, + "url": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
script.projects.get2 fields changed- changed
Input schema / properties / scriptId / descriptionPrevious value: -"The script project's Drive ID."New value: +"[URL path segment] The script project's Drive ID." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "createTime": { + "type": "string" + }, + "creator": { + "properties": { + "domain": { + "type": "string" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + }, + "photoUrl": { + "type": "string" + } + }, + "type": "object" + }, + "lastModifyUser": { + "properties": { + "domain": { + "type": "string" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + }, + "photoUrl": { + "type": "string" + } + }, + "type": "object" + }, + "parentId": { + "type": "string" + }, + "scriptId": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" +}
- Changed
script.projects.getContent4 fields changed- changed
Input schema / properties / scriptId / descriptionPrevious value: -"The script project's Drive ID."New value: +"[URL path segment] The script project's Drive ID." - changed
Input schema / properties / versionNumber / descriptionPrevious value: -"The version number of the project to retrieve. If not provided, the project's HEAD version is returned."New value: +"[query parameter] The version number of the project to retrieve. If not provided, the project's HEAD version is returned." - added
Input schema / properties / versionNumber / formatAdded value: +"int32" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "files": { + "items": { + "properties": { + "createTime": { + "type": "string" + }, + "functionSet": { + "properties": { + "values": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "lastModifyUser": { + "properties": { + "domain": { + "type": "string" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + }, + "photoUrl": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "type": "string" + }, + "type": { + "enum": [ + "ENUM_TYPE_UNSPECIFIED", + "SERVER_JS", + "HTML", + "JSON" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "scriptId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
script.projects.getMetrics4 fields changed- changed
Input schema / properties / metricsFilter.deploymentId / descriptionPrevious value: -"Optional field indicating a specific deployment to retrieve metrics from."New value: +"[query parameter] Optional field indicating a specific deployment to retrieve metrics from." - changed
Input schema / properties / metricsGranularity / descriptionPrevious value: -"Required field indicating what granularity of metrics are returned."New value: +"[query parameter] Required field indicating what granularity of metrics are returned. Values: `UNSPECIFIED_GRANULARITY` = Default metric granularity used to query no metrics.; `WEEKLY` = Represents weekly metrics.; `DAILY` = Represents daily metrics over a period of 7 days.." - changed
Input schema / properties / scriptId / descriptionPrevious value: -"Required field indicating the script to get metrics for."New value: +"[URL path segment] Required field indicating the script to get metrics for." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "activeUsers": { + "items": { + "properties": { + "endTime": { + "type": "string" + }, + "startTime": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "failedExecutions": { + "items": { + "properties": { + "endTime": { + "type": "string" + }, + "startTime": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "totalExecutions": { + "items": { + "properties": { + "endTime": { + "type": "string" + }, + "startTime": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
script.projects.updateContent2 fields changed- changed
Input schema / properties / scriptId / descriptionPrevious value: -"The script project's Drive ID."New value: +"[URL path segment] The script project's Drive ID." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "files": { + "items": { + "properties": { + "createTime": { + "type": "string" + }, + "functionSet": { + "properties": { + "values": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "lastModifyUser": { + "properties": { + "domain": { + "type": "string" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + }, + "photoUrl": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "source": { + "type": "string" + }, + "type": { + "enum": [ + "ENUM_TYPE_UNSPECIFIED", + "SERVER_JS", + "HTML", + "JSON" + ], + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "scriptId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
script.projects.versions.create2 fields changed- changed
Input schema / properties / scriptId / descriptionPrevious value: -"The script project's Drive ID."New value: +"[URL path segment] The script project's Drive ID." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "createTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "scriptId": { + "type": "string" + }, + "versionNumber": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
script.projects.versions.get4 fields changed- changed
Input schema / properties / scriptId / descriptionPrevious value: -"The script project's Drive ID."New value: +"[URL path segment] The script project's Drive ID." - changed
Input schema / properties / versionNumber / descriptionPrevious value: -"The version number."New value: +"[URL path segment] The version number." - added
Input schema / properties / versionNumber / formatAdded value: +"int32" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "createTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "scriptId": { + "type": "string" + }, + "versionNumber": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
script.projects.versions.list5 fields changed- changed
Input schema / properties / pageSize / descriptionPrevious value: -"The maximum number of versions on each returned page. Defaults to 50."New value: +"[query parameter] The maximum number of versions on each returned page. Defaults to 50." - added
Input schema / properties / pageSize / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response."New value: +"[query parameter] The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response." - changed
Input schema / properties / scriptId / descriptionPrevious value: -"The script project's Drive ID."New value: +"[URL path segment] The script project's Drive ID." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "nextPageToken": { + "type": "string" + }, + "versions": { + "items": { + "properties": { + "createTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "scriptId": { + "type": "string" + }, + "versionNumber": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
script.scripts.run2 fields changed- changed
Input schema / properties / scriptId / descriptionPrevious value: -"The script ID of the script to be executed. Find the script ID on the **Project settings** page under \"IDs.\" As multiple executable APIs can be deployed in new "New value: +"[URL path segment] The script ID of the script to be executed. Find the script ID on the **Project settings** page under \"IDs.\" As multiple executable APIs can be deployed in new " - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "done": { + "type": "boolean" + }, + "error": { + "properties": { + "code": { + "type": "integer" + }, + "details": { + "items": { + "type": "object" + }, + "type": "array" + }, + "message": { + "type": "string" + } + }, + "type": "object" + }, + "response": { + "type": "object" + } + }, + "type": "object" +}
- Changed
searchconsole.searchanalytics.query2 fields changed- changed
Input schema / properties / siteUrl / descriptionPrevious value: -"The site's URL, including protocol. For example: `http://www.example.com/`."New value: +"[URL path segment] The site's URL, including protocol. For example: `http://www.example.com/`." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "metadata": { + "properties": { + "firstIncompleteDate": { + "type": "string" + }, + "firstIncompleteHour": { + "type": "string" + } + }, + "type": "object" + }, + "responseAggregationType": { + "enum": [ + "AUTO", + "BY_PROPERTY", + "BY_PAGE", + "BY_NEWS_SHOWCASE_PANEL" + ], + "type": "string" + }, + "rows": { + "items": { + "properties": { + "clicks": { + "type": "number" + }, + "ctr": { + "type": "number" + }, + "impressions": { + "type": "number" + }, + "keys": { + "items": { + "type": "string" + }, + "type": "array" + }, + "position": { + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
searchconsole.sitemaps.delete2 fields changed- changed
Input schema / properties / feedpath / descriptionPrevious value: -"The URL of the actual sitemap. For example: `http://www.example.com/sitemap.xml`."New value: +"[URL path segment] The URL of the actual sitemap. For example: `http://www.example.com/sitemap.xml`." - changed
Input schema / properties / siteUrl / descriptionPrevious value: -"The site's URL, including protocol. For example: `http://www.example.com/`."New value: +"[URL path segment] The site's URL, including protocol. For example: `http://www.example.com/`."
- Changed
searchconsole.sitemaps.get3 fields changed- changed
Input schema / properties / feedpath / descriptionPrevious value: -"The URL of the actual sitemap. For example: `http://www.example.com/sitemap.xml`."New value: +"[URL path segment] The URL of the actual sitemap. For example: `http://www.example.com/sitemap.xml`." - changed
Input schema / properties / siteUrl / descriptionPrevious value: -"The site's URL, including protocol. For example: `http://www.example.com/`."New value: +"[URL path segment] The site's URL, including protocol. For example: `http://www.example.com/`." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "contents": { + "items": { + "properties": { + "indexed": { + "type": "string" + }, + "submitted": { + "type": "string" + }, + "type": { + "enum": [ + "WEB", + "IMAGE", + "VIDEO", + "NEWS", + "MOBILE", + "ANDROID_APP", + "PATTERN", + "IOS_APP", + "DATA_FEED_ELEMENT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "errors": { + "type": "string" + }, + "isPending": { + "type": "boolean" + }, + "isSitemapsIndex": { + "type": "boolean" + }, + "lastDownloaded": { + "type": "string" + }, + "lastSubmitted": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "enum": [ + "NOT_SITEMAP", + "URL_LIST", + "SITEMAP", + "RSS_FEED", + "ATOM_FEED", + "PATTERN_SITEMAP", + "OCEANFRONT" + ], + "type": "string" + }, + "warnings": { + "type": "string" + } + }, + "type": "object" +}
- Changed
searchconsole.sitemaps.list3 fields changed- changed
Input schema / properties / siteUrl / descriptionPrevious value: -"The site's URL, including protocol. For example: `http://www.example.com/`."New value: +"[URL path segment] The site's URL, including protocol. For example: `http://www.example.com/`." - changed
Input schema / properties / sitemapIndex / descriptionPrevious value: -"A URL of a site's sitemap index. For example: `http://www.example.com/sitemapindex.xml`."New value: +"[query parameter] A URL of a site's sitemap index. For example: `http://www.example.com/sitemapindex.xml`." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "sitemap": { + "items": { + "properties": { + "contents": { + "items": { + "properties": { + "indexed": { + "type": "string" + }, + "submitted": { + "type": "string" + }, + "type": { + "enum": [ + "WEB", + "IMAGE", + "VIDEO", + "NEWS", + "MOBILE", + "ANDROID_APP", + "PATTERN", + "IOS_APP", + "DATA_FEED_ELEMENT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "errors": { + "type": "string" + }, + "isPending": { + "type": "boolean" + }, + "isSitemapsIndex": { + "type": "boolean" + }, + "lastDownloaded": { + "type": "string" + }, + "lastSubmitted": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "enum": [ + "NOT_SITEMAP", + "URL_LIST", + "SITEMAP", + "RSS_FEED", + "ATOM_FEED", + "PATTERN_SITEMAP", + "OCEANFRONT" + ], + "type": "string" + }, + "warnings": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
searchconsole.sitemaps.submit2 fields changed- changed
Input schema / properties / feedpath / descriptionPrevious value: -"The URL of the actual sitemap. For example: `http://www.example.com/sitemap.xml`."New value: +"[URL path segment] The URL of the actual sitemap. For example: `http://www.example.com/sitemap.xml`." - changed
Input schema / properties / siteUrl / descriptionPrevious value: -"The site's URL, including protocol. For example: `http://www.example.com/`."New value: +"[URL path segment] The site's URL, including protocol. For example: `http://www.example.com/`."
- Changed
searchconsole.sites.add1 field changed- changed
Input schema / properties / siteUrl / descriptionPrevious value: -"The URL of the site to add."New value: +"[URL path segment] The URL of the site to add."
- Changed
searchconsole.sites.delete1 field changed- changed
Input schema / properties / siteUrl / descriptionPrevious value: -"The URI of the property as defined in Search Console. **Examples:** `http://www.example.com/` or `sc-domain:example.com`."New value: +"[URL path segment] The URI of the property as defined in Search Console. **Examples:** `http://www.example.com/` or `sc-domain:example.com`."
- Changed
searchconsole.sites.get2 fields changed- changed
Input schema / properties / siteUrl / descriptionPrevious value: -"The URI of the property as defined in Search Console. **Examples:** `http://www.example.com/` or `sc-domain:example.com`."New value: +"[URL path segment] The URI of the property as defined in Search Console. **Examples:** `http://www.example.com/` or `sc-domain:example.com`." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "permissionLevel": { + "enum": [ + "SITE_PERMISSION_LEVEL_UNSPECIFIED", + "SITE_OWNER", + "SITE_FULL_USER", + "SITE_RESTRICTED_USER", + "SITE_UNVERIFIED_USER" + ], + "type": "string" + }, + "siteUrl": { + "type": "string" + } + }, + "type": "object" +}
- Changed
searchconsole.sites.list1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "siteEntry": { + "items": { + "properties": { + "permissionLevel": { + "enum": [ + "SITE_PERMISSION_LEVEL_UNSPECIFIED", + "SITE_OWNER", + "SITE_FULL_USER", + "SITE_RESTRICTED_USER", + "SITE_UNVERIFIED_USER" + ], + "type": "string" + }, + "siteUrl": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
searchconsole.urlInspection.index.inspect1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "inspectionResult": { + "properties": { + "ampResult": { + "properties": { + "ampIndexStatusVerdict": { + "enum": [ + "VERDICT_UNSPECIFIED", + "PASS", + "PARTIAL", + "FAIL", + "NEUTRAL" + ], + "type": "string" + }, + "ampUrl": { + "type": "string" + }, + "indexingState": { + "enum": [ + "AMP_INDEXING_STATE_UNSPECIFIED", + "AMP_INDEXING_ALLOWED", + "BLOCKED_DUE_TO_NOINDEX", + "BLOCKED_DUE_TO_EXPIRED_UNAVAILABLE_AFTER" + ], + "type": "string" + }, + "issues": { + "items": { + "properties": { + "issueMessage": { + "type": "string" + }, + "severity": { + "enum": [ + "SEVERITY_UNSPECIFIED", + "WARNING", + "ERROR" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "lastCrawlTime": { + "type": "string" + }, + "pageFetchState": { + "enum": [ + "PAGE_FETCH_STATE_UNSPECIFIED", + "SUCCESSFUL", + "SOFT_404", + "BLOCKED_ROBOTS_TXT", + "NOT_FOUND", + "ACCESS_DENIED", + "SERVER_ERROR", + "REDIRECT_ERROR", + "ACCESS_FORBIDDEN", + "BLOCKED_4XX", + "INTERNAL_CRAWL_ERROR", + "INVALID_URL" + ], + "type": "string" + }, + "robotsTxtState": { + "enum": [ + "ROBOTS_TXT_STATE_UNSPECIFIED", + "ALLOWED", + "DISALLOWED" + ], + "type": "string" + }, + "verdict": { + "enum": [ + "VERDICT_UNSPECIFIED", + "PASS", + "PARTIAL", + "FAIL", + "NEUTRAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "indexStatusResult": { + "properties": { + "coverageState": { + "type": "string" + }, + "crawledAs": { + "enum": [ + "CRAWLING_USER_AGENT_UNSPECIFIED", + "DESKTOP", + "MOBILE" + ], + "type": "string" + }, + "googleCanonical": { + "type": "string" + }, + "indexingState": { + "enum": [ + "INDEXING_STATE_UNSPECIFIED", + "INDEXING_ALLOWED", + "BLOCKED_BY_META_TAG", + "BLOCKED_BY_HTTP_HEADER", + "BLOCKED_BY_ROBOTS_TXT" + ], + "type": "string" + }, + "lastCrawlTime": { + "type": "string" + }, + "pageFetchState": { + "enum": [ + "PAGE_FETCH_STATE_UNSPECIFIED", + "SUCCESSFUL", + "SOFT_404", + "BLOCKED_ROBOTS_TXT", + "NOT_FOUND", + "ACCESS_DENIED", + "SERVER_ERROR", + "REDIRECT_ERROR", + "ACCESS_FORBIDDEN", + "BLOCKED_4XX", + "INTERNAL_CRAWL_ERROR", + "INVALID_URL" + ], + "type": "string" + }, + "referringUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "robotsTxtState": { + "enum": [ + "ROBOTS_TXT_STATE_UNSPECIFIED", + "ALLOWED", + "DISALLOWED" + ], + "type": "string" + }, + "sitemap": { + "items": { + "type": "string" + }, + "type": "array" + }, + "userCanonical": { + "type": "string" + }, + "verdict": { + "enum": [ + "VERDICT_UNSPECIFIED", + "PASS", + "PARTIAL", + "FAIL", + "NEUTRAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "inspectionResultLink": { + "type": "string" + }, + "mobileUsabilityResult": { + "properties": { + "issues": { + "items": { + "properties": { + "issueType": { + "enum": [ + "MOBILE_USABILITY_ISSUE_TYPE_UNSPECIFIED", + "USES_INCOMPATIBLE_PLUGINS", + "CONFIGURE_VIEWPORT", + "FIXED_WIDTH_VIEWPORT", + "SIZE_CONTENT_TO_VIEWPORT", + "USE_LEGIBLE_FONT_SIZES", + "TAP_TARGETS_TOO_CLOSE" + ], + "type": "string" + }, + "message": { + "type": "string" + }, + "severity": { + "enum": [ + "SEVERITY_UNSPECIFIED", + "WARNING", + "ERROR" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "verdict": { + "enum": [ + "VERDICT_UNSPECIFIED", + "PASS", + "PARTIAL", + "FAIL", + "NEUTRAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "richResultsResult": { + "properties": { + "detectedItems": { + "items": { + "properties": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "richResultType": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "verdict": { + "enum": [ + "VERDICT_UNSPECIFIED", + "PASS", + "PARTIAL", + "FAIL", + "NEUTRAL" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
searchconsole.urlTestingTools.mobileFriendlyTest.run1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "mobileFriendliness": { + "enum": [ + "MOBILE_FRIENDLY_TEST_RESULT_UNSPECIFIED", + "MOBILE_FRIENDLY", + "NOT_MOBILE_FRIENDLY" + ], + "type": "string" + }, + "mobileFriendlyIssues": { + "items": { + "properties": { + "rule": { + "enum": [ + "MOBILE_FRIENDLY_RULE_UNSPECIFIED", + "USES_INCOMPATIBLE_PLUGINS", + "CONFIGURE_VIEWPORT", + "FIXED_WIDTH_VIEWPORT", + "SIZE_CONTENT_TO_VIEWPORT", + "USE_LEGIBLE_FONT_SIZES", + "TAP_TARGETS_TOO_CLOSE" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "resourceIssues": { + "items": { + "properties": { + "blockedResource": { + "properties": { + "url": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "screenshot": { + "properties": { + "data": { + "type": "string" + }, + "mimeType": { + "type": "string" + } + }, + "type": "object" + }, + "testStatus": { + "properties": { + "details": { + "type": "string" + }, + "status": { + "enum": [ + "TEST_STATUS_UNSPECIFIED", + "COMPLETE", + "INTERNAL_ERROR", + "PAGE_UNREACHABLE" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.batchUpdate2 fields changed- changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The spreadsheet to apply the updates to."New value: +"[URL path segment] The spreadsheet to apply the updates to." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "commentUpdateState": { + "enum": [ + "COMMENT_UPDATE_STATE_UNSPECIFIED", + "NO_UPDATES_REQUESTED", + "ALL_SAVED", + "ALL_FAILED_UNKNOWN_REASON" + ], + "type": "string" + }, + "replies": { + "items": { + "properties": { + "addBanding": { + "properties": { + "bandedRange": { + "properties": { + "bandedRangeId": { + "type": "integer" + }, + "bandedRangeReference": { + "type": "string" + }, + "columnProperties": { + "type": "object" + }, + "range": { + "type": "object" + }, + "rowProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addChart": { + "properties": { + "chart": { + "properties": { + "border": { + "type": "object" + }, + "chartId": { + "type": "integer" + }, + "position": { + "type": "object" + }, + "spec": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addCommentReply": { + "properties": { + "post": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedSpreadsheet": { + "type": "boolean" + }, + "fromImportedSpreadsheet": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addDataSource": { + "properties": { + "dataExecutionStatus": { + "properties": { + "errorCode": { + "enum": [ + "DATA_EXECUTION_ERROR_CODE_UNSPECIFIED", + "TIMED_OUT", + "TOO_MANY_ROWS", + "TOO_MANY_COLUMNS", + "TOO_MANY_CELLS", + "ENGINE", + "PARAMETER_INVALID", + "UNSUPPORTED_DATA_TYPE", + "DUPLICATE_COLUMN_NAMES", + "INTERRUPTED", + "CONCURRENT_QUERY", + "OTHER", + "TOO_MANY_CHARS_PER_CELL", + "DATA_NOT_FOUND", + "PERMISSION_DENIED", + "MISSING_COLUMN_ALIAS", + "OBJECT_NOT_FOUND", + "OBJECT_IN_ERROR_STATE", + "OBJECT_SPEC_INVALID", + "DATA_EXECUTION_CANCELLED" + ], + "type": "string" + }, + "errorMessage": { + "type": "string" + }, + "lastRefreshTime": { + "type": "string" + }, + "state": { + "enum": [ + "DATA_EXECUTION_STATE_UNSPECIFIED", + "NOT_STARTED", + "RUNNING", + "CANCELLING", + "SUCCEEDED", + "FAILED" + ], + "type": "string" + } + }, + "type": "object" + }, + "dataSource": { + "properties": { + "calculatedColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "dataSourceId": { + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spec": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addDimensionGroup": { + "properties": { + "dimensionGroups": { + "items": { + "properties": { + "collapsed": { + "type": "boolean" + }, + "depth": { + "type": "integer" + }, + "range": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "addFilterView": { + "properties": { + "filter": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "filterViewId": { + "type": "integer" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "type": "object" + }, + "sortSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addNamedRange": { + "properties": { + "namedRange": { + "properties": { + "name": { + "type": "string" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addProtectedRange": { + "properties": { + "protectedRange": { + "properties": { + "description": { + "type": "string" + }, + "editors": { + "type": "object" + }, + "namedRangeId": { + "type": "string" + }, + "protectedRangeId": { + "type": "integer" + }, + "range": { + "type": "object" + }, + "requestingUserCanEdit": { + "type": "boolean" + }, + "tableId": { + "type": "string" + }, + "unprotectedRanges": { + "items": { + "type": "object" + }, + "type": "array" + }, + "warningOnly": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addSheet": { + "properties": { + "properties": { + "properties": { + "dataSourceSheetProperties": { + "type": "object" + }, + "gridProperties": { + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "index": { + "type": "integer" + }, + "rightToLeft": { + "type": "boolean" + }, + "sheetId": { + "type": "integer" + }, + "sheetType": { + "enum": [ + "SHEET_TYPE_UNSPECIFIED", + "GRID", + "OBJECT", + "DATA_SOURCE" + ], + "type": "string" + }, + "tabColor": { + "type": "object" + }, + "tabColorStyle": { + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addSlicer": { + "properties": { + "slicer": { + "properties": { + "position": { + "type": "object" + }, + "slicerId": { + "type": "integer" + }, + "spec": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "addTable": { + "properties": { + "table": { + "properties": { + "columnProperties": { + "items": { + "type": "object" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "range": { + "type": "object" + }, + "rowsProperties": { + "type": "object" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "cancelDataSourceRefresh": { + "properties": { + "statuses": { + "items": { + "properties": { + "reference": { + "type": "object" + }, + "refreshCancellationStatus": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "createDeveloperMetadata": { + "properties": { + "developerMetadata": { + "properties": { + "location": { + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deleteConditionalFormatRule": { + "properties": { + "rule": { + "properties": { + "booleanRule": { + "type": "object" + }, + "gradientRule": { + "type": "object" + }, + "ranges": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "deleteDeveloperMetadata": { + "properties": { + "deletedDeveloperMetadata": { + "items": { + "properties": { + "location": { + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "deleteDimensionGroup": { + "properties": { + "dimensionGroups": { + "items": { + "properties": { + "collapsed": { + "type": "boolean" + }, + "depth": { + "type": "integer" + }, + "range": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "deleteDuplicates": { + "properties": { + "duplicatesRemovedCount": { + "type": "integer" + } + }, + "type": "object" + }, + "duplicateFilterView": { + "properties": { + "filter": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "filterViewId": { + "type": "integer" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "type": "object" + }, + "sortSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "duplicateSheet": { + "properties": { + "properties": { + "properties": { + "dataSourceSheetProperties": { + "type": "object" + }, + "gridProperties": { + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "index": { + "type": "integer" + }, + "rightToLeft": { + "type": "boolean" + }, + "sheetId": { + "type": "integer" + }, + "sheetType": { + "enum": [ + "SHEET_TYPE_UNSPECIFIED", + "GRID", + "OBJECT", + "DATA_SOURCE" + ], + "type": "string" + }, + "tabColor": { + "type": "object" + }, + "tabColorStyle": { + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "findReplace": { + "properties": { + "formulasChanged": { + "type": "integer" + }, + "occurrencesChanged": { + "type": "integer" + }, + "rowsChanged": { + "type": "integer" + }, + "sheetsChanged": { + "type": "integer" + }, + "valuesChanged": { + "type": "integer" + } + }, + "type": "object" + }, + "insertComment": { + "properties": { + "commentThread": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "refreshDataSource": { + "properties": { + "statuses": { + "items": { + "properties": { + "dataExecutionStatus": { + "type": "object" + }, + "reference": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "trimWhitespace": { + "properties": { + "cellsChangedCount": { + "type": "integer" + } + }, + "type": "object" + }, + "updateConditionalFormatRule": { + "properties": { + "newIndex": { + "type": "integer" + }, + "newRule": { + "properties": { + "booleanRule": { + "type": "object" + }, + "gradientRule": { + "type": "object" + }, + "ranges": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "oldIndex": { + "type": "integer" + }, + "oldRule": { + "properties": { + "booleanRule": { + "type": "object" + }, + "gradientRule": { + "type": "object" + }, + "ranges": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateDataSource": { + "properties": { + "dataExecutionStatus": { + "properties": { + "errorCode": { + "enum": [ + "DATA_EXECUTION_ERROR_CODE_UNSPECIFIED", + "TIMED_OUT", + "TOO_MANY_ROWS", + "TOO_MANY_COLUMNS", + "TOO_MANY_CELLS", + "ENGINE", + "PARAMETER_INVALID", + "UNSUPPORTED_DATA_TYPE", + "DUPLICATE_COLUMN_NAMES", + "INTERRUPTED", + "CONCURRENT_QUERY", + "OTHER", + "TOO_MANY_CHARS_PER_CELL", + "DATA_NOT_FOUND", + "PERMISSION_DENIED", + "MISSING_COLUMN_ALIAS", + "OBJECT_NOT_FOUND", + "OBJECT_IN_ERROR_STATE", + "OBJECT_SPEC_INVALID", + "DATA_EXECUTION_CANCELLED" + ], + "type": "string" + }, + "errorMessage": { + "type": "string" + }, + "lastRefreshTime": { + "type": "string" + }, + "state": { + "enum": [ + "DATA_EXECUTION_STATE_UNSPECIFIED", + "NOT_STARTED", + "RUNNING", + "CANCELLING", + "SUCCEEDED", + "FAILED" + ], + "type": "string" + } + }, + "type": "object" + }, + "dataSource": { + "properties": { + "calculatedColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "dataSourceId": { + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spec": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updateDeveloperMetadata": { + "properties": { + "developerMetadata": { + "items": { + "properties": { + "location": { + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "updateEmbeddedObjectPosition": { + "properties": { + "position": { + "properties": { + "newSheet": { + "type": "boolean" + }, + "overlayPosition": { + "type": "object" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "spreadsheetId": { + "type": "string" + }, + "updatedSpreadsheet": { + "properties": { + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedSpreadsheet": { + "type": "boolean" + }, + "fromImportedSpreadsheet": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedSpreadsheet": { + "type": "boolean" + }, + "fromImportedSpreadsheet": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "dataSourceSchedules": { + "items": { + "properties": { + "dailySchedule": { + "properties": { + "startTime": { + "type": "object" + } + }, + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "monthlySchedule": { + "properties": { + "daysOfMonth": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "startTime": { + "type": "object" + } + }, + "type": "object" + }, + "nextRun": { + "properties": { + "endTime": { + "type": "string" + }, + "startTime": { + "type": "string" + } + }, + "type": "object" + }, + "refreshScope": { + "enum": [ + "DATA_SOURCE_REFRESH_SCOPE_UNSPECIFIED", + "ALL_DATA_SOURCES" + ], + "type": "string" + }, + "weeklySchedule": { + "properties": { + "daysOfWeek": { + "items": { + "enum": [ + "DAY_OF_WEEK_UNSPECIFIED", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ], + "type": "string" + }, + "type": "array" + }, + "startTime": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "dataSources": { + "items": { + "properties": { + "calculatedColumns": { + "items": { + "properties": { + "formula": { + "type": "string" + }, + "reference": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "dataSourceId": { + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spec": { + "properties": { + "bigQuery": { + "type": "object" + }, + "looker": { + "type": "object" + }, + "parameters": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "developerMetadata": { + "items": { + "properties": { + "location": { + "properties": { + "dimensionRange": { + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "namedRanges": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "properties": { + "autoRecalc": { + "enum": [ + "RECALCULATION_INTERVAL_UNSPECIFIED", + "ON_CHANGE", + "MINUTE", + "HOUR" + ], + "type": "string" + }, + "defaultFormat": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "borders": { + "type": "object" + }, + "horizontalAlignment": { + "enum": [ + "HORIZONTAL_ALIGN_UNSPECIFIED", + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "hyperlinkDisplayType": { + "enum": [ + "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED", + "LINKED", + "PLAIN_TEXT" + ], + "type": "string" + }, + "numberFormat": { + "type": "object" + }, + "padding": { + "type": "object" + }, + "textDirection": { + "enum": [ + "TEXT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "type": "string" + }, + "textFormat": { + "type": "object" + }, + "textRotation": { + "type": "object" + }, + "verticalAlignment": { + "enum": [ + "VERTICAL_ALIGN_UNSPECIFIED", + "TOP", + "MIDDLE", + "BOTTOM" + ], + "type": "string" + }, + "wrapStrategy": { + "enum": [ + "WRAP_STRATEGY_UNSPECIFIED", + "OVERFLOW_CELL", + "LEGACY_WRAP", + "CLIP", + "WRAP" + ], + "type": "string" + } + }, + "type": "object" + }, + "importFunctionsExternalUrlAccessAllowed": { + "type": "boolean" + }, + "iterativeCalculationSettings": { + "properties": { + "convergenceThreshold": { + "type": "number" + }, + "maxIterations": { + "type": "integer" + } + }, + "type": "object" + }, + "locale": { + "type": "string" + }, + "spreadsheetTheme": { + "properties": { + "primaryFontFamily": { + "type": "string" + }, + "themeColors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "timeZone": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sheets": { + "items": { + "properties": { + "bandedRanges": { + "items": { + "properties": { + "bandedRangeId": { + "type": "integer" + }, + "bandedRangeReference": { + "type": "string" + }, + "columnProperties": { + "type": "object" + }, + "range": { + "type": "object" + }, + "rowProperties": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "basicFilter": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "range": { + "type": "object" + }, + "sortSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + }, + "charts": { + "items": { + "properties": { + "border": { + "type": "object" + }, + "chartId": { + "type": "integer" + }, + "position": { + "type": "object" + }, + "spec": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "columnGroups": { + "items": { + "properties": { + "collapsed": { + "type": "boolean" + }, + "depth": { + "type": "integer" + }, + "range": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "range": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "conditionalFormats": { + "items": { + "properties": { + "booleanRule": { + "type": "object" + }, + "gradientRule": { + "type": "object" + }, + "ranges": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "data": { + "items": { + "properties": { + "columnMetadata": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rowData": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rowMetadata": { + "items": { + "type": "object" + }, + "type": "array" + }, + "startColumn": { + "type": "integer" + }, + "startRow": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "developerMetadata": { + "items": { + "properties": { + "location": { + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "filterViews": { + "items": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "filterViewId": { + "type": "integer" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "type": "object" + }, + "sortSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "merges": { + "items": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "properties": { + "dataSourceSheetProperties": { + "type": "object" + }, + "gridProperties": { + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "index": { + "type": "integer" + }, + "rightToLeft": { + "type": "boolean" + }, + "sheetId": { + "type": "integer" + }, + "sheetType": { + "enum": [ + "SHEET_TYPE_UNSPECIFIED", + "GRID", + "OBJECT", + "DATA_SOURCE" + ], + "type": "string" + }, + "tabColor": { + "type": "object" + }, + "tabColorStyle": { + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "protectedRanges": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "editors": { + "type": "object" + }, + "namedRangeId": { + "type": "string" + }, + "protectedRangeId": { + "type": "integer" + }, + "range": { + "type": "object" + }, + "requestingUserCanEdit": { + "type": "boolean" + }, + "tableId": { + "type": "string" + }, + "unprotectedRanges": { + "items": { + "type": "object" + }, + "type": "array" + }, + "warningOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowGroups": { + "items": { + "properties": { + "collapsed": { + "type": "boolean" + }, + "depth": { + "type": "integer" + }, + "range": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "slicers": { + "items": { + "properties": { + "position": { + "type": "object" + }, + "slicerId": { + "type": "integer" + }, + "spec": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "tables": { + "items": { + "properties": { + "columnProperties": { + "items": { + "type": "object" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "range": { + "type": "object" + }, + "rowsProperties": { + "type": "object" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "spreadsheetId": { + "type": "string" + }, + "spreadsheetUrl": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.create1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedSpreadsheet": { + "type": "boolean" + }, + "fromImportedSpreadsheet": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedSpreadsheet": { + "type": "boolean" + }, + "fromImportedSpreadsheet": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "dataSourceSchedules": { + "items": { + "properties": { + "dailySchedule": { + "properties": { + "startTime": { + "properties": { + "hours": { + "type": "integer" + }, + "minutes": { + "type": "integer" + }, + "nanos": { + "type": "integer" + }, + "seconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "monthlySchedule": { + "properties": { + "daysOfMonth": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "startTime": { + "properties": { + "hours": { + "type": "integer" + }, + "minutes": { + "type": "integer" + }, + "nanos": { + "type": "integer" + }, + "seconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "nextRun": { + "properties": { + "endTime": { + "type": "string" + }, + "startTime": { + "type": "string" + } + }, + "type": "object" + }, + "refreshScope": { + "enum": [ + "DATA_SOURCE_REFRESH_SCOPE_UNSPECIFIED", + "ALL_DATA_SOURCES" + ], + "type": "string" + }, + "weeklySchedule": { + "properties": { + "daysOfWeek": { + "items": { + "enum": [ + "DAY_OF_WEEK_UNSPECIFIED", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ], + "type": "string" + }, + "type": "array" + }, + "startTime": { + "properties": { + "hours": { + "type": "integer" + }, + "minutes": { + "type": "integer" + }, + "nanos": { + "type": "integer" + }, + "seconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "dataSources": { + "items": { + "properties": { + "calculatedColumns": { + "items": { + "properties": { + "formula": { + "type": "string" + }, + "reference": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "dataSourceId": { + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spec": { + "properties": { + "bigQuery": { + "properties": { + "projectId": { + "type": "string" + }, + "querySpec": { + "type": "object" + }, + "tableSpec": { + "type": "object" + } + }, + "type": "object" + }, + "looker": { + "properties": { + "explore": { + "type": "string" + }, + "instanceUri": { + "type": "string" + }, + "model": { + "type": "string" + } + }, + "type": "object" + }, + "parameters": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "developerMetadata": { + "items": { + "properties": { + "location": { + "properties": { + "dimensionRange": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "namedRanges": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "properties": { + "autoRecalc": { + "enum": [ + "RECALCULATION_INTERVAL_UNSPECIFIED", + "ON_CHANGE", + "MINUTE", + "HOUR" + ], + "type": "string" + }, + "defaultFormat": { + "properties": { + "backgroundColor": { + "properties": { + "alpha": { + "type": "number" + }, + "blue": { + "type": "number" + }, + "green": { + "type": "number" + }, + "red": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundColorStyle": { + "properties": { + "rgbColor": { + "type": "object" + }, + "themeColor": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "TEXT", + "BACKGROUND", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "LINK" + ], + "type": "string" + } + }, + "type": "object" + }, + "borders": { + "properties": { + "bottom": { + "type": "object" + }, + "left": { + "type": "object" + }, + "right": { + "type": "object" + }, + "top": { + "type": "object" + } + }, + "type": "object" + }, + "horizontalAlignment": { + "enum": [ + "HORIZONTAL_ALIGN_UNSPECIFIED", + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "hyperlinkDisplayType": { + "enum": [ + "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED", + "LINKED", + "PLAIN_TEXT" + ], + "type": "string" + }, + "numberFormat": { + "properties": { + "pattern": { + "type": "string" + }, + "type": { + "enum": [ + "NUMBER_FORMAT_TYPE_UNSPECIFIED", + "TEXT", + "NUMBER", + "PERCENT", + "CURRENCY", + "DATE", + "TIME", + "DATE_TIME", + "SCIENTIFIC" + ], + "type": "string" + } + }, + "type": "object" + }, + "padding": { + "properties": { + "bottom": { + "type": "integer" + }, + "left": { + "type": "integer" + }, + "right": { + "type": "integer" + }, + "top": { + "type": "integer" + } + }, + "type": "object" + }, + "textDirection": { + "enum": [ + "TEXT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "type": "string" + }, + "textFormat": { + "properties": { + "bold": { + "type": "boolean" + }, + "fontFamily": { + "type": "string" + }, + "fontSize": { + "type": "integer" + }, + "foregroundColor": { + "type": "object" + }, + "foregroundColorStyle": { + "type": "object" + }, + "italic": { + "type": "boolean" + }, + "link": { + "type": "object" + }, + "strikethrough": { + "type": "boolean" + }, + "underline": { + "type": "boolean" + } + }, + "type": "object" + }, + "textRotation": { + "properties": { + "angle": { + "type": "integer" + }, + "vertical": { + "type": "boolean" + } + }, + "type": "object" + }, + "verticalAlignment": { + "enum": [ + "VERTICAL_ALIGN_UNSPECIFIED", + "TOP", + "MIDDLE", + "BOTTOM" + ], + "type": "string" + }, + "wrapStrategy": { + "enum": [ + "WRAP_STRATEGY_UNSPECIFIED", + "OVERFLOW_CELL", + "LEGACY_WRAP", + "CLIP", + "WRAP" + ], + "type": "string" + } + }, + "type": "object" + }, + "importFunctionsExternalUrlAccessAllowed": { + "type": "boolean" + }, + "iterativeCalculationSettings": { + "properties": { + "convergenceThreshold": { + "type": "number" + }, + "maxIterations": { + "type": "integer" + } + }, + "type": "object" + }, + "locale": { + "type": "string" + }, + "spreadsheetTheme": { + "properties": { + "primaryFontFamily": { + "type": "string" + }, + "themeColors": { + "items": { + "properties": { + "color": { + "type": "object" + }, + "colorType": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "TEXT", + "BACKGROUND", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "LINK" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "timeZone": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sheets": { + "items": { + "properties": { + "bandedRanges": { + "items": { + "properties": { + "bandedRangeId": { + "type": "integer" + }, + "bandedRangeReference": { + "type": "string" + }, + "columnProperties": { + "properties": { + "firstBandColor": { + "type": "object" + }, + "firstBandColorStyle": { + "type": "object" + }, + "footerColor": { + "type": "object" + }, + "footerColorStyle": { + "type": "object" + }, + "headerColor": { + "type": "object" + }, + "headerColorStyle": { + "type": "object" + }, + "secondBandColor": { + "type": "object" + }, + "secondBandColorStyle": { + "type": "object" + } + }, + "type": "object" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "rowProperties": { + "properties": { + "firstBandColor": { + "type": "object" + }, + "firstBandColorStyle": { + "type": "object" + }, + "footerColor": { + "type": "object" + }, + "footerColorStyle": { + "type": "object" + }, + "headerColor": { + "type": "object" + }, + "headerColorStyle": { + "type": "object" + }, + "secondBandColor": { + "type": "object" + }, + "secondBandColorStyle": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "basicFilter": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "filterCriteria": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "sortSpecs": { + "items": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "dimensionIndex": { + "type": "integer" + }, + "foregroundColor": { + "type": "object" + }, + "foregroundColorStyle": { + "type": "object" + }, + "sortOrder": { + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + }, + "charts": { + "items": { + "properties": { + "border": { + "properties": { + "color": { + "type": "object" + }, + "colorStyle": { + "type": "object" + } + }, + "type": "object" + }, + "chartId": { + "type": "integer" + }, + "position": { + "properties": { + "newSheet": { + "type": "boolean" + }, + "overlayPosition": { + "type": "object" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "spec": { + "properties": { + "altText": { + "type": "string" + }, + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "basicChart": { + "type": "object" + }, + "bubbleChart": { + "type": "object" + }, + "candlestickChart": { + "type": "object" + }, + "dataSourceChartProperties": { + "type": "object" + }, + "filterSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "fontName": { + "type": "string" + }, + "hiddenDimensionStrategy": { + "enum": [ + "CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED", + "SKIP_HIDDEN_ROWS_AND_COLUMNS", + "SKIP_HIDDEN_ROWS", + "SKIP_HIDDEN_COLUMNS", + "SHOW_ALL" + ], + "type": "string" + }, + "histogramChart": { + "type": "object" + }, + "maximized": { + "type": "boolean" + }, + "orgChart": { + "type": "object" + }, + "pieChart": { + "type": "object" + }, + "scorecardChart": { + "type": "object" + }, + "sortSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "subtitle": { + "type": "string" + }, + "subtitleTextFormat": { + "type": "object" + }, + "subtitleTextPosition": { + "type": "object" + }, + "title": { + "type": "string" + }, + "titleTextFormat": { + "type": "object" + }, + "titleTextPosition": { + "type": "object" + }, + "treemapChart": { + "type": "object" + }, + "waterfallChart": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "columnGroups": { + "items": { + "properties": { + "collapsed": { + "type": "boolean" + }, + "depth": { + "type": "integer" + }, + "range": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "conditionalFormats": { + "items": { + "properties": { + "booleanRule": { + "properties": { + "condition": { + "type": "object" + }, + "format": { + "type": "object" + } + }, + "type": "object" + }, + "gradientRule": { + "properties": { + "maxpoint": { + "type": "object" + }, + "midpoint": { + "type": "object" + }, + "minpoint": { + "type": "object" + } + }, + "type": "object" + }, + "ranges": { + "items": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "data": { + "items": { + "properties": { + "columnMetadata": { + "items": { + "properties": { + "dataSourceColumnReference": { + "type": "object" + }, + "developerMetadata": { + "items": { + "type": "object" + }, + "type": "array" + }, + "hiddenByFilter": { + "type": "boolean" + }, + "hiddenByUser": { + "type": "boolean" + }, + "pixelSize": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowData": { + "items": { + "properties": { + "values": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowMetadata": { + "items": { + "properties": { + "dataSourceColumnReference": { + "type": "object" + }, + "developerMetadata": { + "items": { + "type": "object" + }, + "type": "array" + }, + "hiddenByFilter": { + "type": "boolean" + }, + "hiddenByUser": { + "type": "boolean" + }, + "pixelSize": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "startColumn": { + "type": "integer" + }, + "startRow": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "developerMetadata": { + "items": { + "properties": { + "location": { + "properties": { + "dimensionRange": { + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "filterViews": { + "items": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "filterCriteria": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "filterViewId": { + "type": "integer" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "sortSpecs": { + "items": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "dimensionIndex": { + "type": "integer" + }, + "foregroundColor": { + "type": "object" + }, + "foregroundColorStyle": { + "type": "object" + }, + "sortOrder": { + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "merges": { + "items": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "properties": { + "dataSourceSheetProperties": { + "properties": { + "columns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "dataExecutionStatus": { + "type": "object" + }, + "dataSourceId": { + "type": "string" + } + }, + "type": "object" + }, + "gridProperties": { + "properties": { + "columnCount": { + "type": "integer" + }, + "columnGroupControlAfter": { + "type": "boolean" + }, + "frozenColumnCount": { + "type": "integer" + }, + "frozenRowCount": { + "type": "integer" + }, + "hideGridlines": { + "type": "boolean" + }, + "rowCount": { + "type": "integer" + }, + "rowGroupControlAfter": { + "type": "boolean" + } + }, + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "index": { + "type": "integer" + }, + "rightToLeft": { + "type": "boolean" + }, + "sheetId": { + "type": "integer" + }, + "sheetType": { + "enum": [ + "SHEET_TYPE_UNSPECIFIED", + "GRID", + "OBJECT", + "DATA_SOURCE" + ], + "type": "string" + }, + "tabColor": { + "properties": { + "alpha": { + "type": "number" + }, + "blue": { + "type": "number" + }, + "green": { + "type": "number" + }, + "red": { + "type": "number" + } + }, + "type": "object" + }, + "tabColorStyle": { + "properties": { + "rgbColor": { + "type": "object" + }, + "themeColor": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "TEXT", + "BACKGROUND", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "LINK" + ], + "type": "string" + } + }, + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "protectedRanges": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "editors": { + "properties": { + "domainUsersCanEdit": { + "type": "boolean" + }, + "groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "users": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "namedRangeId": { + "type": "string" + }, + "protectedRangeId": { + "type": "integer" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "requestingUserCanEdit": { + "type": "boolean" + }, + "tableId": { + "type": "string" + }, + "unprotectedRanges": { + "items": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "warningOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowGroups": { + "items": { + "properties": { + "collapsed": { + "type": "boolean" + }, + "depth": { + "type": "integer" + }, + "range": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "slicers": { + "items": { + "properties": { + "position": { + "properties": { + "newSheet": { + "type": "boolean" + }, + "overlayPosition": { + "type": "object" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "slicerId": { + "type": "integer" + }, + "spec": { + "properties": { + "applyToPivotTables": { + "type": "boolean" + }, + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "columnIndex": { + "type": "integer" + }, + "dataRange": { + "type": "object" + }, + "filterCriteria": { + "type": "object" + }, + "horizontalAlignment": { + "enum": [ + "HORIZONTAL_ALIGN_UNSPECIFIED", + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "textFormat": { + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "tables": { + "items": { + "properties": { + "columnProperties": { + "items": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "columnName": { + "type": "string" + }, + "columnType": { + "enum": [ + "COLUMN_TYPE_UNSPECIFIED", + "DOUBLE", + "CURRENCY", + "PERCENT", + "DATE", + "TIME", + "DATE_TIME", + "TEXT", + "BOOLEAN", + "DROPDOWN", + "FILES_CHIP", + "PEOPLE_CHIP", + "FINANCE_CHIP", + "PLACE_CHIP", + "RATINGS_CHIP" + ], + "type": "string" + }, + "dataValidationRule": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "rowsProperties": { + "properties": { + "firstBandColorStyle": { + "type": "object" + }, + "footerColorStyle": { + "type": "object" + }, + "headerColorStyle": { + "type": "object" + }, + "secondBandColorStyle": { + "type": "object" + } + }, + "type": "object" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "spreadsheetId": { + "type": "string" + }, + "spreadsheetUrl": { + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.developerMetadata.get4 fields changed- changed
Input schema / properties / metadataId / descriptionPrevious value: -"The ID of the developer metadata to retrieve."New value: +"[URL path segment] The ID of the developer metadata to retrieve." - added
Input schema / properties / metadataId / formatAdded value: +"int32" - changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The ID of the spreadsheet to retrieve metadata from."New value: +"[URL path segment] The ID of the spreadsheet to retrieve metadata from." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "location": { + "properties": { + "dimensionRange": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.developerMetadata.search2 fields changed- changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The ID of the spreadsheet to retrieve metadata from."New value: +"[URL path segment] The ID of the spreadsheet to retrieve metadata from." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "matchedDeveloperMetadata": { + "items": { + "properties": { + "dataFilters": { + "items": { + "properties": { + "a1Range": { + "type": "string" + }, + "developerMetadataLookup": { + "properties": { + "locationMatchingStrategy": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED", + "EXACT_LOCATION", + "INTERSECTING_LOCATION" + ], + "type": "string" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataLocation": { + "type": "object" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "gridRange": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "developerMetadata": { + "properties": { + "location": { + "properties": { + "dimensionRange": { + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.get6 fields changed- changed
Input schema / properties / commentsViewMode / descriptionPrevious value: -"The comments view mode to apply to the spreadsheet. This allows viewing the spreadsheet with comments omitted or included. If one is not specified, COMMENTS_VIE"New value: +"[query parameter] The comments view mode to apply to the spreadsheet. This allows viewing the spreadsheet with comments omitted or included. If one is not specified, COMMENTS_VIE Values: `COMMENTS_VIEW_MODE_UNSPECIFIED` = The CommentsViewMode is unspecified; COMMENTS_VIEW_MODE_OMITTED is applied.; `COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS` = The CommentsViewMode applied to the returned spreadsheet depends on the user's current access level. If the user only has view access, COMMENTS_VIEW_MODE_OMITTED is applied. Otherwise, COMMENTS_VIEW_MODE_INCLUDED is applied.; `COMMENTS_VIEW_MODE_OMITTED` = The returned spreadsheet has comments omitted.; `COMMENTS_VIEW_MODE_INCLUDED` = The returned spreadsheet has comments included. Requests to retrieve a spreadsheet using this mode will return a 403 error if the user does not have permission to view comments.." - changed
Input schema / properties / excludeTablesInBandedRanges / descriptionPrevious value: -"True if tables should be excluded in the banded ranges. False if not set."New value: +"[query parameter] True if tables should be excluded in the banded ranges. False if not set." - changed
Input schema / properties / includeGridData / descriptionPrevious value: -"True if grid data should be returned. This parameter is ignored if a field mask was set in the request."New value: +"[query parameter] True if grid data should be returned. This parameter is ignored if a field mask was set in the request." - changed
Input schema / properties / ranges / items / descriptionPrevious value: -"The ranges to retrieve from the spreadsheet."New value: +"[query parameter] The ranges to retrieve from the spreadsheet." - changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The spreadsheet to request."New value: +"[URL path segment] The spreadsheet to request." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedSpreadsheet": { + "type": "boolean" + }, + "fromImportedSpreadsheet": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedSpreadsheet": { + "type": "boolean" + }, + "fromImportedSpreadsheet": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "dataSourceSchedules": { + "items": { + "properties": { + "dailySchedule": { + "properties": { + "startTime": { + "properties": { + "hours": { + "type": "integer" + }, + "minutes": { + "type": "integer" + }, + "nanos": { + "type": "integer" + }, + "seconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "monthlySchedule": { + "properties": { + "daysOfMonth": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "startTime": { + "properties": { + "hours": { + "type": "integer" + }, + "minutes": { + "type": "integer" + }, + "nanos": { + "type": "integer" + }, + "seconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "nextRun": { + "properties": { + "endTime": { + "type": "string" + }, + "startTime": { + "type": "string" + } + }, + "type": "object" + }, + "refreshScope": { + "enum": [ + "DATA_SOURCE_REFRESH_SCOPE_UNSPECIFIED", + "ALL_DATA_SOURCES" + ], + "type": "string" + }, + "weeklySchedule": { + "properties": { + "daysOfWeek": { + "items": { + "enum": [ + "DAY_OF_WEEK_UNSPECIFIED", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ], + "type": "string" + }, + "type": "array" + }, + "startTime": { + "properties": { + "hours": { + "type": "integer" + }, + "minutes": { + "type": "integer" + }, + "nanos": { + "type": "integer" + }, + "seconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "dataSources": { + "items": { + "properties": { + "calculatedColumns": { + "items": { + "properties": { + "formula": { + "type": "string" + }, + "reference": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "dataSourceId": { + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spec": { + "properties": { + "bigQuery": { + "properties": { + "projectId": { + "type": "string" + }, + "querySpec": { + "type": "object" + }, + "tableSpec": { + "type": "object" + } + }, + "type": "object" + }, + "looker": { + "properties": { + "explore": { + "type": "string" + }, + "instanceUri": { + "type": "string" + }, + "model": { + "type": "string" + } + }, + "type": "object" + }, + "parameters": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "developerMetadata": { + "items": { + "properties": { + "location": { + "properties": { + "dimensionRange": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "namedRanges": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "properties": { + "autoRecalc": { + "enum": [ + "RECALCULATION_INTERVAL_UNSPECIFIED", + "ON_CHANGE", + "MINUTE", + "HOUR" + ], + "type": "string" + }, + "defaultFormat": { + "properties": { + "backgroundColor": { + "properties": { + "alpha": { + "type": "number" + }, + "blue": { + "type": "number" + }, + "green": { + "type": "number" + }, + "red": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundColorStyle": { + "properties": { + "rgbColor": { + "type": "object" + }, + "themeColor": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "TEXT", + "BACKGROUND", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "LINK" + ], + "type": "string" + } + }, + "type": "object" + }, + "borders": { + "properties": { + "bottom": { + "type": "object" + }, + "left": { + "type": "object" + }, + "right": { + "type": "object" + }, + "top": { + "type": "object" + } + }, + "type": "object" + }, + "horizontalAlignment": { + "enum": [ + "HORIZONTAL_ALIGN_UNSPECIFIED", + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "hyperlinkDisplayType": { + "enum": [ + "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED", + "LINKED", + "PLAIN_TEXT" + ], + "type": "string" + }, + "numberFormat": { + "properties": { + "pattern": { + "type": "string" + }, + "type": { + "enum": [ + "NUMBER_FORMAT_TYPE_UNSPECIFIED", + "TEXT", + "NUMBER", + "PERCENT", + "CURRENCY", + "DATE", + "TIME", + "DATE_TIME", + "SCIENTIFIC" + ], + "type": "string" + } + }, + "type": "object" + }, + "padding": { + "properties": { + "bottom": { + "type": "integer" + }, + "left": { + "type": "integer" + }, + "right": { + "type": "integer" + }, + "top": { + "type": "integer" + } + }, + "type": "object" + }, + "textDirection": { + "enum": [ + "TEXT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "type": "string" + }, + "textFormat": { + "properties": { + "bold": { + "type": "boolean" + }, + "fontFamily": { + "type": "string" + }, + "fontSize": { + "type": "integer" + }, + "foregroundColor": { + "type": "object" + }, + "foregroundColorStyle": { + "type": "object" + }, + "italic": { + "type": "boolean" + }, + "link": { + "type": "object" + }, + "strikethrough": { + "type": "boolean" + }, + "underline": { + "type": "boolean" + } + }, + "type": "object" + }, + "textRotation": { + "properties": { + "angle": { + "type": "integer" + }, + "vertical": { + "type": "boolean" + } + }, + "type": "object" + }, + "verticalAlignment": { + "enum": [ + "VERTICAL_ALIGN_UNSPECIFIED", + "TOP", + "MIDDLE", + "BOTTOM" + ], + "type": "string" + }, + "wrapStrategy": { + "enum": [ + "WRAP_STRATEGY_UNSPECIFIED", + "OVERFLOW_CELL", + "LEGACY_WRAP", + "CLIP", + "WRAP" + ], + "type": "string" + } + }, + "type": "object" + }, + "importFunctionsExternalUrlAccessAllowed": { + "type": "boolean" + }, + "iterativeCalculationSettings": { + "properties": { + "convergenceThreshold": { + "type": "number" + }, + "maxIterations": { + "type": "integer" + } + }, + "type": "object" + }, + "locale": { + "type": "string" + }, + "spreadsheetTheme": { + "properties": { + "primaryFontFamily": { + "type": "string" + }, + "themeColors": { + "items": { + "properties": { + "color": { + "type": "object" + }, + "colorType": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "TEXT", + "BACKGROUND", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "LINK" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "timeZone": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sheets": { + "items": { + "properties": { + "bandedRanges": { + "items": { + "properties": { + "bandedRangeId": { + "type": "integer" + }, + "bandedRangeReference": { + "type": "string" + }, + "columnProperties": { + "properties": { + "firstBandColor": { + "type": "object" + }, + "firstBandColorStyle": { + "type": "object" + }, + "footerColor": { + "type": "object" + }, + "footerColorStyle": { + "type": "object" + }, + "headerColor": { + "type": "object" + }, + "headerColorStyle": { + "type": "object" + }, + "secondBandColor": { + "type": "object" + }, + "secondBandColorStyle": { + "type": "object" + } + }, + "type": "object" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "rowProperties": { + "properties": { + "firstBandColor": { + "type": "object" + }, + "firstBandColorStyle": { + "type": "object" + }, + "footerColor": { + "type": "object" + }, + "footerColorStyle": { + "type": "object" + }, + "headerColor": { + "type": "object" + }, + "headerColorStyle": { + "type": "object" + }, + "secondBandColor": { + "type": "object" + }, + "secondBandColorStyle": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "basicFilter": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "filterCriteria": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "sortSpecs": { + "items": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "dimensionIndex": { + "type": "integer" + }, + "foregroundColor": { + "type": "object" + }, + "foregroundColorStyle": { + "type": "object" + }, + "sortOrder": { + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + }, + "charts": { + "items": { + "properties": { + "border": { + "properties": { + "color": { + "type": "object" + }, + "colorStyle": { + "type": "object" + } + }, + "type": "object" + }, + "chartId": { + "type": "integer" + }, + "position": { + "properties": { + "newSheet": { + "type": "boolean" + }, + "overlayPosition": { + "type": "object" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "spec": { + "properties": { + "altText": { + "type": "string" + }, + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "basicChart": { + "type": "object" + }, + "bubbleChart": { + "type": "object" + }, + "candlestickChart": { + "type": "object" + }, + "dataSourceChartProperties": { + "type": "object" + }, + "filterSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "fontName": { + "type": "string" + }, + "hiddenDimensionStrategy": { + "enum": [ + "CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED", + "SKIP_HIDDEN_ROWS_AND_COLUMNS", + "SKIP_HIDDEN_ROWS", + "SKIP_HIDDEN_COLUMNS", + "SHOW_ALL" + ], + "type": "string" + }, + "histogramChart": { + "type": "object" + }, + "maximized": { + "type": "boolean" + }, + "orgChart": { + "type": "object" + }, + "pieChart": { + "type": "object" + }, + "scorecardChart": { + "type": "object" + }, + "sortSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "subtitle": { + "type": "string" + }, + "subtitleTextFormat": { + "type": "object" + }, + "subtitleTextPosition": { + "type": "object" + }, + "title": { + "type": "string" + }, + "titleTextFormat": { + "type": "object" + }, + "titleTextPosition": { + "type": "object" + }, + "treemapChart": { + "type": "object" + }, + "waterfallChart": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "columnGroups": { + "items": { + "properties": { + "collapsed": { + "type": "boolean" + }, + "depth": { + "type": "integer" + }, + "range": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "conditionalFormats": { + "items": { + "properties": { + "booleanRule": { + "properties": { + "condition": { + "type": "object" + }, + "format": { + "type": "object" + } + }, + "type": "object" + }, + "gradientRule": { + "properties": { + "maxpoint": { + "type": "object" + }, + "midpoint": { + "type": "object" + }, + "minpoint": { + "type": "object" + } + }, + "type": "object" + }, + "ranges": { + "items": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "data": { + "items": { + "properties": { + "columnMetadata": { + "items": { + "properties": { + "dataSourceColumnReference": { + "type": "object" + }, + "developerMetadata": { + "items": { + "type": "object" + }, + "type": "array" + }, + "hiddenByFilter": { + "type": "boolean" + }, + "hiddenByUser": { + "type": "boolean" + }, + "pixelSize": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowData": { + "items": { + "properties": { + "values": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowMetadata": { + "items": { + "properties": { + "dataSourceColumnReference": { + "type": "object" + }, + "developerMetadata": { + "items": { + "type": "object" + }, + "type": "array" + }, + "hiddenByFilter": { + "type": "boolean" + }, + "hiddenByUser": { + "type": "boolean" + }, + "pixelSize": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "startColumn": { + "type": "integer" + }, + "startRow": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "developerMetadata": { + "items": { + "properties": { + "location": { + "properties": { + "dimensionRange": { + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "filterViews": { + "items": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "filterCriteria": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "filterViewId": { + "type": "integer" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "sortSpecs": { + "items": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "dimensionIndex": { + "type": "integer" + }, + "foregroundColor": { + "type": "object" + }, + "foregroundColorStyle": { + "type": "object" + }, + "sortOrder": { + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "merges": { + "items": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "properties": { + "dataSourceSheetProperties": { + "properties": { + "columns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "dataExecutionStatus": { + "type": "object" + }, + "dataSourceId": { + "type": "string" + } + }, + "type": "object" + }, + "gridProperties": { + "properties": { + "columnCount": { + "type": "integer" + }, + "columnGroupControlAfter": { + "type": "boolean" + }, + "frozenColumnCount": { + "type": "integer" + }, + "frozenRowCount": { + "type": "integer" + }, + "hideGridlines": { + "type": "boolean" + }, + "rowCount": { + "type": "integer" + }, + "rowGroupControlAfter": { + "type": "boolean" + } + }, + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "index": { + "type": "integer" + }, + "rightToLeft": { + "type": "boolean" + }, + "sheetId": { + "type": "integer" + }, + "sheetType": { + "enum": [ + "SHEET_TYPE_UNSPECIFIED", + "GRID", + "OBJECT", + "DATA_SOURCE" + ], + "type": "string" + }, + "tabColor": { + "properties": { + "alpha": { + "type": "number" + }, + "blue": { + "type": "number" + }, + "green": { + "type": "number" + }, + "red": { + "type": "number" + } + }, + "type": "object" + }, + "tabColorStyle": { + "properties": { + "rgbColor": { + "type": "object" + }, + "themeColor": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "TEXT", + "BACKGROUND", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "LINK" + ], + "type": "string" + } + }, + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "protectedRanges": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "editors": { + "properties": { + "domainUsersCanEdit": { + "type": "boolean" + }, + "groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "users": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "namedRangeId": { + "type": "string" + }, + "protectedRangeId": { + "type": "integer" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "requestingUserCanEdit": { + "type": "boolean" + }, + "tableId": { + "type": "string" + }, + "unprotectedRanges": { + "items": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "warningOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowGroups": { + "items": { + "properties": { + "collapsed": { + "type": "boolean" + }, + "depth": { + "type": "integer" + }, + "range": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "slicers": { + "items": { + "properties": { + "position": { + "properties": { + "newSheet": { + "type": "boolean" + }, + "overlayPosition": { + "type": "object" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "slicerId": { + "type": "integer" + }, + "spec": { + "properties": { + "applyToPivotTables": { + "type": "boolean" + }, + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "columnIndex": { + "type": "integer" + }, + "dataRange": { + "type": "object" + }, + "filterCriteria": { + "type": "object" + }, + "horizontalAlignment": { + "enum": [ + "HORIZONTAL_ALIGN_UNSPECIFIED", + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "textFormat": { + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "tables": { + "items": { + "properties": { + "columnProperties": { + "items": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "columnName": { + "type": "string" + }, + "columnType": { + "enum": [ + "COLUMN_TYPE_UNSPECIFIED", + "DOUBLE", + "CURRENCY", + "PERCENT", + "DATE", + "TIME", + "DATE_TIME", + "TEXT", + "BOOLEAN", + "DROPDOWN", + "FILES_CHIP", + "PEOPLE_CHIP", + "FINANCE_CHIP", + "PLACE_CHIP", + "RATINGS_CHIP" + ], + "type": "string" + }, + "dataValidationRule": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "rowsProperties": { + "properties": { + "firstBandColorStyle": { + "type": "object" + }, + "footerColorStyle": { + "type": "object" + }, + "headerColorStyle": { + "type": "object" + }, + "secondBandColorStyle": { + "type": "object" + } + }, + "type": "object" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "spreadsheetId": { + "type": "string" + }, + "spreadsheetUrl": { + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.getByDataFilter2 fields changed- changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The spreadsheet to request."New value: +"[URL path segment] The spreadsheet to request." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedSpreadsheet": { + "type": "boolean" + }, + "fromImportedSpreadsheet": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedSpreadsheet": { + "type": "boolean" + }, + "fromImportedSpreadsheet": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "dataSourceSchedules": { + "items": { + "properties": { + "dailySchedule": { + "properties": { + "startTime": { + "properties": { + "hours": { + "type": "integer" + }, + "minutes": { + "type": "integer" + }, + "nanos": { + "type": "integer" + }, + "seconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "monthlySchedule": { + "properties": { + "daysOfMonth": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "startTime": { + "properties": { + "hours": { + "type": "integer" + }, + "minutes": { + "type": "integer" + }, + "nanos": { + "type": "integer" + }, + "seconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "nextRun": { + "properties": { + "endTime": { + "type": "string" + }, + "startTime": { + "type": "string" + } + }, + "type": "object" + }, + "refreshScope": { + "enum": [ + "DATA_SOURCE_REFRESH_SCOPE_UNSPECIFIED", + "ALL_DATA_SOURCES" + ], + "type": "string" + }, + "weeklySchedule": { + "properties": { + "daysOfWeek": { + "items": { + "enum": [ + "DAY_OF_WEEK_UNSPECIFIED", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ], + "type": "string" + }, + "type": "array" + }, + "startTime": { + "properties": { + "hours": { + "type": "integer" + }, + "minutes": { + "type": "integer" + }, + "nanos": { + "type": "integer" + }, + "seconds": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "dataSources": { + "items": { + "properties": { + "calculatedColumns": { + "items": { + "properties": { + "formula": { + "type": "string" + }, + "reference": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "dataSourceId": { + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spec": { + "properties": { + "bigQuery": { + "properties": { + "projectId": { + "type": "string" + }, + "querySpec": { + "type": "object" + }, + "tableSpec": { + "type": "object" + } + }, + "type": "object" + }, + "looker": { + "properties": { + "explore": { + "type": "string" + }, + "instanceUri": { + "type": "string" + }, + "model": { + "type": "string" + } + }, + "type": "object" + }, + "parameters": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "developerMetadata": { + "items": { + "properties": { + "location": { + "properties": { + "dimensionRange": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "namedRanges": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "properties": { + "autoRecalc": { + "enum": [ + "RECALCULATION_INTERVAL_UNSPECIFIED", + "ON_CHANGE", + "MINUTE", + "HOUR" + ], + "type": "string" + }, + "defaultFormat": { + "properties": { + "backgroundColor": { + "properties": { + "alpha": { + "type": "number" + }, + "blue": { + "type": "number" + }, + "green": { + "type": "number" + }, + "red": { + "type": "number" + } + }, + "type": "object" + }, + "backgroundColorStyle": { + "properties": { + "rgbColor": { + "type": "object" + }, + "themeColor": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "TEXT", + "BACKGROUND", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "LINK" + ], + "type": "string" + } + }, + "type": "object" + }, + "borders": { + "properties": { + "bottom": { + "type": "object" + }, + "left": { + "type": "object" + }, + "right": { + "type": "object" + }, + "top": { + "type": "object" + } + }, + "type": "object" + }, + "horizontalAlignment": { + "enum": [ + "HORIZONTAL_ALIGN_UNSPECIFIED", + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "hyperlinkDisplayType": { + "enum": [ + "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED", + "LINKED", + "PLAIN_TEXT" + ], + "type": "string" + }, + "numberFormat": { + "properties": { + "pattern": { + "type": "string" + }, + "type": { + "enum": [ + "NUMBER_FORMAT_TYPE_UNSPECIFIED", + "TEXT", + "NUMBER", + "PERCENT", + "CURRENCY", + "DATE", + "TIME", + "DATE_TIME", + "SCIENTIFIC" + ], + "type": "string" + } + }, + "type": "object" + }, + "padding": { + "properties": { + "bottom": { + "type": "integer" + }, + "left": { + "type": "integer" + }, + "right": { + "type": "integer" + }, + "top": { + "type": "integer" + } + }, + "type": "object" + }, + "textDirection": { + "enum": [ + "TEXT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "type": "string" + }, + "textFormat": { + "properties": { + "bold": { + "type": "boolean" + }, + "fontFamily": { + "type": "string" + }, + "fontSize": { + "type": "integer" + }, + "foregroundColor": { + "type": "object" + }, + "foregroundColorStyle": { + "type": "object" + }, + "italic": { + "type": "boolean" + }, + "link": { + "type": "object" + }, + "strikethrough": { + "type": "boolean" + }, + "underline": { + "type": "boolean" + } + }, + "type": "object" + }, + "textRotation": { + "properties": { + "angle": { + "type": "integer" + }, + "vertical": { + "type": "boolean" + } + }, + "type": "object" + }, + "verticalAlignment": { + "enum": [ + "VERTICAL_ALIGN_UNSPECIFIED", + "TOP", + "MIDDLE", + "BOTTOM" + ], + "type": "string" + }, + "wrapStrategy": { + "enum": [ + "WRAP_STRATEGY_UNSPECIFIED", + "OVERFLOW_CELL", + "LEGACY_WRAP", + "CLIP", + "WRAP" + ], + "type": "string" + } + }, + "type": "object" + }, + "importFunctionsExternalUrlAccessAllowed": { + "type": "boolean" + }, + "iterativeCalculationSettings": { + "properties": { + "convergenceThreshold": { + "type": "number" + }, + "maxIterations": { + "type": "integer" + } + }, + "type": "object" + }, + "locale": { + "type": "string" + }, + "spreadsheetTheme": { + "properties": { + "primaryFontFamily": { + "type": "string" + }, + "themeColors": { + "items": { + "properties": { + "color": { + "type": "object" + }, + "colorType": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "TEXT", + "BACKGROUND", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "LINK" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "timeZone": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "sheets": { + "items": { + "properties": { + "bandedRanges": { + "items": { + "properties": { + "bandedRangeId": { + "type": "integer" + }, + "bandedRangeReference": { + "type": "string" + }, + "columnProperties": { + "properties": { + "firstBandColor": { + "type": "object" + }, + "firstBandColorStyle": { + "type": "object" + }, + "footerColor": { + "type": "object" + }, + "footerColorStyle": { + "type": "object" + }, + "headerColor": { + "type": "object" + }, + "headerColorStyle": { + "type": "object" + }, + "secondBandColor": { + "type": "object" + }, + "secondBandColorStyle": { + "type": "object" + } + }, + "type": "object" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "rowProperties": { + "properties": { + "firstBandColor": { + "type": "object" + }, + "firstBandColorStyle": { + "type": "object" + }, + "footerColor": { + "type": "object" + }, + "footerColorStyle": { + "type": "object" + }, + "headerColor": { + "type": "object" + }, + "headerColorStyle": { + "type": "object" + }, + "secondBandColor": { + "type": "object" + }, + "secondBandColorStyle": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "basicFilter": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "filterCriteria": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "sortSpecs": { + "items": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "dimensionIndex": { + "type": "integer" + }, + "foregroundColor": { + "type": "object" + }, + "foregroundColorStyle": { + "type": "object" + }, + "sortOrder": { + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + }, + "charts": { + "items": { + "properties": { + "border": { + "properties": { + "color": { + "type": "object" + }, + "colorStyle": { + "type": "object" + } + }, + "type": "object" + }, + "chartId": { + "type": "integer" + }, + "position": { + "properties": { + "newSheet": { + "type": "boolean" + }, + "overlayPosition": { + "type": "object" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "spec": { + "properties": { + "altText": { + "type": "string" + }, + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "basicChart": { + "type": "object" + }, + "bubbleChart": { + "type": "object" + }, + "candlestickChart": { + "type": "object" + }, + "dataSourceChartProperties": { + "type": "object" + }, + "filterSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "fontName": { + "type": "string" + }, + "hiddenDimensionStrategy": { + "enum": [ + "CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED", + "SKIP_HIDDEN_ROWS_AND_COLUMNS", + "SKIP_HIDDEN_ROWS", + "SKIP_HIDDEN_COLUMNS", + "SHOW_ALL" + ], + "type": "string" + }, + "histogramChart": { + "type": "object" + }, + "maximized": { + "type": "boolean" + }, + "orgChart": { + "type": "object" + }, + "pieChart": { + "type": "object" + }, + "scorecardChart": { + "type": "object" + }, + "sortSpecs": { + "items": { + "type": "object" + }, + "type": "array" + }, + "subtitle": { + "type": "string" + }, + "subtitleTextFormat": { + "type": "object" + }, + "subtitleTextPosition": { + "type": "object" + }, + "title": { + "type": "string" + }, + "titleTextFormat": { + "type": "object" + }, + "titleTextPosition": { + "type": "object" + }, + "treemapChart": { + "type": "object" + }, + "waterfallChart": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "columnGroups": { + "items": { + "properties": { + "collapsed": { + "type": "boolean" + }, + "depth": { + "type": "integer" + }, + "range": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "conditionalFormats": { + "items": { + "properties": { + "booleanRule": { + "properties": { + "condition": { + "type": "object" + }, + "format": { + "type": "object" + } + }, + "type": "object" + }, + "gradientRule": { + "properties": { + "maxpoint": { + "type": "object" + }, + "midpoint": { + "type": "object" + }, + "minpoint": { + "type": "object" + } + }, + "type": "object" + }, + "ranges": { + "items": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "data": { + "items": { + "properties": { + "columnMetadata": { + "items": { + "properties": { + "dataSourceColumnReference": { + "type": "object" + }, + "developerMetadata": { + "items": { + "type": "object" + }, + "type": "array" + }, + "hiddenByFilter": { + "type": "boolean" + }, + "hiddenByUser": { + "type": "boolean" + }, + "pixelSize": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowData": { + "items": { + "properties": { + "values": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowMetadata": { + "items": { + "properties": { + "dataSourceColumnReference": { + "type": "object" + }, + "developerMetadata": { + "items": { + "type": "object" + }, + "type": "array" + }, + "hiddenByFilter": { + "type": "boolean" + }, + "hiddenByUser": { + "type": "boolean" + }, + "pixelSize": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "startColumn": { + "type": "integer" + }, + "startRow": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "developerMetadata": { + "items": { + "properties": { + "location": { + "properties": { + "dimensionRange": { + "type": "object" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "sheetId": { + "type": "integer" + }, + "spreadsheet": { + "type": "boolean" + } + }, + "type": "object" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "filterViews": { + "items": { + "properties": { + "criteria": { + "type": "object" + }, + "filterSpecs": { + "items": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "filterCriteria": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "filterViewId": { + "type": "integer" + }, + "namedRangeId": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "sortSpecs": { + "items": { + "properties": { + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "dataSourceColumnReference": { + "type": "object" + }, + "dimensionIndex": { + "type": "integer" + }, + "foregroundColor": { + "type": "object" + }, + "foregroundColorStyle": { + "type": "object" + }, + "sortOrder": { + "enum": [ + "SORT_ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "tableId": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "merges": { + "items": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "properties": { + "properties": { + "dataSourceSheetProperties": { + "properties": { + "columns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "dataExecutionStatus": { + "type": "object" + }, + "dataSourceId": { + "type": "string" + } + }, + "type": "object" + }, + "gridProperties": { + "properties": { + "columnCount": { + "type": "integer" + }, + "columnGroupControlAfter": { + "type": "boolean" + }, + "frozenColumnCount": { + "type": "integer" + }, + "frozenRowCount": { + "type": "integer" + }, + "hideGridlines": { + "type": "boolean" + }, + "rowCount": { + "type": "integer" + }, + "rowGroupControlAfter": { + "type": "boolean" + } + }, + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "index": { + "type": "integer" + }, + "rightToLeft": { + "type": "boolean" + }, + "sheetId": { + "type": "integer" + }, + "sheetType": { + "enum": [ + "SHEET_TYPE_UNSPECIFIED", + "GRID", + "OBJECT", + "DATA_SOURCE" + ], + "type": "string" + }, + "tabColor": { + "properties": { + "alpha": { + "type": "number" + }, + "blue": { + "type": "number" + }, + "green": { + "type": "number" + }, + "red": { + "type": "number" + } + }, + "type": "object" + }, + "tabColorStyle": { + "properties": { + "rgbColor": { + "type": "object" + }, + "themeColor": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "TEXT", + "BACKGROUND", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "LINK" + ], + "type": "string" + } + }, + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "protectedRanges": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "editors": { + "properties": { + "domainUsersCanEdit": { + "type": "boolean" + }, + "groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "users": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "namedRangeId": { + "type": "string" + }, + "protectedRangeId": { + "type": "integer" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "requestingUserCanEdit": { + "type": "boolean" + }, + "tableId": { + "type": "string" + }, + "unprotectedRanges": { + "items": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "warningOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "type": "array" + }, + "rowGroups": { + "items": { + "properties": { + "collapsed": { + "type": "boolean" + }, + "depth": { + "type": "integer" + }, + "range": { + "properties": { + "dimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "endIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "slicers": { + "items": { + "properties": { + "position": { + "properties": { + "newSheet": { + "type": "boolean" + }, + "overlayPosition": { + "type": "object" + }, + "sheetId": { + "type": "integer" + } + }, + "type": "object" + }, + "slicerId": { + "type": "integer" + }, + "spec": { + "properties": { + "applyToPivotTables": { + "type": "boolean" + }, + "backgroundColor": { + "type": "object" + }, + "backgroundColorStyle": { + "type": "object" + }, + "columnIndex": { + "type": "integer" + }, + "dataRange": { + "type": "object" + }, + "filterCriteria": { + "type": "object" + }, + "horizontalAlignment": { + "enum": [ + "HORIZONTAL_ALIGN_UNSPECIFIED", + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "textFormat": { + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "tables": { + "items": { + "properties": { + "columnProperties": { + "items": { + "properties": { + "columnIndex": { + "type": "integer" + }, + "columnName": { + "type": "string" + }, + "columnType": { + "enum": [ + "COLUMN_TYPE_UNSPECIFIED", + "DOUBLE", + "CURRENCY", + "PERCENT", + "DATE", + "TIME", + "DATE_TIME", + "TEXT", + "BOOLEAN", + "DROPDOWN", + "FILES_CHIP", + "PEOPLE_CHIP", + "FINANCE_CHIP", + "PLACE_CHIP", + "RATINGS_CHIP" + ], + "type": "string" + }, + "dataValidationRule": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "range": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + }, + "rowsProperties": { + "properties": { + "firstBandColorStyle": { + "type": "object" + }, + "footerColorStyle": { + "type": "object" + }, + "headerColorStyle": { + "type": "object" + }, + "secondBandColorStyle": { + "type": "object" + } + }, + "type": "object" + }, + "tableId": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "spreadsheetId": { + "type": "string" + }, + "spreadsheetUrl": { + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.sheets.copyTo4 fields changed- changed
Input schema / properties / sheetId / descriptionPrevious value: -"The ID of the sheet to copy."New value: +"[URL path segment] The ID of the sheet to copy." - added
Input schema / properties / sheetId / formatAdded value: +"int32" - changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The ID of the spreadsheet containing the sheet to copy."New value: +"[URL path segment] The ID of the spreadsheet containing the sheet to copy." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "dataSourceSheetProperties": { + "properties": { + "columns": { + "items": { + "properties": { + "formula": { + "type": "string" + }, + "reference": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "dataExecutionStatus": { + "properties": { + "errorCode": { + "enum": [ + "DATA_EXECUTION_ERROR_CODE_UNSPECIFIED", + "TIMED_OUT", + "TOO_MANY_ROWS", + "TOO_MANY_COLUMNS", + "TOO_MANY_CELLS", + "ENGINE", + "PARAMETER_INVALID", + "UNSUPPORTED_DATA_TYPE", + "DUPLICATE_COLUMN_NAMES", + "INTERRUPTED", + "CONCURRENT_QUERY", + "OTHER", + "TOO_MANY_CHARS_PER_CELL", + "DATA_NOT_FOUND", + "PERMISSION_DENIED", + "MISSING_COLUMN_ALIAS", + "OBJECT_NOT_FOUND", + "OBJECT_IN_ERROR_STATE", + "OBJECT_SPEC_INVALID", + "DATA_EXECUTION_CANCELLED" + ], + "type": "string" + }, + "errorMessage": { + "type": "string" + }, + "lastRefreshTime": { + "type": "string" + }, + "state": { + "enum": [ + "DATA_EXECUTION_STATE_UNSPECIFIED", + "NOT_STARTED", + "RUNNING", + "CANCELLING", + "SUCCEEDED", + "FAILED" + ], + "type": "string" + } + }, + "type": "object" + }, + "dataSourceId": { + "type": "string" + } + }, + "type": "object" + }, + "gridProperties": { + "properties": { + "columnCount": { + "type": "integer" + }, + "columnGroupControlAfter": { + "type": "boolean" + }, + "frozenColumnCount": { + "type": "integer" + }, + "frozenRowCount": { + "type": "integer" + }, + "hideGridlines": { + "type": "boolean" + }, + "rowCount": { + "type": "integer" + }, + "rowGroupControlAfter": { + "type": "boolean" + } + }, + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "index": { + "type": "integer" + }, + "rightToLeft": { + "type": "boolean" + }, + "sheetId": { + "type": "integer" + }, + "sheetType": { + "enum": [ + "SHEET_TYPE_UNSPECIFIED", + "GRID", + "OBJECT", + "DATA_SOURCE" + ], + "type": "string" + }, + "tabColor": { + "properties": { + "alpha": { + "type": "number" + }, + "blue": { + "type": "number" + }, + "green": { + "type": "number" + }, + "red": { + "type": "number" + } + }, + "type": "object" + }, + "tabColorStyle": { + "properties": { + "rgbColor": { + "properties": { + "alpha": { + "type": "number" + }, + "blue": { + "type": "number" + }, + "green": { + "type": "number" + }, + "red": { + "type": "number" + } + }, + "type": "object" + }, + "themeColor": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "TEXT", + "BACKGROUND", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "LINK" + ], + "type": "string" + } + }, + "type": "object" + }, + "title": { + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.append8 fields changed- changed
Input schema / properties / includeValuesInResponse / descriptionPrevious value: -"Determines if the update response should include the values of the cells that were appended. By default, responses do not include the updated values."New value: +"[query parameter] Determines if the update response should include the values of the cells that were appended. By default, responses do not include the updated values." - changed
Input schema / properties / insertDataOption / descriptionPrevious value: -"How the input data should be inserted."New value: +"[query parameter] How the input data should be inserted. Values: `OVERWRITE` = The new data overwrites existing data in the areas it is written. (Note: adding data to the end of the sheet will still insert new rows or columns so the data can be written.); `INSERT_ROWS` = Rows are inserted for the new data.." - changed
Input schema / properties / range / descriptionPrevious value: -"The [A1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of a range to search for a logical table of data. Values are appended"New value: +"[URL path segment] The [A1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of a range to search for a logical table of data. Values are appended" - changed
Input schema / properties / responseDateTimeRenderOption / descriptionPrevious value: -"Determines how dates, times, and durations in the response should be rendered. This is ignored if response_value_render_option is FORMATTED_VALUE. The default d"New value: +"[query parameter] Determines how dates, times, and durations in the response should be rendered. This is ignored if response_value_render_option is FORMATTED_VALUE. The default d Values: `SERIAL_NUMBER` = Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.; `FORMATTED_STRING` = Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale).." - changed
Input schema / properties / responseValueRenderOption / descriptionPrevious value: -"Determines how values in the response should be rendered. The default render option is FORMATTED_VALUE."New value: +"[query parameter] Determines how values in the response should be rendered. The default render option is FORMATTED_VALUE. Values: `FORMATTED_VALUE` = Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.; `UNFORMATTED_VALUE` = Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.; `FORMULA` = Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/workspace/sheets/api/guides/formats#about_date_time_values).." - changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The ID of the spreadsheet to update."New value: +"[URL path segment] The ID of the spreadsheet to update." - changed
Input schema / properties / valueInputOption / descriptionPrevious value: -"How the input data should be interpreted."New value: +"[query parameter] How the input data should be interpreted. Values: `INPUT_VALUE_OPTION_UNSPECIFIED` = Default input value. This value must not be used.; `RAW` = The values the user has entered will not be parsed and will be stored as-is.; `USER_ENTERED` = The values will be parsed as if the user typed them into the UI. Numbers will stay as numbers, but strings may be converted to numbers, dates, etc. following the same rules that are applied when entering text into a cell via the Google Sheets UI.." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "spreadsheetId": { + "type": "string" + }, + "tableRange": { + "type": "string" + }, + "updates": { + "properties": { + "spreadsheetId": { + "type": "string" + }, + "updatedCells": { + "type": "integer" + }, + "updatedColumns": { + "type": "integer" + }, + "updatedData": { + "properties": { + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "range": { + "type": "string" + }, + "values": { + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" + }, + "updatedRange": { + "type": "string" + }, + "updatedRows": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.batchClear2 fields changed- changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The ID of the spreadsheet to update."New value: +"[URL path segment] The ID of the spreadsheet to update." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "clearedRanges": { + "items": { + "type": "string" + }, + "type": "array" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.batchClearByDataFilter2 fields changed- changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The ID of the spreadsheet to update."New value: +"[URL path segment] The ID of the spreadsheet to update." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "clearedRanges": { + "items": { + "type": "string" + }, + "type": "array" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.batchGet6 fields changed- changed
Input schema / properties / dateTimeRenderOption / descriptionPrevious value: -"How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render opti"New value: +"[query parameter] How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render opti Values: `SERIAL_NUMBER` = Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.; `FORMATTED_STRING` = Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale).." - changed
Input schema / properties / majorDimension / descriptionPrevious value: -"The major dimension that results should use. For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting `ranges=[\"A1:B2\"],majorDimension=RO"New value: +"[query parameter] The major dimension that results should use. For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting `ranges=[\"A1:B2\"],majorDimension=RO Values: `DIMENSION_UNSPECIFIED` = The default value, do not use.; `ROWS` = Operates on the rows of a sheet.; `COLUMNS` = Operates on the columns of a sheet.." - changed
Input schema / properties / ranges / items / descriptionPrevious value: -"The [A1 notation or R1C1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the range to retrieve values from."New value: +"[query parameter] The [A1 notation or R1C1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the range to retrieve values from." - changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The ID of the spreadsheet to retrieve data from."New value: +"[URL path segment] The ID of the spreadsheet to retrieve data from." - changed
Input schema / properties / valueRenderOption / descriptionPrevious value: -"How values should be represented in the output. The default render option is ValueRenderOption.FORMATTED_VALUE."New value: +"[query parameter] How values should be represented in the output. The default render option is ValueRenderOption.FORMATTED_VALUE. Values: `FORMATTED_VALUE` = Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.; `UNFORMATTED_VALUE` = Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.; `FORMULA` = Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/workspace/sheets/api/guides/formats#about_date_time_values).." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "spreadsheetId": { + "type": "string" + }, + "valueRanges": { + "items": { + "properties": { + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "range": { + "type": "string" + }, + "values": { + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.batchGetByDataFilter2 fields changed- changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The ID of the spreadsheet to retrieve data from."New value: +"[URL path segment] The ID of the spreadsheet to retrieve data from." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "spreadsheetId": { + "type": "string" + }, + "valueRanges": { + "items": { + "properties": { + "dataFilters": { + "items": { + "properties": { + "a1Range": { + "type": "string" + }, + "developerMetadataLookup": { + "properties": { + "locationMatchingStrategy": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED", + "EXACT_LOCATION", + "INTERSECTING_LOCATION" + ], + "type": "string" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataLocation": { + "type": "object" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "gridRange": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "valueRange": { + "properties": { + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "range": { + "type": "string" + }, + "values": { + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.batchUpdate2 fields changed- changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The ID of the spreadsheet to update."New value: +"[URL path segment] The ID of the spreadsheet to update." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "responses": { + "items": { + "properties": { + "spreadsheetId": { + "type": "string" + }, + "updatedCells": { + "type": "integer" + }, + "updatedColumns": { + "type": "integer" + }, + "updatedData": { + "properties": { + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "range": { + "type": "string" + }, + "values": { + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" + }, + "updatedRange": { + "type": "string" + }, + "updatedRows": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "spreadsheetId": { + "type": "string" + }, + "totalUpdatedCells": { + "type": "integer" + }, + "totalUpdatedColumns": { + "type": "integer" + }, + "totalUpdatedRows": { + "type": "integer" + }, + "totalUpdatedSheets": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.batchUpdateByDataFilter2 fields changed- changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The ID of the spreadsheet to update."New value: +"[URL path segment] The ID of the spreadsheet to update." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "responses": { + "items": { + "properties": { + "dataFilter": { + "properties": { + "a1Range": { + "type": "string" + }, + "developerMetadataLookup": { + "properties": { + "locationMatchingStrategy": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED", + "EXACT_LOCATION", + "INTERSECTING_LOCATION" + ], + "type": "string" + }, + "locationType": { + "enum": [ + "DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED", + "ROW", + "COLUMN", + "SHEET", + "SPREADSHEET" + ], + "type": "string" + }, + "metadataId": { + "type": "integer" + }, + "metadataKey": { + "type": "string" + }, + "metadataLocation": { + "type": "object" + }, + "metadataValue": { + "type": "string" + }, + "visibility": { + "enum": [ + "DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED", + "DOCUMENT", + "PROJECT" + ], + "type": "string" + } + }, + "type": "object" + }, + "gridRange": { + "properties": { + "endColumnIndex": { + "type": "integer" + }, + "endRowIndex": { + "type": "integer" + }, + "sheetId": { + "type": "integer" + }, + "startColumnIndex": { + "type": "integer" + }, + "startRowIndex": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "updatedCells": { + "type": "integer" + }, + "updatedColumns": { + "type": "integer" + }, + "updatedData": { + "properties": { + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "range": { + "type": "string" + }, + "values": { + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" + }, + "updatedRange": { + "type": "string" + }, + "updatedRows": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "spreadsheetId": { + "type": "string" + }, + "totalUpdatedCells": { + "type": "integer" + }, + "totalUpdatedColumns": { + "type": "integer" + }, + "totalUpdatedRows": { + "type": "integer" + }, + "totalUpdatedSheets": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.clear3 fields changed- changed
Input schema / properties / range / descriptionPrevious value: -"The [A1 notation or R1C1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the values to clear."New value: +"[URL path segment] The [A1 notation or R1C1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the values to clear." - changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The ID of the spreadsheet to update."New value: +"[URL path segment] The ID of the spreadsheet to update." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "clearedRange": { + "type": "string" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.get6 fields changed- changed
Input schema / properties / dateTimeRenderOption / descriptionPrevious value: -"How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render opti"New value: +"[query parameter] How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render opti Values: `SERIAL_NUMBER` = Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.; `FORMATTED_STRING` = Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale).." - changed
Input schema / properties / majorDimension / descriptionPrevious value: -"The major dimension that results should use. For example, if the spreadsheet data in Sheet1 is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=Sheet1!A1:B2?major"New value: +"[query parameter] The major dimension that results should use. For example, if the spreadsheet data in Sheet1 is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=Sheet1!A1:B2?major Values: `DIMENSION_UNSPECIFIED` = The default value, do not use.; `ROWS` = Operates on the rows of a sheet.; `COLUMNS` = Operates on the columns of a sheet.." - changed
Input schema / properties / range / descriptionPrevious value: -"The [A1 notation or R1C1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the range to retrieve values from."New value: +"[URL path segment] The [A1 notation or R1C1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the range to retrieve values from." - changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The ID of the spreadsheet to retrieve data from."New value: +"[URL path segment] The ID of the spreadsheet to retrieve data from." - changed
Input schema / properties / valueRenderOption / descriptionPrevious value: -"How values should be represented in the output. The default render option is FORMATTED_VALUE."New value: +"[query parameter] How values should be represented in the output. The default render option is FORMATTED_VALUE. Values: `FORMATTED_VALUE` = Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.; `UNFORMATTED_VALUE` = Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.; `FORMULA` = Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/workspace/sheets/api/guides/formats#about_date_time_values).." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "range": { + "type": "string" + }, + "values": { + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
sheets.spreadsheets.values.update7 fields changed- changed
Input schema / properties / includeValuesInResponse / descriptionPrevious value: -"Determines if the update response should include the values of the cells that were updated. By default, responses do not include the updated values. If the rang"New value: +"[query parameter] Determines if the update response should include the values of the cells that were updated. By default, responses do not include the updated values. If the rang" - changed
Input schema / properties / range / descriptionPrevious value: -"The [A1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the values to update."New value: +"[URL path segment] The [A1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the values to update." - changed
Input schema / properties / responseDateTimeRenderOption / descriptionPrevious value: -"Determines how dates, times, and durations in the response should be rendered. This is ignored if response_value_render_option is FORMATTED_VALUE. The default d"New value: +"[query parameter] Determines how dates, times, and durations in the response should be rendered. This is ignored if response_value_render_option is FORMATTED_VALUE. The default d Values: `SERIAL_NUMBER` = Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.; `FORMATTED_STRING` = Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale).." - changed
Input schema / properties / responseValueRenderOption / descriptionPrevious value: -"Determines how values in the response should be rendered. The default render option is FORMATTED_VALUE."New value: +"[query parameter] Determines how values in the response should be rendered. The default render option is FORMATTED_VALUE. Values: `FORMATTED_VALUE` = Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.; `UNFORMATTED_VALUE` = Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.; `FORMULA` = Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/workspace/sheets/api/guides/formats#about_date_time_values).." - changed
Input schema / properties / spreadsheetId / descriptionPrevious value: -"The ID of the spreadsheet to update."New value: +"[URL path segment] The ID of the spreadsheet to update." - changed
Input schema / properties / valueInputOption / descriptionPrevious value: -"How the input data should be interpreted."New value: +"[query parameter] How the input data should be interpreted. Values: `INPUT_VALUE_OPTION_UNSPECIFIED` = Default input value. This value must not be used.; `RAW` = The values the user has entered will not be parsed and will be stored as-is.; `USER_ENTERED` = The values will be parsed as if the user typed them into the UI. Numbers will stay as numbers, but strings may be converted to numbers, dates, etc. following the same rules that are applied when entering text into a cell via the Google Sheets UI.." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "spreadsheetId": { + "type": "string" + }, + "updatedCells": { + "type": "integer" + }, + "updatedColumns": { + "type": "integer" + }, + "updatedData": { + "properties": { + "majorDimension": { + "enum": [ + "DIMENSION_UNSPECIFIED", + "ROWS", + "COLUMNS" + ], + "type": "string" + }, + "range": { + "type": "string" + }, + "values": { + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" + }, + "updatedRange": { + "type": "string" + }, + "updatedRows": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
slides.presentations.batchUpdate2 fields changed- changed
Input schema / properties / presentationId / descriptionPrevious value: -"The presentation to apply the updates to."New value: +"[URL path segment] The presentation to apply the updates to." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "commentUpdateState": { + "enum": [ + "COMMENT_UPDATE_STATE_UNSPECIFIED", + "NO_UPDATES_REQUESTED", + "ALL_SAVED", + "ALL_FAILED_UNKNOWN_REASON" + ], + "type": "string" + }, + "presentationId": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "addCommentReply": { + "properties": { + "post": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "createImage": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "createLine": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "createShape": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "createSheetsChart": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "createSlide": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "createTable": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "createVideo": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "duplicateObject": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "groupObjects": { + "properties": { + "objectId": { + "type": "string" + } + }, + "type": "object" + }, + "insertComment": { + "properties": { + "commentThread": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "replaceAllShapesWithImage": { + "properties": { + "occurrencesChanged": { + "type": "integer" + } + }, + "type": "object" + }, + "replaceAllShapesWithSheetsChart": { + "properties": { + "occurrencesChanged": { + "type": "integer" + } + }, + "type": "object" + }, + "replaceAllText": { + "properties": { + "occurrencesChanged": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "writeControl": { + "properties": { + "requiredRevisionId": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
slides.presentations.create1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layouts": { + "items": { + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "properties": { + "objectId": { + "type": "string" + }, + "shapeTextAnchors": { + "type": "object" + }, + "tableCellAnchors": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "properties": { + "children": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "image": { + "properties": { + "contentUrl": { + "type": "string" + }, + "imageProperties": { + "type": "object" + }, + "placeholder": { + "type": "object" + }, + "sourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "line": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "lineProperties": { + "type": "object" + }, + "lineType": { + "enum": [ + "TYPE_UNSPECIFIED", + "STRAIGHT_CONNECTOR_1", + "BENT_CONNECTOR_2", + "BENT_CONNECTOR_3", + "BENT_CONNECTOR_4", + "BENT_CONNECTOR_5", + "CURVED_CONNECTOR_2", + "CURVED_CONNECTOR_3", + "CURVED_CONNECTOR_4", + "CURVED_CONNECTOR_5", + "STRAIGHT_LINE" + ], + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "properties": { + "placeholder": { + "type": "object" + }, + "shapeProperties": { + "type": "object" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + }, + "text": { + "type": "object" + } + }, + "type": "object" + }, + "sheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "contentUrl": { + "type": "string" + }, + "sheetsChartProperties": { + "type": "object" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "properties": { + "height": { + "type": "object" + }, + "width": { + "type": "object" + } + }, + "type": "object" + }, + "speakerSpotlight": { + "properties": { + "speakerSpotlightProperties": { + "type": "object" + } + }, + "type": "object" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "horizontalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rows": { + "type": "integer" + }, + "tableColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "verticalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "video": { + "properties": { + "id": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "videoProperties": { + "type": "object" + } + }, + "type": "object" + }, + "wordArt": { + "properties": { + "renderedText": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "properties": { + "colors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "pageBackgroundFill": { + "properties": { + "propertyState": { + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "type": "string" + }, + "solidFill": { + "type": "object" + }, + "stretchedPictureFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "properties": { + "commentAnchors": { + "items": { + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "type": "object" + }, + "masterProperties": { + "type": "object" + }, + "notesProperties": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "locale": { + "type": "string" + }, + "masters": { + "items": { + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "properties": { + "objectId": { + "type": "string" + }, + "shapeTextAnchors": { + "type": "object" + }, + "tableCellAnchors": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "properties": { + "children": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "image": { + "properties": { + "contentUrl": { + "type": "string" + }, + "imageProperties": { + "type": "object" + }, + "placeholder": { + "type": "object" + }, + "sourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "line": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "lineProperties": { + "type": "object" + }, + "lineType": { + "enum": [ + "TYPE_UNSPECIFIED", + "STRAIGHT_CONNECTOR_1", + "BENT_CONNECTOR_2", + "BENT_CONNECTOR_3", + "BENT_CONNECTOR_4", + "BENT_CONNECTOR_5", + "CURVED_CONNECTOR_2", + "CURVED_CONNECTOR_3", + "CURVED_CONNECTOR_4", + "CURVED_CONNECTOR_5", + "STRAIGHT_LINE" + ], + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "properties": { + "placeholder": { + "type": "object" + }, + "shapeProperties": { + "type": "object" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + }, + "text": { + "type": "object" + } + }, + "type": "object" + }, + "sheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "contentUrl": { + "type": "string" + }, + "sheetsChartProperties": { + "type": "object" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "properties": { + "height": { + "type": "object" + }, + "width": { + "type": "object" + } + }, + "type": "object" + }, + "speakerSpotlight": { + "properties": { + "speakerSpotlightProperties": { + "type": "object" + } + }, + "type": "object" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "horizontalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rows": { + "type": "integer" + }, + "tableColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "verticalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "video": { + "properties": { + "id": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "videoProperties": { + "type": "object" + } + }, + "type": "object" + }, + "wordArt": { + "properties": { + "renderedText": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "properties": { + "colors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "pageBackgroundFill": { + "properties": { + "propertyState": { + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "type": "string" + }, + "solidFill": { + "type": "object" + }, + "stretchedPictureFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "properties": { + "commentAnchors": { + "items": { + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "type": "object" + }, + "masterProperties": { + "type": "object" + }, + "notesProperties": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "notesMaster": { + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "properties": { + "objectId": { + "type": "string" + }, + "shapeTextAnchors": { + "type": "object" + }, + "tableCellAnchors": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "properties": { + "children": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "image": { + "properties": { + "contentUrl": { + "type": "string" + }, + "imageProperties": { + "type": "object" + }, + "placeholder": { + "type": "object" + }, + "sourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "line": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "lineProperties": { + "type": "object" + }, + "lineType": { + "enum": [ + "TYPE_UNSPECIFIED", + "STRAIGHT_CONNECTOR_1", + "BENT_CONNECTOR_2", + "BENT_CONNECTOR_3", + "BENT_CONNECTOR_4", + "BENT_CONNECTOR_5", + "CURVED_CONNECTOR_2", + "CURVED_CONNECTOR_3", + "CURVED_CONNECTOR_4", + "CURVED_CONNECTOR_5", + "STRAIGHT_LINE" + ], + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "properties": { + "placeholder": { + "type": "object" + }, + "shapeProperties": { + "type": "object" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + }, + "text": { + "type": "object" + } + }, + "type": "object" + }, + "sheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "contentUrl": { + "type": "string" + }, + "sheetsChartProperties": { + "type": "object" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "properties": { + "height": { + "type": "object" + }, + "width": { + "type": "object" + } + }, + "type": "object" + }, + "speakerSpotlight": { + "properties": { + "speakerSpotlightProperties": { + "type": "object" + } + }, + "type": "object" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "horizontalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rows": { + "type": "integer" + }, + "tableColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "verticalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "video": { + "properties": { + "id": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "videoProperties": { + "type": "object" + } + }, + "type": "object" + }, + "wordArt": { + "properties": { + "renderedText": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "properties": { + "colors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "pageBackgroundFill": { + "properties": { + "propertyState": { + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "type": "string" + }, + "solidFill": { + "type": "object" + }, + "stretchedPictureFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "properties": { + "commentAnchors": { + "items": { + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "type": "object" + }, + "masterProperties": { + "type": "object" + }, + "notesProperties": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageSize": { + "properties": { + "height": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "width": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "presentationId": { + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slides": { + "items": { + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "properties": { + "objectId": { + "type": "string" + }, + "shapeTextAnchors": { + "type": "object" + }, + "tableCellAnchors": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "properties": { + "children": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "image": { + "properties": { + "contentUrl": { + "type": "string" + }, + "imageProperties": { + "type": "object" + }, + "placeholder": { + "type": "object" + }, + "sourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "line": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "lineProperties": { + "type": "object" + }, + "lineType": { + "enum": [ + "TYPE_UNSPECIFIED", + "STRAIGHT_CONNECTOR_1", + "BENT_CONNECTOR_2", + "BENT_CONNECTOR_3", + "BENT_CONNECTOR_4", + "BENT_CONNECTOR_5", + "CURVED_CONNECTOR_2", + "CURVED_CONNECTOR_3", + "CURVED_CONNECTOR_4", + "CURVED_CONNECTOR_5", + "STRAIGHT_LINE" + ], + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "properties": { + "placeholder": { + "type": "object" + }, + "shapeProperties": { + "type": "object" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + }, + "text": { + "type": "object" + } + }, + "type": "object" + }, + "sheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "contentUrl": { + "type": "string" + }, + "sheetsChartProperties": { + "type": "object" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "properties": { + "height": { + "type": "object" + }, + "width": { + "type": "object" + } + }, + "type": "object" + }, + "speakerSpotlight": { + "properties": { + "speakerSpotlightProperties": { + "type": "object" + } + }, + "type": "object" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "horizontalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rows": { + "type": "integer" + }, + "tableColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "verticalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "video": { + "properties": { + "id": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "videoProperties": { + "type": "object" + } + }, + "type": "object" + }, + "wordArt": { + "properties": { + "renderedText": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "properties": { + "colors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "pageBackgroundFill": { + "properties": { + "propertyState": { + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "type": "string" + }, + "solidFill": { + "type": "object" + }, + "stretchedPictureFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "properties": { + "commentAnchors": { + "items": { + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "type": "object" + }, + "masterProperties": { + "type": "object" + }, + "notesProperties": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "type": "object" +}
- Changed
slides.presentations.get4 fields changed- changed
Input schema / properties / commentsViewMode / descriptionPrevious value: -"The comments view mode to apply to the presentation. This allows viewing the presentation with comments omitted or included. If one is not specified, COMMENTS_V"New value: +"[query parameter] The comments view mode to apply to the presentation. This allows viewing the presentation with comments omitted or included. If one is not specified, COMMENTS_V Values: `COMMENTS_VIEW_MODE_UNSPECIFIED` = The CommentsViewMode is unspecified; COMMENTS_VIEW_MODE_OMITTED is applied.; `COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS` = The CommentsViewMode applied to the returned presentation depends on the user's current access level. If the user only has view access, COMMENTS_VIEW_MODE_OMITTED is applied. Otherwise, COMMENTS_VIEW_MODE_INCLUDED is applied.; `COMMENTS_VIEW_MODE_OMITTED` = The returned presentation has comments omitted.; `COMMENTS_VIEW_MODE_INCLUDED` = The returned presentation has comments included. Requests to retrieve a presentation using this mode will return a 403 error if the user does not have permission to view comments.." - changed
Input schema / properties / presentationId / descriptionPrevious value: -"The ID of the presentation to retrieve."New value: +"[URL path segment] The ID of the presentation to retrieve." - added
Input schema / properties / presentationId / patternAdded value: +"^[^/]+$" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layouts": { + "items": { + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "properties": { + "objectId": { + "type": "string" + }, + "shapeTextAnchors": { + "type": "object" + }, + "tableCellAnchors": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "properties": { + "children": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "image": { + "properties": { + "contentUrl": { + "type": "string" + }, + "imageProperties": { + "type": "object" + }, + "placeholder": { + "type": "object" + }, + "sourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "line": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "lineProperties": { + "type": "object" + }, + "lineType": { + "enum": [ + "TYPE_UNSPECIFIED", + "STRAIGHT_CONNECTOR_1", + "BENT_CONNECTOR_2", + "BENT_CONNECTOR_3", + "BENT_CONNECTOR_4", + "BENT_CONNECTOR_5", + "CURVED_CONNECTOR_2", + "CURVED_CONNECTOR_3", + "CURVED_CONNECTOR_4", + "CURVED_CONNECTOR_5", + "STRAIGHT_LINE" + ], + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "properties": { + "placeholder": { + "type": "object" + }, + "shapeProperties": { + "type": "object" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + }, + "text": { + "type": "object" + } + }, + "type": "object" + }, + "sheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "contentUrl": { + "type": "string" + }, + "sheetsChartProperties": { + "type": "object" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "properties": { + "height": { + "type": "object" + }, + "width": { + "type": "object" + } + }, + "type": "object" + }, + "speakerSpotlight": { + "properties": { + "speakerSpotlightProperties": { + "type": "object" + } + }, + "type": "object" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "horizontalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rows": { + "type": "integer" + }, + "tableColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "verticalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "video": { + "properties": { + "id": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "videoProperties": { + "type": "object" + } + }, + "type": "object" + }, + "wordArt": { + "properties": { + "renderedText": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "properties": { + "colors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "pageBackgroundFill": { + "properties": { + "propertyState": { + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "type": "string" + }, + "solidFill": { + "type": "object" + }, + "stretchedPictureFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "properties": { + "commentAnchors": { + "items": { + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "type": "object" + }, + "masterProperties": { + "type": "object" + }, + "notesProperties": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "locale": { + "type": "string" + }, + "masters": { + "items": { + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "properties": { + "objectId": { + "type": "string" + }, + "shapeTextAnchors": { + "type": "object" + }, + "tableCellAnchors": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "properties": { + "children": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "image": { + "properties": { + "contentUrl": { + "type": "string" + }, + "imageProperties": { + "type": "object" + }, + "placeholder": { + "type": "object" + }, + "sourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "line": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "lineProperties": { + "type": "object" + }, + "lineType": { + "enum": [ + "TYPE_UNSPECIFIED", + "STRAIGHT_CONNECTOR_1", + "BENT_CONNECTOR_2", + "BENT_CONNECTOR_3", + "BENT_CONNECTOR_4", + "BENT_CONNECTOR_5", + "CURVED_CONNECTOR_2", + "CURVED_CONNECTOR_3", + "CURVED_CONNECTOR_4", + "CURVED_CONNECTOR_5", + "STRAIGHT_LINE" + ], + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "properties": { + "placeholder": { + "type": "object" + }, + "shapeProperties": { + "type": "object" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + }, + "text": { + "type": "object" + } + }, + "type": "object" + }, + "sheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "contentUrl": { + "type": "string" + }, + "sheetsChartProperties": { + "type": "object" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "properties": { + "height": { + "type": "object" + }, + "width": { + "type": "object" + } + }, + "type": "object" + }, + "speakerSpotlight": { + "properties": { + "speakerSpotlightProperties": { + "type": "object" + } + }, + "type": "object" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "horizontalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rows": { + "type": "integer" + }, + "tableColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "verticalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "video": { + "properties": { + "id": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "videoProperties": { + "type": "object" + } + }, + "type": "object" + }, + "wordArt": { + "properties": { + "renderedText": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "properties": { + "colors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "pageBackgroundFill": { + "properties": { + "propertyState": { + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "type": "string" + }, + "solidFill": { + "type": "object" + }, + "stretchedPictureFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "properties": { + "commentAnchors": { + "items": { + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "type": "object" + }, + "masterProperties": { + "type": "object" + }, + "notesProperties": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "notesMaster": { + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "properties": { + "objectId": { + "type": "string" + }, + "shapeTextAnchors": { + "type": "object" + }, + "tableCellAnchors": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "properties": { + "children": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "image": { + "properties": { + "contentUrl": { + "type": "string" + }, + "imageProperties": { + "type": "object" + }, + "placeholder": { + "type": "object" + }, + "sourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "line": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "lineProperties": { + "type": "object" + }, + "lineType": { + "enum": [ + "TYPE_UNSPECIFIED", + "STRAIGHT_CONNECTOR_1", + "BENT_CONNECTOR_2", + "BENT_CONNECTOR_3", + "BENT_CONNECTOR_4", + "BENT_CONNECTOR_5", + "CURVED_CONNECTOR_2", + "CURVED_CONNECTOR_3", + "CURVED_CONNECTOR_4", + "CURVED_CONNECTOR_5", + "STRAIGHT_LINE" + ], + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "properties": { + "placeholder": { + "type": "object" + }, + "shapeProperties": { + "type": "object" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + }, + "text": { + "type": "object" + } + }, + "type": "object" + }, + "sheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "contentUrl": { + "type": "string" + }, + "sheetsChartProperties": { + "type": "object" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "properties": { + "height": { + "type": "object" + }, + "width": { + "type": "object" + } + }, + "type": "object" + }, + "speakerSpotlight": { + "properties": { + "speakerSpotlightProperties": { + "type": "object" + } + }, + "type": "object" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "horizontalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rows": { + "type": "integer" + }, + "tableColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "verticalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "video": { + "properties": { + "id": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "videoProperties": { + "type": "object" + } + }, + "type": "object" + }, + "wordArt": { + "properties": { + "renderedText": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "properties": { + "colors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "pageBackgroundFill": { + "properties": { + "propertyState": { + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "type": "string" + }, + "solidFill": { + "type": "object" + }, + "stretchedPictureFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "properties": { + "commentAnchors": { + "items": { + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "type": "object" + }, + "masterProperties": { + "type": "object" + }, + "notesProperties": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageSize": { + "properties": { + "height": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "width": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "presentationId": { + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slides": { + "items": { + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "properties": { + "objectId": { + "type": "string" + }, + "shapeTextAnchors": { + "type": "object" + }, + "tableCellAnchors": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "properties": { + "children": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "image": { + "properties": { + "contentUrl": { + "type": "string" + }, + "imageProperties": { + "type": "object" + }, + "placeholder": { + "type": "object" + }, + "sourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "line": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "lineProperties": { + "type": "object" + }, + "lineType": { + "enum": [ + "TYPE_UNSPECIFIED", + "STRAIGHT_CONNECTOR_1", + "BENT_CONNECTOR_2", + "BENT_CONNECTOR_3", + "BENT_CONNECTOR_4", + "BENT_CONNECTOR_5", + "CURVED_CONNECTOR_2", + "CURVED_CONNECTOR_3", + "CURVED_CONNECTOR_4", + "CURVED_CONNECTOR_5", + "STRAIGHT_LINE" + ], + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "properties": { + "placeholder": { + "type": "object" + }, + "shapeProperties": { + "type": "object" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + }, + "text": { + "type": "object" + } + }, + "type": "object" + }, + "sheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "contentUrl": { + "type": "string" + }, + "sheetsChartProperties": { + "type": "object" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "properties": { + "height": { + "type": "object" + }, + "width": { + "type": "object" + } + }, + "type": "object" + }, + "speakerSpotlight": { + "properties": { + "speakerSpotlightProperties": { + "type": "object" + } + }, + "type": "object" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "horizontalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "rows": { + "type": "integer" + }, + "tableColumns": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableRows": { + "items": { + "type": "object" + }, + "type": "array" + }, + "verticalBorderRows": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "video": { + "properties": { + "id": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "videoProperties": { + "type": "object" + } + }, + "type": "object" + }, + "wordArt": { + "properties": { + "renderedText": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "properties": { + "colors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "pageBackgroundFill": { + "properties": { + "propertyState": { + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "type": "string" + }, + "solidFill": { + "type": "object" + }, + "stretchedPictureFill": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "properties": { + "commentAnchors": { + "items": { + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "type": "object" + }, + "masterProperties": { + "type": "object" + }, + "notesProperties": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "type": "object" +}
- Changed
slides.presentations.pages.get4 fields changed- changed
Input schema / properties / commentsViewMode / descriptionPrevious value: -"The comments view mode to apply to the page. This allows viewing the page with comments omitted or included. If one is not specified, COMMENTS_VIEW_MODE_OMITTED"New value: +"[query parameter] The comments view mode to apply to the page. This allows viewing the page with comments omitted or included. If one is not specified, COMMENTS_VIEW_MODE_OMITTED Values: `COMMENTS_VIEW_MODE_UNSPECIFIED` = The CommentsViewMode is unspecified; COMMENTS_VIEW_MODE_OMITTED is applied.; `COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS` = The CommentsViewMode applied to the returned presentation depends on the user's current access level. If the user only has view access, COMMENTS_VIEW_MODE_OMITTED is applied. Otherwise, COMMENTS_VIEW_MODE_INCLUDED is applied.; `COMMENTS_VIEW_MODE_OMITTED` = The returned presentation has comments omitted.; `COMMENTS_VIEW_MODE_INCLUDED` = The returned presentation has comments included. Requests to retrieve a presentation using this mode will return a 403 error if the user does not have permission to view comments.." - changed
Input schema / properties / pageObjectId / descriptionPrevious value: -"The object ID of the page to retrieve."New value: +"[URL path segment] The object ID of the page to retrieve." - changed
Input schema / properties / presentationId / descriptionPrevious value: -"The ID of the presentation to retrieve."New value: +"[URL path segment] The ID of the presentation to retrieve." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "properties": { + "objectId": { + "type": "string" + }, + "shapeTextAnchors": { + "properties": { + "ranges": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "tableCellAnchors": { + "properties": { + "cellRanges": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "properties": { + "assigneeEmail": { + "type": "string" + }, + "author": { + "properties": { + "anonymous": { + "type": "boolean" + }, + "displayName": { + "type": "string" + }, + "me": { + "type": "boolean" + }, + "user": { + "type": "string" + } + }, + "type": "object" + }, + "commentAction": { + "enum": [ + "COMMENT_ACTION_TYPE_UNSPECIFIED", + "NO_COMMENT_ACTION_CHANGE", + "RESOLVE", + "REOPEN" + ], + "type": "string" + }, + "content": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "createTime": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "fromCopiedPresentation": { + "type": "boolean" + }, + "fromImportedPresentation": { + "type": "boolean" + }, + "postId": { + "type": "string" + }, + "updateTime": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "properties": { + "children": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "type": "object" + }, + "image": { + "type": "object" + }, + "line": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "type": "object" + }, + "sheetsChart": { + "type": "object" + }, + "size": { + "type": "object" + }, + "speakerSpotlight": { + "type": "object" + }, + "table": { + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "type": "object" + }, + "video": { + "type": "object" + }, + "wordArt": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "image": { + "properties": { + "contentUrl": { + "type": "string" + }, + "imageProperties": { + "properties": { + "brightness": { + "type": "number" + }, + "contrast": { + "type": "number" + }, + "cropProperties": { + "type": "object" + }, + "link": { + "type": "object" + }, + "outline": { + "type": "object" + }, + "recolor": { + "type": "object" + }, + "shadow": { + "type": "object" + }, + "transparency": { + "type": "number" + } + }, + "type": "object" + }, + "placeholder": { + "properties": { + "index": { + "type": "integer" + }, + "parentObjectId": { + "type": "string" + }, + "type": { + "enum": [ + "NONE", + "BODY", + "CHART", + "CLIP_ART", + "CENTERED_TITLE", + "DIAGRAM", + "DATE_AND_TIME", + "FOOTER", + "HEADER", + "MEDIA", + "OBJECT", + "PICTURE", + "SLIDE_NUMBER", + "SUBTITLE", + "TABLE", + "TITLE", + "SLIDE_IMAGE" + ], + "type": "string" + } + }, + "type": "object" + }, + "sourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "line": { + "properties": { + "lineCategory": { + "enum": [ + "LINE_CATEGORY_UNSPECIFIED", + "STRAIGHT", + "BENT", + "CURVED" + ], + "type": "string" + }, + "lineProperties": { + "properties": { + "dashStyle": { + "enum": [ + "DASH_STYLE_UNSPECIFIED", + "SOLID", + "DOT", + "DASH", + "DASH_DOT", + "LONG_DASH", + "LONG_DASH_DOT" + ], + "type": "string" + }, + "endArrow": { + "enum": [ + "ARROW_STYLE_UNSPECIFIED", + "NONE", + "STEALTH_ARROW", + "FILL_ARROW", + "FILL_CIRCLE", + "FILL_SQUARE", + "FILL_DIAMOND", + "OPEN_ARROW", + "OPEN_CIRCLE", + "OPEN_SQUARE", + "OPEN_DIAMOND" + ], + "type": "string" + }, + "endConnection": { + "type": "object" + }, + "lineFill": { + "type": "object" + }, + "link": { + "type": "object" + }, + "startArrow": { + "enum": [ + "ARROW_STYLE_UNSPECIFIED", + "NONE", + "STEALTH_ARROW", + "FILL_ARROW", + "FILL_CIRCLE", + "FILL_SQUARE", + "FILL_DIAMOND", + "OPEN_ARROW", + "OPEN_CIRCLE", + "OPEN_SQUARE", + "OPEN_DIAMOND" + ], + "type": "string" + }, + "startConnection": { + "type": "object" + }, + "weight": { + "type": "object" + } + }, + "type": "object" + }, + "lineType": { + "enum": [ + "TYPE_UNSPECIFIED", + "STRAIGHT_CONNECTOR_1", + "BENT_CONNECTOR_2", + "BENT_CONNECTOR_3", + "BENT_CONNECTOR_4", + "BENT_CONNECTOR_5", + "CURVED_CONNECTOR_2", + "CURVED_CONNECTOR_3", + "CURVED_CONNECTOR_4", + "CURVED_CONNECTOR_5", + "STRAIGHT_LINE" + ], + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "properties": { + "placeholder": { + "properties": { + "index": { + "type": "integer" + }, + "parentObjectId": { + "type": "string" + }, + "type": { + "enum": [ + "NONE", + "BODY", + "CHART", + "CLIP_ART", + "CENTERED_TITLE", + "DIAGRAM", + "DATE_AND_TIME", + "FOOTER", + "HEADER", + "MEDIA", + "OBJECT", + "PICTURE", + "SLIDE_NUMBER", + "SUBTITLE", + "TABLE", + "TITLE", + "SLIDE_IMAGE" + ], + "type": "string" + } + }, + "type": "object" + }, + "shapeProperties": { + "properties": { + "autofit": { + "type": "object" + }, + "contentAlignment": { + "enum": [ + "CONTENT_ALIGNMENT_UNSPECIFIED", + "CONTENT_ALIGNMENT_UNSUPPORTED", + "TOP", + "MIDDLE", + "BOTTOM" + ], + "type": "string" + }, + "link": { + "type": "object" + }, + "outline": { + "type": "object" + }, + "shadow": { + "type": "object" + }, + "shapeBackgroundFill": { + "type": "object" + } + }, + "type": "object" + }, + "shapeType": { + "enum": [ + "TYPE_UNSPECIFIED", + "TEXT_BOX", + "RECTANGLE", + "ROUND_RECTANGLE", + "ELLIPSE", + "ARC", + "BENT_ARROW", + "BENT_UP_ARROW", + "BEVEL", + "BLOCK_ARC", + "BRACE_PAIR", + "BRACKET_PAIR", + "CAN", + "CHEVRON", + "CHORD", + "CLOUD", + "CORNER", + "CUBE", + "CURVED_DOWN_ARROW", + "CURVED_LEFT_ARROW", + "CURVED_RIGHT_ARROW", + "CURVED_UP_ARROW", + "DECAGON", + "DIAGONAL_STRIPE", + "DIAMOND", + "DODECAGON", + "DONUT", + "DOUBLE_WAVE", + "DOWN_ARROW", + "DOWN_ARROW_CALLOUT", + "FOLDED_CORNER", + "FRAME", + "HALF_FRAME", + "HEART", + "HEPTAGON", + "HEXAGON", + "HOME_PLATE", + "HORIZONTAL_SCROLL", + "IRREGULAR_SEAL_1", + "IRREGULAR_SEAL_2", + "LEFT_ARROW", + "LEFT_ARROW_CALLOUT", + "LEFT_BRACE", + "LEFT_BRACKET", + "LEFT_RIGHT_ARROW", + "LEFT_RIGHT_ARROW_CALLOUT", + "LEFT_RIGHT_UP_ARROW", + "LEFT_UP_ARROW", + "LIGHTNING_BOLT", + "MATH_DIVIDE", + "MATH_EQUAL", + "MATH_MINUS", + "MATH_MULTIPLY", + "MATH_NOT_EQUAL", + "MATH_PLUS", + "MOON", + "NO_SMOKING", + "NOTCHED_RIGHT_ARROW", + "OCTAGON", + "PARALLELOGRAM", + "PENTAGON", + "PIE", + "PLAQUE", + "PLUS", + "QUAD_ARROW", + "QUAD_ARROW_CALLOUT", + "RIBBON", + "RIBBON_2", + "RIGHT_ARROW", + "RIGHT_ARROW_CALLOUT", + "RIGHT_BRACE", + "RIGHT_BRACKET", + "ROUND_1_RECTANGLE", + "ROUND_2_DIAGONAL_RECTANGLE", + "ROUND_2_SAME_RECTANGLE", + "RIGHT_TRIANGLE", + "SMILEY_FACE", + "SNIP_1_RECTANGLE", + "SNIP_2_DIAGONAL_RECTANGLE", + "SNIP_2_SAME_RECTANGLE", + "SNIP_ROUND_RECTANGLE", + "STAR_10", + "STAR_12", + "STAR_16", + "STAR_24", + "STAR_32", + "STAR_4", + "STAR_5", + "STAR_6", + "STAR_7", + "STAR_8", + "STRIPED_RIGHT_ARROW", + "SUN", + "TRAPEZOID", + "TRIANGLE", + "UP_ARROW", + "UP_ARROW_CALLOUT", + "UP_DOWN_ARROW", + "UTURN_ARROW", + "VERTICAL_SCROLL", + "WAVE", + "WEDGE_ELLIPSE_CALLOUT", + "WEDGE_RECTANGLE_CALLOUT", + "WEDGE_ROUND_RECTANGLE_CALLOUT", + "FLOW_CHART_ALTERNATE_PROCESS", + "FLOW_CHART_COLLATE", + "FLOW_CHART_CONNECTOR", + "FLOW_CHART_DECISION", + "FLOW_CHART_DELAY", + "FLOW_CHART_DISPLAY", + "FLOW_CHART_DOCUMENT", + "FLOW_CHART_EXTRACT", + "FLOW_CHART_INPUT_OUTPUT", + "FLOW_CHART_INTERNAL_STORAGE", + "FLOW_CHART_MAGNETIC_DISK", + "FLOW_CHART_MAGNETIC_DRUM", + "FLOW_CHART_MAGNETIC_TAPE", + "FLOW_CHART_MANUAL_INPUT", + "FLOW_CHART_MANUAL_OPERATION", + "FLOW_CHART_MERGE", + "FLOW_CHART_MULTIDOCUMENT", + "FLOW_CHART_OFFLINE_STORAGE", + "FLOW_CHART_OFFPAGE_CONNECTOR", + "FLOW_CHART_ONLINE_STORAGE", + "FLOW_CHART_OR", + "FLOW_CHART_PREDEFINED_PROCESS", + "FLOW_CHART_PREPARATION", + "FLOW_CHART_PROCESS", + "FLOW_CHART_PUNCHED_CARD", + "FLOW_CHART_PUNCHED_TAPE", + "FLOW_CHART_SORT", + "FLOW_CHART_SUMMING_JUNCTION", + "FLOW_CHART_TERMINATOR", + "ARROW_EAST", + "ARROW_NORTH_EAST", + "ARROW_NORTH", + "SPEECH", + "STARBURST", + "TEARDROP", + "ELLIPSE_RIBBON", + "ELLIPSE_RIBBON_2", + "CLOUD_CALLOUT", + "CUSTOM" + ], + "type": "string" + }, + "text": { + "properties": { + "lists": { + "type": "object" + }, + "textElements": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "sheetsChart": { + "properties": { + "chartId": { + "type": "integer" + }, + "contentUrl": { + "type": "string" + }, + "sheetsChartProperties": { + "properties": { + "chartImageProperties": { + "type": "object" + } + }, + "type": "object" + }, + "spreadsheetId": { + "type": "string" + } + }, + "type": "object" + }, + "size": { + "properties": { + "height": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "width": { + "properties": { + "magnitude": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "speakerSpotlight": { + "properties": { + "speakerSpotlightProperties": { + "properties": { + "outline": { + "type": "object" + }, + "shadow": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "table": { + "properties": { + "columns": { + "type": "integer" + }, + "horizontalBorderRows": { + "items": { + "properties": { + "tableBorderCells": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "rows": { + "type": "integer" + }, + "tableColumns": { + "items": { + "properties": { + "columnWidth": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "tableRows": { + "items": { + "properties": { + "rowHeight": { + "type": "object" + }, + "tableCells": { + "items": { + "type": "object" + }, + "type": "array" + }, + "tableRowProperties": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "verticalBorderRows": { + "items": { + "properties": { + "tableBorderCells": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "properties": { + "scaleX": { + "type": "number" + }, + "scaleY": { + "type": "number" + }, + "shearX": { + "type": "number" + }, + "shearY": { + "type": "number" + }, + "translateX": { + "type": "number" + }, + "translateY": { + "type": "number" + }, + "unit": { + "enum": [ + "UNIT_UNSPECIFIED", + "EMU", + "PT" + ], + "type": "string" + } + }, + "type": "object" + }, + "video": { + "properties": { + "id": { + "type": "string" + }, + "source": { + "enum": [ + "SOURCE_UNSPECIFIED", + "YOUTUBE", + "DRIVE" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "videoProperties": { + "properties": { + "autoPlay": { + "type": "boolean" + }, + "end": { + "type": "integer" + }, + "mute": { + "type": "boolean" + }, + "outline": { + "type": "object" + }, + "start": { + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "wordArt": { + "properties": { + "renderedText": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "properties": { + "colors": { + "items": { + "properties": { + "color": { + "type": "object" + }, + "type": { + "enum": [ + "THEME_COLOR_TYPE_UNSPECIFIED", + "DARK1", + "LIGHT1", + "DARK2", + "LIGHT2", + "ACCENT1", + "ACCENT2", + "ACCENT3", + "ACCENT4", + "ACCENT5", + "ACCENT6", + "HYPERLINK", + "FOLLOWED_HYPERLINK", + "TEXT1", + "BACKGROUND1", + "TEXT2", + "BACKGROUND2" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "pageBackgroundFill": { + "properties": { + "propertyState": { + "enum": [ + "RENDERED", + "NOT_RENDERED", + "INHERIT" + ], + "type": "string" + }, + "solidFill": { + "properties": { + "alpha": { + "type": "number" + }, + "color": { + "type": "object" + } + }, + "type": "object" + }, + "stretchedPictureFill": { + "properties": { + "contentUrl": { + "type": "string" + }, + "size": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "properties": { + "commentAnchors": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "objectAnchors": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "comments": { + "items": { + "properties": { + "anchorId": { + "type": "string" + }, + "commentId": { + "type": "string" + }, + "headPost": { + "type": "object" + }, + "plainTextQuote": { + "type": "string" + }, + "replies": { + "items": { + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "STATUS_UNSPECIFIED", + "OPEN", + "RESOLVED" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "commentsViewMode": { + "enum": [ + "COMMENTS_VIEW_MODE_UNSPECIFIED", + "COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS", + "COMMENTS_VIEW_MODE_OMITTED", + "COMMENTS_VIEW_MODE_INCLUDED" + ], + "type": "string" + }, + "layoutProperties": { + "properties": { + "displayName": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "masterProperties": { + "properties": { + "displayName": { + "type": "string" + } + }, + "type": "object" + }, + "notesProperties": { + "properties": { + "speakerNotesObjectId": { + "type": "string" + } + }, + "type": "object" + }, + "objectId": { + "type": "string" + }, + "pageElements": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "elementGroup": { + "type": "object" + }, + "image": { + "type": "object" + }, + "line": { + "type": "object" + }, + "objectId": { + "type": "string" + }, + "shape": { + "type": "object" + }, + "sheetsChart": { + "type": "object" + }, + "size": { + "type": "object" + }, + "speakerSpotlight": { + "type": "object" + }, + "table": { + "type": "object" + }, + "title": { + "type": "string" + }, + "transform": { + "type": "object" + }, + "video": { + "type": "object" + }, + "wordArt": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "pageProperties": { + "properties": { + "colorScheme": { + "type": "object" + }, + "pageBackgroundFill": { + "type": "object" + } + }, + "type": "object" + }, + "pageType": { + "enum": [ + "SLIDE", + "MASTER", + "LAYOUT", + "NOTES", + "NOTES_MASTER" + ], + "type": "string" + }, + "revisionId": { + "type": "string" + }, + "slideProperties": { + "properties": { + "isSkipped": { + "type": "boolean" + }, + "layoutObjectId": { + "type": "string" + }, + "masterObjectId": { + "type": "string" + }, + "notesPage": { + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
slides.presentations.pages.getThumbnail5 fields changed- changed
Input schema / properties / pageObjectId / descriptionPrevious value: -"The object ID of the page whose thumbnail to retrieve."New value: +"[URL path segment] The object ID of the page whose thumbnail to retrieve." - changed
Input schema / properties / presentationId / descriptionPrevious value: -"The ID of the presentation to retrieve."New value: +"[URL path segment] The ID of the presentation to retrieve." - changed
Input schema / properties / thumbnailProperties.mimeType / descriptionPrevious value: -"The optional mime type of the thumbnail image. If you don't specify the mime type, the mime type defaults to PNG."New value: +"[query parameter] The optional mime type of the thumbnail image. If you don't specify the mime type, the mime type defaults to PNG. Values: `PNG` = The default mime type.." - changed
Input schema / properties / thumbnailProperties.thumbnailSize / descriptionPrevious value: -"The optional thumbnail image size. If you don't specify the size, the server chooses a default size of the image."New value: +"[query parameter] The optional thumbnail image size. If you don't specify the size, the server chooses a default size of the image. Values: `THUMBNAIL_SIZE_UNSPECIFIED` = The default thumbnail image size. The unspecified thumbnail size implies that the server chooses the size of the image in a way that might vary in the future.; `LARGE` = The thumbnail image width of 1600px.; `MEDIUM` = The thumbnail image width of 800px.; `SMALL` = The thumbnail image width of 200px.; `WIDTH2000_PX` = The thumbnail image width of 2000px.." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "contentUrl": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + }, + "type": "object" +}
- Changed
tasks.tasklists.delete1 field changed- changed
Input schema / properties / tasklist / descriptionPrevious value: -"Task list identifier."New value: +"[URL path segment] Task list identifier."
- Changed
tasks.tasklists.get2 fields changed- changed
Input schema / properties / tasklist / descriptionPrevious value: -"Task list identifier."New value: +"[URL path segment] Task list identifier." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasklists.insert1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasklists.list4 fields changed- changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of task lists returned on one page. Optional. The default is 1000 (max allowed: 1000)."New value: +"[query parameter] Maximum number of task lists returned on one page. Optional. The default is 1000 (max allowed: 1000)." - added
Input schema / properties / maxResults / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Token specifying the result page to return. Optional."New value: +"[query parameter] Token specifying the result page to return. Optional." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "items": { + "items": { + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasklists.patch2 fields changed- changed
Input schema / properties / tasklist / descriptionPrevious value: -"Task list identifier."New value: +"[URL path segment] Task list identifier." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasklists.update2 fields changed- changed
Input schema / properties / tasklist / descriptionPrevious value: -"Task list identifier."New value: +"[URL path segment] Task list identifier." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasks.clear1 field changed- changed
Input schema / properties / tasklist / descriptionPrevious value: -"Task list identifier."New value: +"[URL path segment] Task list identifier."
- Changed
tasks.tasks.delete2 fields changed- changed
Input schema / properties / task / descriptionPrevious value: -"Task identifier."New value: +"[URL path segment] Task identifier." - changed
Input schema / properties / tasklist / descriptionPrevious value: -"Task list identifier."New value: +"[URL path segment] Task list identifier."
- Changed
tasks.tasks.get3 fields changed- changed
Input schema / properties / task / descriptionPrevious value: -"Task identifier."New value: +"[URL path segment] Task identifier." - changed
Input schema / properties / tasklist / descriptionPrevious value: -"Task list identifier."New value: +"[URL path segment] Task list identifier." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "assignmentInfo": { + "properties": { + "driveResourceInfo": { + "properties": { + "driveFileId": { + "type": "string" + }, + "resourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "linkToTask": { + "type": "string" + }, + "spaceInfo": { + "properties": { + "space": { + "type": "string" + } + }, + "type": "object" + }, + "surfaceType": { + "enum": [ + "CONTEXT_TYPE_UNSPECIFIED", + "GMAIL", + "DOCUMENT", + "SPACE" + ], + "type": "string" + } + }, + "type": "object" + }, + "completed": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "due": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "links": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "link": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "position": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "status": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "webViewLink": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasks.insert4 fields changed- changed
Input schema / properties / parent / descriptionPrevious value: -"Parent task identifier. If the task is created at the top level, this parameter is omitted. An assigned task cannot be a parent task, nor can it have a parent. "New value: +"[query parameter] Parent task identifier. If the task is created at the top level, this parameter is omitted. An assigned task cannot be a parent task, nor can it have a parent. " - changed
Input schema / properties / previous / descriptionPrevious value: -"Previous sibling task identifier. If the task is created at the first position among its siblings, this parameter is omitted. Optional."New value: +"[query parameter] Previous sibling task identifier. If the task is created at the first position among its siblings, this parameter is omitted. Optional." - changed
Input schema / properties / tasklist / descriptionPrevious value: -"Task list identifier."New value: +"[URL path segment] Task list identifier." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "assignmentInfo": { + "properties": { + "driveResourceInfo": { + "properties": { + "driveFileId": { + "type": "string" + }, + "resourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "linkToTask": { + "type": "string" + }, + "spaceInfo": { + "properties": { + "space": { + "type": "string" + } + }, + "type": "object" + }, + "surfaceType": { + "enum": [ + "CONTEXT_TYPE_UNSPECIFIED", + "GMAIL", + "DOCUMENT", + "SPACE" + ], + "type": "string" + } + }, + "type": "object" + }, + "completed": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "due": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "links": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "link": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "position": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "status": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "webViewLink": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasks.list14 fields changed- changed
Input schema / properties / completedMax / descriptionPrevious value: -"Upper bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date."New value: +"[query parameter] Upper bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date." - changed
Input schema / properties / completedMin / descriptionPrevious value: -"Lower bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date."New value: +"[query parameter] Lower bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date." - changed
Input schema / properties / dueMax / descriptionPrevious value: -"Upper bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date."New value: +"[query parameter] Upper bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date." - changed
Input schema / properties / dueMin / descriptionPrevious value: -"Lower bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date."New value: +"[query parameter] Lower bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date." - changed
Input schema / properties / maxResults / descriptionPrevious value: -"Maximum number of tasks returned on one page. Optional. The default is 20 (max allowed: 100)."New value: +"[query parameter] Maximum number of tasks returned on one page. Optional. The default is 20 (max allowed: 100)." - added
Input schema / properties / maxResults / formatAdded value: +"int32" - changed
Input schema / properties / pageToken / descriptionPrevious value: -"Token specifying the result page to return. Optional."New value: +"[query parameter] Token specifying the result page to return. Optional." - changed
Input schema / properties / showAssigned / descriptionPrevious value: -"Optional. Flag indicating whether tasks assigned to the current user are returned in the result. Optional. The default is False."New value: +"[query parameter] Optional. Flag indicating whether tasks assigned to the current user are returned in the result. Optional. The default is False." - changed
Input schema / properties / showCompleted / descriptionPrevious value: -"Flag indicating whether completed tasks are returned in the result. Note that showHidden must also be True to show tasks completed in first party clients, such "New value: +"[query parameter] Flag indicating whether completed tasks are returned in the result. Note that showHidden must also be True to show tasks completed in first party clients, such " - changed
Input schema / properties / showDeleted / descriptionPrevious value: -"Flag indicating whether deleted tasks are returned in the result. Optional. The default is False."New value: +"[query parameter] Flag indicating whether deleted tasks are returned in the result. Optional. The default is False." - changed
Input schema / properties / showHidden / descriptionPrevious value: -"Flag indicating whether hidden tasks are returned in the result. Optional. The default is False."New value: +"[query parameter] Flag indicating whether hidden tasks are returned in the result. Optional. The default is False." - changed
Input schema / properties / tasklist / descriptionPrevious value: -"Task list identifier."New value: +"[URL path segment] Task list identifier." - changed
Input schema / properties / updatedMin / descriptionPrevious value: -"Lower bound for a task's last modification time (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by last modification time."New value: +"[query parameter] Lower bound for a task's last modification time (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by last modification time." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etag": { + "type": "string" + }, + "items": { + "items": { + "properties": { + "assignmentInfo": { + "properties": { + "driveResourceInfo": { + "properties": { + "driveFileId": { + "type": "string" + }, + "resourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "linkToTask": { + "type": "string" + }, + "spaceInfo": { + "properties": { + "space": { + "type": "string" + } + }, + "type": "object" + }, + "surfaceType": { + "enum": [ + "CONTEXT_TYPE_UNSPECIFIED", + "GMAIL", + "DOCUMENT", + "SPACE" + ], + "type": "string" + } + }, + "type": "object" + }, + "completed": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "due": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "links": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "link": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "position": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "status": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "webViewLink": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "nextPageToken": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasks.move6 fields changed- changed
Input schema / properties / destinationTasklist / descriptionPrevious value: -"Optional. Destination task list identifier. If set, the task is moved from tasklist to the destinationTasklist list. Otherwise the task is moved within its curr"New value: +"[query parameter] Optional. Destination task list identifier. If set, the task is moved from tasklist to the destinationTasklist list. Otherwise the task is moved within its curr" - changed
Input schema / properties / parent / descriptionPrevious value: -"Optional. New parent task identifier. If the task is moved to the top level, this parameter is omitted. The task set as parent must exist in the task list and c"New value: +"[query parameter] Optional. New parent task identifier. If the task is moved to the top level, this parameter is omitted. The task set as parent must exist in the task list and c" - changed
Input schema / properties / previous / descriptionPrevious value: -"Optional. New previous sibling task identifier. If the task is moved to the first position among its siblings, this parameter is omitted. The task set as previo"New value: +"[query parameter] Optional. New previous sibling task identifier. If the task is moved to the first position among its siblings, this parameter is omitted. The task set as previo" - changed
Input schema / properties / task / descriptionPrevious value: -"Task identifier."New value: +"[URL path segment] Task identifier." - changed
Input schema / properties / tasklist / descriptionPrevious value: -"Task list identifier."New value: +"[URL path segment] Task list identifier." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "assignmentInfo": { + "properties": { + "driveResourceInfo": { + "properties": { + "driveFileId": { + "type": "string" + }, + "resourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "linkToTask": { + "type": "string" + }, + "spaceInfo": { + "properties": { + "space": { + "type": "string" + } + }, + "type": "object" + }, + "surfaceType": { + "enum": [ + "CONTEXT_TYPE_UNSPECIFIED", + "GMAIL", + "DOCUMENT", + "SPACE" + ], + "type": "string" + } + }, + "type": "object" + }, + "completed": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "due": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "links": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "link": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "position": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "status": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "webViewLink": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasks.patch3 fields changed- changed
Input schema / properties / task / descriptionPrevious value: -"Task identifier."New value: +"[URL path segment] Task identifier." - changed
Input schema / properties / tasklist / descriptionPrevious value: -"Task list identifier."New value: +"[URL path segment] Task list identifier." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "assignmentInfo": { + "properties": { + "driveResourceInfo": { + "properties": { + "driveFileId": { + "type": "string" + }, + "resourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "linkToTask": { + "type": "string" + }, + "spaceInfo": { + "properties": { + "space": { + "type": "string" + } + }, + "type": "object" + }, + "surfaceType": { + "enum": [ + "CONTEXT_TYPE_UNSPECIFIED", + "GMAIL", + "DOCUMENT", + "SPACE" + ], + "type": "string" + } + }, + "type": "object" + }, + "completed": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "due": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "links": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "link": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "position": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "status": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "webViewLink": { + "type": "string" + } + }, + "type": "object" +}
- Changed
tasks.tasks.update3 fields changed- changed
Input schema / properties / task / descriptionPrevious value: -"Task identifier."New value: +"[URL path segment] Task identifier." - changed
Input schema / properties / tasklist / descriptionPrevious value: -"Task list identifier."New value: +"[URL path segment] Task list identifier." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "assignmentInfo": { + "properties": { + "driveResourceInfo": { + "properties": { + "driveFileId": { + "type": "string" + }, + "resourceKey": { + "type": "string" + } + }, + "type": "object" + }, + "linkToTask": { + "type": "string" + }, + "spaceInfo": { + "properties": { + "space": { + "type": "string" + } + }, + "type": "object" + }, + "surfaceType": { + "enum": [ + "CONTEXT_TYPE_UNSPECIFIED", + "GMAIL", + "DOCUMENT", + "SPACE" + ], + "type": "string" + } + }, + "type": "object" + }, + "completed": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "due": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "links": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "link": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "parent": { + "type": "string" + }, + "position": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "status": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "webViewLink": { + "type": "string" + } + }, + "type": "object" +}
402 tool updates
- First observed
analyticsadmin.accounts.delete - First observed
analyticsadmin.accounts.get - First observed
analyticsadmin.accounts.getDataSharingSettings - First observed
analyticsadmin.accounts.list - First observed
analyticsadmin.accounts.patch - First observed
analyticsadmin.accounts.provisionAccountTicket - First observed
analyticsadmin.accounts.runAccessReport - First observed
analyticsadmin.accounts.searchChangeHistoryEvents - First observed
analyticsadmin.accountSummaries.list - First observed
analyticsadmin.properties.acknowledgeUserDataCollection - First observed
analyticsadmin.properties.conversionEvents.create - First observed
analyticsadmin.properties.conversionEvents.delete - First observed
analyticsadmin.properties.conversionEvents.get - First observed
analyticsadmin.properties.conversionEvents.list - First observed
analyticsadmin.properties.conversionEvents.patch - First observed
analyticsadmin.properties.create - First observed
analyticsadmin.properties.customDimensions.archive - First observed
analyticsadmin.properties.customDimensions.create - First observed
analyticsadmin.properties.customDimensions.get - First observed
analyticsadmin.properties.customDimensions.list - First observed
analyticsadmin.properties.customDimensions.patch - First observed
analyticsadmin.properties.customMetrics.archive - First observed
analyticsadmin.properties.customMetrics.create - First observed
analyticsadmin.properties.customMetrics.get - First observed
analyticsadmin.properties.customMetrics.list - First observed
analyticsadmin.properties.customMetrics.patch - First observed
analyticsadmin.properties.dataStreams.create - First observed
analyticsadmin.properties.dataStreams.delete - First observed
analyticsadmin.properties.dataStreams.get - First observed
analyticsadmin.properties.dataStreams.list - First observed
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.create - First observed
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.delete - First observed
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.get - First observed
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.list - First observed
analyticsadmin.properties.dataStreams.measurementProtocolSecrets.patch - First observed
analyticsadmin.properties.dataStreams.patch - First observed
analyticsadmin.properties.delete - First observed
analyticsadmin.properties.firebaseLinks.create - First observed
analyticsadmin.properties.firebaseLinks.delete - First observed
analyticsadmin.properties.firebaseLinks.list - First observed
analyticsadmin.properties.get - First observed
analyticsadmin.properties.getDataRetentionSettings - First observed
analyticsadmin.properties.googleAdsLinks.create - First observed
analyticsadmin.properties.googleAdsLinks.delete - First observed
analyticsadmin.properties.googleAdsLinks.list - First observed
analyticsadmin.properties.googleAdsLinks.patch - First observed
analyticsadmin.properties.keyEvents.create - First observed
analyticsadmin.properties.keyEvents.delete - First observed
analyticsadmin.properties.keyEvents.get - First observed
analyticsadmin.properties.keyEvents.list - First observed
analyticsadmin.properties.keyEvents.patch - First observed
analyticsadmin.properties.list - First observed
analyticsadmin.properties.patch - First observed
analyticsadmin.properties.runAccessReport - First observed
analyticsadmin.properties.updateDataRetentionSettings - First observed
analyticsdata.properties.audienceExports.create - First observed
analyticsdata.properties.audienceExports.get - First observed
analyticsdata.properties.audienceExports.list - First observed
analyticsdata.properties.audienceExports.query - First observed
analyticsdata.properties.batchRunPivotReports - First observed
analyticsdata.properties.batchRunReports - First observed
analyticsdata.properties.checkCompatibility - First observed
analyticsdata.properties.getMetadata - First observed
analyticsdata.properties.runPivotReport - First observed
analyticsdata.properties.runRealtimeReport - First observed
analyticsdata.properties.runReport - First observed
calendar.acl.delete - First observed
calendar.acl.get - First observed
calendar.acl.insert - First observed
calendar.acl.list - First observed
calendar.acl.patch - First observed
calendar.acl.update - First observed
calendar.acl.watch - First observed
calendar.calendarList.delete - First observed
calendar.calendarList.get - First observed
calendar.calendarList.insert - First observed
calendar.calendarList.list - First observed
calendar.calendarList.patch - First observed
calendar.calendarList.update - First observed
calendar.calendarList.watch - First observed
calendar.calendars.clear - First observed
calendar.calendars.delete - First observed
calendar.calendars.get - First observed
calendar.calendars.insert - First observed
calendar.calendars.patch - First observed
calendar.calendars.transferOwnership - First observed
calendar.calendars.update - First observed
calendar.channels.stop - First observed
calendar.colors.get - First observed
calendar.events.delete - First observed
calendar.events.get - First observed
calendar.events.import - First observed
calendar.events.insert - First observed
calendar.events.instances - First observed
calendar.events.list - First observed
calendar.events.move - First observed
calendar.events.patch - First observed
calendar.events.quickAdd - First observed
calendar.events.update - First observed
calendar.events.watch - First observed
calendar.freebusy.query - First observed
calendar.settings.get - First observed
calendar.settings.list - First observed
calendar.settings.watch - First observed
chat.customEmojis.create - First observed
chat.customEmojis.delete - First observed
chat.customEmojis.get - First observed
chat.customEmojis.list - First observed
chat.media.download - First observed
chat.media.upload - First observed
chat.spaces.completeImport - First observed
chat.spaces.create - First observed
chat.spaces.delete - First observed
chat.spaces.findDirectMessage - First observed
chat.spaces.findGroupChats - First observed
chat.spaces.get - First observed
chat.spaces.list - First observed
chat.spaces.members.create - First observed
chat.spaces.members.delete - First observed
chat.spaces.members.get - First observed
chat.spaces.members.list - First observed
chat.spaces.members.patch - First observed
chat.spaces.messagePins.create - First observed
chat.spaces.messagePins.delete - First observed
chat.spaces.messagePins.list - First observed
chat.spaces.messages.attachments.get - First observed
chat.spaces.messages.create - First observed
chat.spaces.messages.delete - First observed
chat.spaces.messages.get - First observed
chat.spaces.messages.list - First observed
chat.spaces.messages.patch - First observed
chat.spaces.messages.reactions.create - First observed
chat.spaces.messages.reactions.delete - First observed
chat.spaces.messages.reactions.list - First observed
chat.spaces.messages.replaceCards - First observed
chat.spaces.messages.search - First observed
chat.spaces.messages.update - First observed
chat.spaces.patch - First observed
chat.spaces.search - First observed
chat.spaces.setup - First observed
chat.spaces.spaceEvents.get - First observed
chat.spaces.spaceEvents.list - First observed
chat.users.availability.get - First observed
chat.users.availability.markAsActive - First observed
chat.users.availability.markAsAway - First observed
chat.users.availability.markAsDoNotDisturb - First observed
chat.users.availability.patch - First observed
chat.users.sections.create - First observed
chat.users.sections.delete - First observed
chat.users.sections.items.list - First observed
chat.users.sections.items.move - First observed
chat.users.sections.list - First observed
chat.users.sections.patch - First observed
chat.users.sections.position - First observed
chat.users.spaces.getSpaceReadState - First observed
chat.users.spaces.spaceNotificationSetting.get - First observed
chat.users.spaces.spaceNotificationSetting.patch - First observed
chat.users.spaces.threads.getThreadReadState - First observed
chat.users.spaces.updateSpaceReadState - First observed
docs.documents.batchUpdate - First observed
docs.documents.create - First observed
docs.documents.get - First observed
drive.about.get - First observed
drive.accessproposals.get - First observed
drive.accessproposals.list - First observed
drive.accessproposals.resolve - First observed
drive.approvals.approve - First observed
drive.approvals.cancel - First observed
drive.approvals.comment - First observed
drive.approvals.decline - First observed
drive.approvals.get - First observed
drive.approvals.list - First observed
drive.approvals.reassign - First observed
drive.approvals.start - First observed
drive.apps.get - First observed
drive.apps.list - First observed
drive.changes.getStartPageToken - First observed
drive.changes.list - First observed
drive.changes.watch - First observed
drive.channels.stop - First observed
drive.comments.create - First observed
drive.comments.delete - First observed
drive.comments.get - First observed
drive.comments.list - First observed
drive.comments.update - First observed
drive.drives.create - First observed
drive.drives.delete - First observed
drive.drives.get - First observed
drive.drives.hide - First observed
drive.drives.list - First observed
drive.drives.unhide - First observed
drive.drives.update - First observed
drive.files.copy - First observed
drive.files.create - First observed
drive.files.delete - First observed
drive.files.download - First observed
drive.files.emptyTrash - First observed
drive.files.export - First observed
drive.files.generateCseToken - First observed
drive.files.generateIds - First observed
drive.files.get - First observed
drive.files.list - First observed
drive.files.listLabels - First observed
drive.files.modifyLabels - First observed
drive.files.update - First observed
drive.files.watch - First observed
drive.operations.get - First observed
drive.permissions.create - First observed
drive.permissions.delete - First observed
drive.permissions.get - First observed
drive.permissions.list - First observed
drive.permissions.update - First observed
drive.replies.create - First observed
drive.replies.delete - First observed
drive.replies.get - First observed
drive.replies.list - First observed
drive.replies.update - First observed
drive.revisions.delete - First observed
drive.revisions.get - First observed
drive.revisions.list - First observed
drive.revisions.update - First observed
drive.teamdrives.create - First observed
drive.teamdrives.delete - First observed
drive.teamdrives.get - First observed
drive.teamdrives.list - First observed
drive.teamdrives.update - First observed
forms.forms.batchUpdate - First observed
forms.forms.create - First observed
forms.forms.get - First observed
forms.forms.responses.get - First observed
forms.forms.responses.list - First observed
forms.forms.setPublishSettings - First observed
forms.forms.watches.create - First observed
forms.forms.watches.delete - First observed
forms.forms.watches.list - First observed
forms.forms.watches.renew - First observed
gmail.users.drafts.create - First observed
gmail.users.drafts.delete - First observed
gmail.users.drafts.get - First observed
gmail.users.drafts.list - First observed
gmail.users.drafts.send - First observed
gmail.users.drafts.update - First observed
gmail.users.getProfile - First observed
gmail.users.history.list - First observed
gmail.users.labels.create - First observed
gmail.users.labels.delete - First observed
gmail.users.labels.get - First observed
gmail.users.labels.list - First observed
gmail.users.labels.patch - First observed
gmail.users.labels.update - First observed
gmail.users.messages.attachments.get - First observed
gmail.users.messages.batchDelete - First observed
gmail.users.messages.batchModify - First observed
gmail.users.messages.delete - First observed
gmail.users.messages.get - First observed
gmail.users.messages.import - First observed
gmail.users.messages.insert - First observed
gmail.users.messages.list - First observed
gmail.users.messages.modify - First observed
gmail.users.messages.send - First observed
gmail.users.messages.trash - First observed
gmail.users.messages.untrash - First observed
gmail.users.settings.cse.identities.create - First observed
gmail.users.settings.cse.identities.delete - First observed
gmail.users.settings.cse.identities.get - First observed
gmail.users.settings.cse.identities.list - First observed
gmail.users.settings.cse.identities.patch - First observed
gmail.users.settings.cse.keypairs.create - First observed
gmail.users.settings.cse.keypairs.disable - First observed
gmail.users.settings.cse.keypairs.enable - First observed
gmail.users.settings.cse.keypairs.get - First observed
gmail.users.settings.cse.keypairs.list - First observed
gmail.users.settings.cse.keypairs.obliterate - First observed
gmail.users.settings.delegates.create - First observed
gmail.users.settings.delegates.delete - First observed
gmail.users.settings.delegates.get - First observed
gmail.users.settings.delegates.list - First observed
gmail.users.settings.filters.create - First observed
gmail.users.settings.filters.delete - First observed
gmail.users.settings.filters.get - First observed
gmail.users.settings.filters.list - First observed
gmail.users.settings.forwardingAddresses.create - First observed
gmail.users.settings.forwardingAddresses.delete - First observed
gmail.users.settings.forwardingAddresses.get - First observed
gmail.users.settings.forwardingAddresses.list - First observed
gmail.users.settings.getAutoForwarding - First observed
gmail.users.settings.getImap - First observed
gmail.users.settings.getLanguage - First observed
gmail.users.settings.getPop - First observed
gmail.users.settings.getVacation - First observed
gmail.users.settings.sendAs.create - First observed
gmail.users.settings.sendAs.delete - First observed
gmail.users.settings.sendAs.get - First observed
gmail.users.settings.sendAs.list - First observed
gmail.users.settings.sendAs.patch - First observed
gmail.users.settings.sendAs.smimeInfo.delete - First observed
gmail.users.settings.sendAs.smimeInfo.get - First observed
gmail.users.settings.sendAs.smimeInfo.insert - First observed
gmail.users.settings.sendAs.smimeInfo.list - First observed
gmail.users.settings.sendAs.smimeInfo.setDefault - First observed
gmail.users.settings.sendAs.update - First observed
gmail.users.settings.sendAs.verify - First observed
gmail.users.settings.updateAutoForwarding - First observed
gmail.users.settings.updateImap - First observed
gmail.users.settings.updateLanguage - First observed
gmail.users.settings.updatePop - First observed
gmail.users.settings.updateVacation - First observed
gmail.users.stop - First observed
gmail.users.threads.delete - First observed
gmail.users.threads.get - First observed
gmail.users.threads.list - First observed
gmail.users.threads.modify - First observed
gmail.users.threads.trash - First observed
gmail.users.threads.untrash - First observed
gmail.users.watch - First observed
people.contactGroups.batchGet - First observed
people.contactGroups.create - First observed
people.contactGroups.delete - First observed
people.contactGroups.get - First observed
people.contactGroups.list - First observed
people.contactGroups.members.modify - First observed
people.contactGroups.update - First observed
people.otherContacts.copyOtherContactToMyContactsGroup - First observed
people.otherContacts.list - First observed
people.otherContacts.search - First observed
people.people.batchCreateContacts - First observed
people.people.batchDeleteContacts - First observed
people.people.batchUpdateContacts - First observed
people.people.connections.list - First observed
people.people.createContact - First observed
people.people.deleteContact - First observed
people.people.deleteContactPhoto - First observed
people.people.get - First observed
people.people.getBatchGet - First observed
people.people.listDirectoryPeople - First observed
people.people.searchContacts - First observed
people.people.searchDirectoryPeople - First observed
people.people.updateContact - First observed
people.people.updateContactPhoto - First observed
script.processes.list - First observed
script.processes.listScriptProcesses - First observed
script.projects.create - First observed
script.projects.deployments.create - First observed
script.projects.deployments.delete - First observed
script.projects.deployments.get - First observed
script.projects.deployments.list - First observed
script.projects.deployments.update - First observed
script.projects.get - First observed
script.projects.getContent - First observed
script.projects.getMetrics - First observed
script.projects.updateContent - First observed
script.projects.versions.create - First observed
script.projects.versions.get - First observed
script.projects.versions.list - First observed
script.scripts.run - First observed
searchconsole.searchanalytics.query - First observed
searchconsole.sitemaps.delete - First observed
searchconsole.sitemaps.get - First observed
searchconsole.sitemaps.list - First observed
searchconsole.sitemaps.submit - First observed
searchconsole.sites.add - First observed
searchconsole.sites.delete - First observed
searchconsole.sites.get - First observed
searchconsole.sites.list - First observed
searchconsole.urlInspection.index.inspect - First observed
searchconsole.urlTestingTools.mobileFriendlyTest.run - First observed
sheets.spreadsheets.batchUpdate - First observed
sheets.spreadsheets.create - First observed
sheets.spreadsheets.developerMetadata.get - First observed
sheets.spreadsheets.developerMetadata.search - First observed
sheets.spreadsheets.get - First observed
sheets.spreadsheets.getByDataFilter - First observed
sheets.spreadsheets.sheets.copyTo - First observed
sheets.spreadsheets.values.append - First observed
sheets.spreadsheets.values.batchClear - First observed
sheets.spreadsheets.values.batchClearByDataFilter - First observed
sheets.spreadsheets.values.batchGet - First observed
sheets.spreadsheets.values.batchGetByDataFilter - First observed
sheets.spreadsheets.values.batchUpdate - First observed
sheets.spreadsheets.values.batchUpdateByDataFilter - First observed
sheets.spreadsheets.values.clear - First observed
sheets.spreadsheets.values.get - First observed
sheets.spreadsheets.values.update - First observed
slides.presentations.batchUpdate - First observed
slides.presentations.create - First observed
slides.presentations.get - First observed
slides.presentations.pages.get - First observed
slides.presentations.pages.getThumbnail - First observed
tasks.tasklists.delete - First observed
tasks.tasklists.get - First observed
tasks.tasklists.insert - First observed
tasks.tasklists.list - First observed
tasks.tasklists.patch - First observed
tasks.tasklists.update - First observed
tasks.tasks.clear - First observed
tasks.tasks.delete - First observed
tasks.tasks.get - First observed
tasks.tasks.insert - First observed
tasks.tasks.list - First observed
tasks.tasks.move - First observed
tasks.tasks.patch - First observed
tasks.tasks.update
TDQS
Scored across 402 tools
Tools are generally distinguishable because names encode service, resource, and action (e.g. calendar.events.list vs gmail.users.messages.list). Overlap remains in a few places: deprecated drive.teamdrives.* duplicates drive.drives.*, conversionEvents mirrors keyEvents, and patch/update pairs require attention to descriptions.
The naming scheme is highly systematic: service.resource.action with dotted hierarchy and API-derived action names. Consistency is slightly weakened by mixed verb conventions across services (create vs insert vs add) and legacy aliases, but the pattern is still predictable.
402 tools is an extreme mismatch for an agent-facing MCP server; even a broad Google Workspace surface does not need every REST method exposed as a separate tool. The count is far beyond the 3-15 well-scoped range and creates a huge selection burden.
Coverage is very deep across Calendar, Drive, Gmail, Chat, Docs, Sheets, Slides, Forms, Tasks, People, Analytics, Search Console, and Apps Script, with full CRUD/lifecycle operations for many resources. Minor gaps remain for adjacent Workspace products such as Meet, Admin SDK, Keep, and Classroom, but core workflows are covered.
Maintenance
Related MCP Connectors
Go MCP server for GitLab: 2 dynamic tools reach 1000+ REST/GraphQL actions. Free/CE, no paid tier.
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
Related MCP Servers
- AlicenseAqualityCmaintenanceMost Google Workspace MCPs let you read. This one lets you write — 28 authoring tools on top of taylorwilsdon/google_workspace_mcp, including markdown-to-Docs, smart chips, and recursive Drive copy.1002MIT
- AlicenseBqualityDmaintenanceProduction-ready MCP server for Google Workspace providing broad coverage across Gmail, Drive, Calendar, Docs, Sheets, and more, with safe-by-default write operations and markdown-to-Google-Docs support.10050 PyPIMIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that exposes 17 Google Workspace APIs (e.g., Gmail, Drive, Calendar) as auto-generated tools for AI assistants, enabling natural language control of Google services.-
- FlicenseNot gradedqualityBmaintenanceLightweight MCP server for Google Workspace (Calendar, Gmail, Drive) designed for Hermes Agent in Docker, enabling tools to list events, messages, and files via CLI.-