Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "GetClientMetrics", "GetOperationMetrics" and "GetSubgraphMetrics"
⟨89 unchanged words⟩ format: 2025-01-01T00:00:00Z (ISO 8601). This timestamp cannot exceed your plan's operation-level data retention as defined in the Apollo GraphQL pricing page (https://www.apollographql.com/pricing)."},"graphId":{"type":"string"} ⟨160 unchanged words⟩ time must be no later than 1 dayago.\nIfago.\n- These time ranges are further constrained by your plan's operation-level data retention as defined in the Apollo GraphQL pricing page (https://www.apollographql.com/pricing).\nIf these criteria are not met, this will return ⟨16 unchanged words⟩ the format: 2025-01-01T08:00:00Z (ISO 8601). This timestamp cannot exceed your plan's operation-level data retention as defined in the Apollo GraphQL pricing page (https://www.apollographql.com/pricing)."},"variantName":{"anyOf":[{ ⟨16 unchanged words⟩
⟨143 unchanged words⟩ format: 2025-01-01T00:00:00Z (ISO 8601). This timestamp cannot exceed your plan's operation-level data retention as defined in the Apollo GraphQL pricing page (https://www.apollographql.com/pricing)."},"graphId":{"type":"string"} ⟨148 unchanged words⟩ time must be no later than 1 dayago.\nIfago.\n- These time ranges are further constrained by your plan's operation-level data retention as defined in the Apollo GraphQL pricing page (https://www.apollographql.com/pricing).\nIf these criteria are not met, this will return ⟨16 unchanged words⟩ the format: 2025-01-01T08:00:00Z (ISO 8601). This timestamp cannot exceed your plan's operation-level data retention as defined in the Apollo GraphQL pricing page (https://www.apollographql.com/pricing)."},"variantName":{"anyOf":[{ ⟨16 unchanged words⟩
⟨244 unchanged words⟩ format: 2025-01-01T00:00:00Z (ISO 8601). This timestamp cannot exceed your plan's field-level data retention as defined in the Apollo GraphQL pricing page (https://www.apollographql.com/pricing)."},"graphId":{"type":"string"} ⟨148 unchanged words⟩ time must be no later than 1 dayago.\nIfago.\n- These time ranges are further constrained by your plan's field-level data retention as defined in the Apollo GraphQL pricing page (https://www.apollographql.com/pricing).\nIf these criteria are not met, this will return ⟨28 unchanged words⟩ the format: 2025-01-01T08:00:00Z (ISO 8601). This timestamp cannot exceed your plan's field-level data retention as defined in the Apollo GraphQL pricing page (https://www.apollographql.com/pricing)."},"variantName":{"anyOf":[{ ⟨16 unchanged words⟩
Added "AddProposalComment", "CreateApiKey", "CreateProposal" and 13 more; changed the definition of "ApolloDocsRead", "ApolloDocsSearch", "DeleteGraph" and 28 more (32 tools before, 48 now)
Reads an Apollo documentation page by slug in chunks.Use slugs returned by ApolloDocsSearch.
⟨11 unchanged words⟩ MCP Server, schema design, deployment, and Connectors.Returns URLs, slugs, and excerpts.
Certificate changed, valid to 2027-01-13
Authorization not required, issuer https://auth.apollographql.com/oauth2
Authorization not required, issuer https://auth.apollographql.com/oauth2
Authorization not required, issuer https://auth.apollographql.com/oauth2
Changed the definition of "GetLatestLaunch" and "GetLaunch"
⟨116 unchanged words⟩ latestLaunch":{"anyOf":[{"properties":{"completedAt":{"anyOf":[{"description":"ISO 8601, extended format with nanoseconds, Zulu (or \"[+-]seconds\" as a string or number relative to now)"},{"type":"null"}],"description":"The timestamp when the launch completed. This value is null until the launch completes."},"id":{"description":"The unique identifier for this launch.","oneOf":[{"type":"string"},{"type":"integer"}]},"publicationbuild":{"anyOf":[{"properties":{"compositionResultresult":{"anyOf":[{"properties":{"errorserrorMessages":{"description":"A list of all errors that occurred duringcomposition. Errors mean that Apollo was unable to composethegraph variant's subgraphs into a supergraph schema. If any errors are present, gateways / routers are notfailedupdated.build.
Authorization not required, issuer https://auth.apollographql.com/oauth2
Authorization not required, issuer https://auth.apollographql.com/oauth2
Changed the definition of "DeleteGraph", "DeleteSubgraph", "GetCheckResults" and 26 more
{"destructiveHint":true,"openWorldHint":falsetrue,"readOnlyHint":false,"title":"Delete a graph"}
{"destructiveHint":true,"openWorldHint":falsetrue,"readOnlyHint":false,"title":"Delete a subgraph"}
Changed the definition of "GetCheckResults"
before
{"definitions":{"ChangeCategory":{"description":"Defines a set of categories that a schema change\ncan be grouped by.","enum":["ADDITION","EDIT","REMOVAL","DEPRECATION"],"type":"string"},"ChangeSeverity":{"enum":["FAILURE","NOTICE"],"type":"string"},"CheckWorkflowStatus":{"enum":["FAILED","PASSED","PENDING"],"type":"string"},"CheckWorkflowTaskStatus":{"enum":["BLOCKED","FAILED","PASSED","PENDING"],"type":"string"},"LintDiagnosticLevel":{"description":"The severity level of an lint result.","enum":["ERROR","IGNORED","WARNING"],"type":"string"},"LintRule":{"enum":["ALL_ELEMENTS_REQUIRE_DESCRIPTION","CONTACT_DIRECTIVE_MISSING","DEFINED_TYPES_ARE_UNUSED","DEPRECATED_DIRECTIVE_MISSING_REASON","DIRECTIVE_COMPOSITION","DIRECTIVE_NAMES_SHOULD_BE_CAMEL_CASE","DOES_NOT_PARSE","ENUM_PREFIX","ENUM_SUFFIX","ENUM_USED_AS_INPUT_WITHOUT_SUFFIX","ENUM_USED_AS_OUTPUT_DESPITE_SUFFIX","ENUM_VALUES_SHOULD_BE_SCREAMING_SNAKE_CASE","FIELD_NAMES_SHOULD_BE_CAMEL_CASE","FROM_SUBGRAPH_DOES_NOT_EXIST","INCONSISTENT_ARGUMENT_PRESENCE","INCONSISTENT_BUT_COMPATIBLE_ARGUMENT_TYPE","INCONSISTENT_BUT_COMPATIBLE_FIELD_TYPE","INCONSISTENT_DEFAULT_VALUE_PRESENCE","INCONSISTENT_DESCRIPTION","INCONSISTENT_ENTITY","INCONSISTENT_ENUM_VALUE_FOR_INPUT_ENUM","INCONSISTENT_ENUM_VALUE_FOR_OUTPUT_ENUM","INCONSISTENT_EXECUTABLE_DIRECTIVE_LOCATIONS","INCONSISTENT_EXECUTABLE_DIRECTIVE_PRESENCE","INCONSISTENT_EXECUTABLE_DIRECTIVE_REPEATABLE","INCONSISTENT_INPUT_OBJECT_FIELD","INCONSISTENT_INTERFACE_VALUE_TYPE_FIELD","INCONSISTENT_NON_REPEATABLE_DIRECTIVE_ARGUMENTS","INCONSISTENT_OBJECT_VALUE_TYPE_FIELD","INCONSISTENT_RUNTIME_TYPES_FOR_SHAREABLE_RETURN","INCONSISTENT_TYPE_SYSTEM_DIRECTIVE_LOCATIONS","INCONSISTENT_TYPE_SYSTEM_DIRECTIVE_REPEATABLE","INCONSISTENT_UNION_MEMBER","INPUT_ARGUMENT_NAMES_SHOULD_BE_CAMEL_CASE","INPUT_TYPE_SUFFIX","INTERFACE_PREFIX","INTERFACE_SUFFIX","MERGED_NON_REPEATABLE_DIRECTIVE_ARGUMENTS","NO_EXECUTABLE_DIRECTIVE_INTERSECTION","NULLABLE_PATH_VARIABLE","OBJECT_PREFIX","OBJECT_SUFFIX","OVERRIDDEN_FIELD_CAN_BE_REMOVED","OVERRIDE_DIRECTIVE_CAN_BE_REMOVED","OVERRIDE_MIGRATION_IN_PROGRESS","QUERY_DOCUMENT_DECLARATION","RESTY_FIELD_NAMES","TAG_DIRECTIVE_USES_UNKNOWN_NAME","TYPE_NAMES_SHOULD_BE_PASCAL_CASE","TYPE_PREFIX","TYPE_SUFFIX","UNUSED_ENUM_TYPE"],"type":"string"},"ProposalChangeMismatchSeverity":{"enum":["ERROR","OFF","WARN"],"type":"string"},"ProposalCoverage":{"enum":["FULL","NONE","OVERRIDDEN","PARTIAL","PENDING"],"type":"string"},"ViolationLevel":{"enum":["ERROR","INFO","WARNING"],"type":"string"}},"properties":{"data":{"properties":{"graph":{"anyOf":[{"properties":{"checkWorkflow":{"anyOf":[{"properties":{"baseVariant":{"anyOf":[{"properties":{"name":{"description":"The variant's name (e.g., `staging`).","type":"string"}},"required":["name"],"type":"object"},{"type":"null"}],"description":"The variant provided as a base to check against. Only the differences from the\nbase schema will be tested in operations checks."},"completedAt":{"anyOf":[{"description":"ISO 8601, extended format with nanoseconds, Zulu (or \"[+-]seconds\" as a string or number relative to now)"},{"type":"null"}],"description":"The timestamp when the check workflow completed."},"createdAt":{"description":"ISO 8601, extended format with nanoseconds, Zulu (or \"[+-]seconds\" as a string or number relative to now)"},"gitContext":{"anyOf":[{"properties":{"commit":{"anyOf":[{"oneOf":[{"type":"string"},{"type":"integer"}]},{"type":"null"}]}},"type":"object"},{"type":"null"}],"description":"Contextual parameters supplied by the runtime environment where the check was run."},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"implementingServiceName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The name of the implementing service that was responsible for triggering the validation."},"startedAt":{"anyOf":[{"description":"ISO 8601, extended format with nanoseconds, Zulu (or \"[+-]seconds\" as a string or number relative to now)"},{"type":"null"}],"description":"The timestamp when the check workflow started."},"status":{"$ref":"#/definitions/CheckWorkflowStatus","description":"Overall status of the workflow, based on the underlying task statuses."},"tasks":{"description":"The set of check tasks associated with this workflow, e.g. composition, operations, etc.","items":{"properties":{"__typename":{"description":"The typename of this object","type":"string"},"coreSchemaModified":{"description":"Whether the build's output supergraph core schema differs from that of the active publish for\nthe workflow's variant at the time this field executed (NOT at the time the check workflow\nstarted).","type":"boolean"},"hasWarnings":{"description":"True if this Proposal check passed with warnings, otherwise false.","type":"boolean"},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"proposalCoverage":{"$ref":"#/definitions/ProposalCoverage","description":"Indicates the level of coverage a check's changeset is in approved Proposals. PENDING while Check is still running."},"result":{"anyOf":[{"properties":{"violations":{"items":{"properties":{"coordinate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The schema coordinate of this rule violation as defined by RFC:\n\t\thttps://github.com/graphql/graphql-wg/blob/main/rfcs/SchemaCoordinates.md\n\t\tOptional for violations that aren't specific to a single schema element"},"level":{"$ref":"#/definitions/ViolationLevel","description":"The violation level for the rule."},"message":{"description":"A human-readable message describing the rule violation, rendered as markdown in Apollo Studio. Maximum length: 512 characters.","type":"string"},"rule":{"description":"The rule being violated. This is used to group multiple violations together in Studio. Max character length is 128.","type":"string"}},"required":["level","message","rule"],"type":"object"},"type":"array"}},"required":["violations"],"type":"object"},{"type":"null"}]},"results":{"anyOf":[{"items":{"properties":{"blocking":{"description":"Whether the downstream check workflow blocks the upstream check workflow from completing.","type":"boolean"},"downstreamGraphID":{"description":"The ID of the graph that the downstream variant belongs to.","type":"string"},"downstreamVariantName":{"description":"The name of the downstream variant.","type":"string"},"failsUpstreamWorkflow":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether the downstream check workflow is causing the upstream check workflow to fail. This occurs\nwhen the downstream check workflow is both blocking and failing. This may be null while the\ndownstream check workflow is pending."}},"required":["blocking","downstreamGraphID","downstreamVariantName"],"type":"object"},"type":"array"},{"type":"null"}],"description":"A list of results for all downstream checks triggered as part of the source variant's checks workflow.\nThis value is null if the task hasn't been initialized yet, or if the build task fails (the build task is a\nprerequisite to this task). This value is _not_ null _while_ the task is running. The returned list is empty\nif the source variant has no downstream variants."},"severityLevel":{"$ref":"#/definitions/ProposalChangeMismatchSeverity","description":"The configured severity at the time the check was run. If the check failed, this is the severity that should be shown. While this Check is PENDING defaults to Service's severityLevel."},"status":{"$ref":"#/definitions/CheckWorkflowTaskStatus","description":"The status of this task. All tasks start with the PENDING status while initializing. If any\n prerequisite task fails, then the task status becomes BLOCKED. Otherwise, if all prerequisite\n tasks pass, then this task runs (still having the PENDING status). Once the task completes, the\n task status will become either PASSED or FAILED."},"targetURL":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"A studio UI url to view the details of this check workflow task"}},"required":["id","status"],"type":"object"},"type":"array"}},"required":["id","status","createdAt","tasks"],"type":"object"},{"type":"null"}],"description":"Get a check workflow for this graph by its ID"}},"type":"object"},{"type":"null"}],"description":"Returns details of the graph with the provided ID."}},"type":"object"},"errors":{"items":{"properties":{"extensions":{"type":"object"},"locations":{"items":{"properties":{"column":{"type":"integer"},"line":{"type":"integer"}},"type":"object"},"type":"array"},"message":{"type":"string"},"path":{"items":{"oneOf":[{"type":"string"},{"type":"integer"}]},"type":"array"}},"required":["message"],"type":"object"},"type":"array"},"extensions":{"type":"object"}},"type":"object"}Authorization not required, issuer https://auth.apollographql.com/oauth2
Authorization not required, issuer https://auth.apollographql.com/oauth2
Added "DeleteGraph", "DeleteSubgraph", "GetCheckResults" and 15 more; changed the definition of "GetClientMetrics", "GetLatestLaunch", "GetLaunch" and 8 more (14 tools before, 32 now)
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":true,"title":"Get client metrics"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":true,"title":"Get latest launch"}
Changed the definition of "GetMyIdentity"
⟨44 unchanged words⟩ which can change over time and isn't unique. If the organization has no company\nname set, this falls back to the organization's ID.","type":"string"}},"required": ⟨142 unchanged words⟩ which can change over time and isn't unique. If the organization has no company\nname set, this falls back to the organization's ID.","type":"string"}},"required": ⟨48 unchanged words⟩ which can change over time and isn't unique. If the organization has no company\nname set, this falls back to the organization's ID.","type":"string"}},"required": ⟨121 unchanged words⟩
Authorization not required, issuer https://auth.apollographql.com/oauth2
Authorization not required, issuer https://auth.apollographql.com/oauth2
Changed the definition of "ApolloDocsRead", "GetClientMetrics", "GetLatestLaunch" and 9 more
⟨9 unchanged words⟩ search functionality","properties":{"page":{"description":"Retrieve a specific documentation page by its slug","oneOfanyOf":[{"properties":{"contentSlice":{"description ⟨71 unchanged words⟩ :"object"},{"type":"null"}],"description":"Retrieve a specific documentation page by its slug"}},"type":"object"}},"required" ⟨45 unchanged words⟩
⟨97 unchanged words⟩ {"type":"string"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":50,"
Certificate recorded, valid to 2026-11-18
Authorization not required
First tool surface recorded: 14 tools (server version 1.17.0)
Showing the latest 21 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
Delete a graph, the same write that `rover graph delete` performs.This is a soft delete: the data is not removed permanently and Apollo support can restore the graph.Every variant of the graph stops serving, so confirm the graph ID with the user before you call this.Returns null on success.Provide the graph ID.
⟨9 unchanged words⟩ the same write that `rover subgraph delete` performs.Returns the composition errors that the removal causes.This deletes the subgraph from the variant and can break the running router.Set dryRun to true first: the response then ⟨7 unchanged words⟩ would produce, including updatedGateway, and deletes nothing.Provide the graph ID, the variant name, and the subgraph name.
⟨31 unchanged words⟩ , downstream variant results, and custom check violations.Use this after GetSchemaChecks gives you a check ID.Provide the graph ID and the check ID.The affected operations are paged with affectedOperationsLimit and ⟨15 unchanged words⟩
⟨7 unchanged words⟩ graph over a time window, as compact CSV.Columns: start timestamp, end exclusive timestamp, client ⟨11 unchanged words⟩ request latency p99 ms, request with error count.Answers which clients call a graph, which client ⟨5 unchanged words⟩ wire, and which client drives errors or latency.Clients that do not report `apollographql-client-name`/`-version` come back with empty name and version columns.Ranked by `orderBy` descending: default REQUEST_COUNT (busiest); REQUEST_WITH_ERROR_COUNT for most error-prone, REQUEST_LATENCY_P99_MS for slowest.`variantName` and `operationName` scope to one or more variants or operations by exact name (omit for all).Rows are one per client + version + ⟨17 unchanged words⟩ or raise `limit` when a breakdown looks truncated.Keep the default `resolution` of ENTIRE_RANGE for totals ⟨5 unchanged words⟩ row per group ranked over the whole window.DAY/HOUR/MINUTE give one row per group per bucket ⟨20 unchanged words⟩ every bucket; too small a `limit` silently undercounts.Only HOUR and MINUTE accept a `to` of now, so use them for bursts in the last 24 hours.Avoid MONTH: it labels buckets by calendar month ⟨5 unchanged words⟩
⟨22 unchanged words⟩ from, and a human-readable description of the configuration.This is the same read that `rover contract describe` performs.A contract variant is a filtered view of another variant's schema, built by including and excluding schema elements by tag.The filter configuration does not include whether unreachable types are hidden.The description states it, so read it there before you update a contract with PublishContract.A variant that is not a contract returns null for the filter configuration.Provide the graph ID and the contract variant name.
⟨10 unchanged words⟩ graph variant, with its hash and publication time.This is the same read that `rover graph fetch` performs.The response holds the whole document and is not truncated.A large federated graph measured over 800,000 ⟨5 unchanged words⟩ which exceeds the context window of most models.Prefer GetSubgraphSchema, which reads one subgraph at a ⟨5 unchanged words⟩ only when you need the whole API schema.Provide the graph ID and the variant name.
⟨22 unchanged words⟩ the previous launch (additions/removals/edits/deprecations plus affected operations).Use to assess schema composition health and the impact of recent schema changes.Also returns the latest approved launch for comparison.Provide the graph ID and variant name.
⟨14 unchanged words⟩ , composition errors, and the schema diff summary.Use to drill into a specific launch — ⟨6 unchanged words⟩ found via GetLaunchHistory (pass its id here).Provide the graph ID, variant name, and launch ID.
⟨14 unchanged words⟩ such as repeated failures or frequent superseded launches.Each entry includes the launch id, status, ⟨7 unchanged words⟩ specific launch and drill into it with GetLaunch.Use to assess deployment stability.Provide the graph ID, variant name, and ⟨19 unchanged words⟩
⟨17 unchanged words⟩ rule, and source location, plus error/warning/total/ignored counts.Use to assess schema quality and naming/best-practice violations.Provide the graph ID and optionally a limit ⟨7 unchanged words⟩
Resolve the caller's identity from their API key or OAuth token.Call this FIRST when the user asks about "my graph" but has not provided a graph ID.For a graph/service key, `me` resolves to a ⟨18 unchanged words⟩ the user does not have to supply either.For a user (personal key or OAuth), ⟨27 unchanged words⟩ need, across every org the user belongs to.Also handles service-account keys.
⟨6 unchanged words⟩ graph over a time window, as compact CSV.Columns: start timestamp, end exclusive timestamp, operation ⟨7 unchanged words⟩ request latency p99 ms, request with error count.Ranked by `orderBy` descending: default REQUEST_COUNT (busiest); REQUEST_WITH_ERROR_COUNT for most error-prone, REQUEST_LATENCY_P99_MS for slowest.`variantName` scopes to one or more variants (omit for all).`clients` scopes to one or more clients; omit ⟨10 unchanged words⟩ GetClientMetrics to discover the names a graph sees.Keep the default `resolution` of ENTIRE_RANGE for totals ⟨5 unchanged words⟩ row per operation ranked over the whole window.DAY/HOUR/MINUTE give one row per operation per bucket ⟨20 unchanged words⟩ every bucket; too small a `limit` silently undercounts.Only HOUR and MINUTE accept a `to` of now, so use them for bursts in the last 24 hours.Avoid MONTH: it labels buckets by calendar month ⟨5 unchanged words⟩
⟨18 unchanged words⟩ its current build (revision and operation count).Pass the ID to PublishPersistedQueries.Use to assess PQL configuration — a production variant with no PQL is a security gap.Provide the graph ID and variant name.
⟨10 unchanged words⟩ it was last updated and who updated it.This is the same read that `rover readme fetch` performs.The README is the Markdown document shown on the variant's page in GraphOS Studio.Provide the graph ID and the variant name.
⟨31 unchanged words⟩ check, plus the total count for the filter.Use this to find a check, then pass its ID to GetCheckResults for failure details.Provide the graph ID.Optionally filter by status (PASSED, FAILED, PENDING ⟨14 unchanged words⟩
⟨6 unchanged words⟩ graph over a time window, as compact CSV.Columns: start timestamp, end exclusive timestamp, fetch ⟨8 unchanged words⟩ fetch latency p99 ms, fetch with errors count.Ranked by `orderBy` descending: default FETCH_COUNT (busiest); FETCH_WITH_ERRORS_COUNT for most error-prone, FETCH_LATENCY_P99_MS for slowest.`variantName` scopes to one or more variants (omit for all).`subgraphName` scopes to one or more subgraphs by exact name (omit for all); pattern/substring matching is not supported.`clients` scopes to the fetches driven by one ⟨14 unchanged words⟩ GetClientMetrics to discover the names a graph sees.Keep the default `resolution` of ENTIRE_RANGE for totals ⟨5 unchanged words⟩ row per subgraph ranked over the whole window.DAY/HOUR/MINUTE give one row per subgraph per bucket ⟨20 unchanged words⟩ every bucket; too small a `limit` silently undercounts.Only HOUR and MINUTE accept a `to` of now, so use them for bursts in the last 24 hours.Avoid MONTH: it labels buckets by calendar month ⟨5 unchanged words⟩
⟨11 unchanged words⟩ routing URL, revision, and last update time.This is the same read that `rover subgraph fetch` performs.Read one subgraph at a time: a whole ⟨6 unchanged words⟩ can pass the token limit of the model.Provide the graph ID, the variant name, and the subgraph name.Use GetVariantDetails first if you do not know the subgraph names.
⟨10 unchanged words⟩ with the composition ID and any composition errors.This is the same read that `rover supergraph fetch` performs.A supergraph schema is the single schema that ⟨8 unchanged words⟩ federation directives that the API schema does not.The response holds the whole document and is ⟨6 unchanged words⟩ is larger than the API schema it produces.Expect the same order of size: a large federated graph exceeds 800,000 characters, roughly 200,000 tokens.A variant that is not federated has no ⟨6 unchanged words⟩ null for it rather than an empty document.Provide the graph ID and the variant name.
⟨11 unchanged words⟩ range, with request counts, types, and signatures.Use to find high-traffic operations, detect unused operations, and prioritize findings by traffic impact.Provide graph ID, variant, and a from/to ⟨14 unchanged words⟩ , plus an optional limit (default 50).This report is rate limited.
⟨16 unchanged words⟩ , and its subgraph inventory (names only).Use this to assess a variant's composition setup, such as subgraph inventory and federation version compliance.Provide the graph ID and variant name (e.g., "production").
⟨23 unchanged words⟩ the error, warning, total, and ignored counts.This is the same check that `rover graph lint` and `rover subgraph lint` run.Nothing is published and no state changes.Provide the graph ID and the schema as SDL.Optionally provide baseSdl to report only the diagnostics ⟨8 unchanged words⟩
⟨12 unchanged words⟩ the same write that `rover contract publish` performs.A contract variant is a filtered view of another variant's schema, built by including and excluding schema elements by tag.The filter configuration replaces the previous one in ⟨10 unchanged words⟩ than only the tags you want to change.The same applies to hideUnreachableTypes, which has no ⟨4 unchanged words⟩ a contract, pass the value it has now.GetContractConfig states that value in its description.Returns the contract variant and a link to the launch, or the error messages that stopped it.Provide the graph ID, the contract variant name ⟨15 unchanged words⟩
⟨7 unchanged words⟩ the same write that `rover graph publish` performs.Use this for a monograph; use PublishSubgraph for one subgraph of a federated graph.Returns a result code, whether the publish succeeded, a human-readable message, and the hash of the published schema.This changes the schema registry and can change what clients see.Run RunSchemaCheck first to see the effect on client operations.Provide the graph ID, the variant name, and the schema as SDL.Optionally provide the git branch and commit to label the publication.
⟨7 unchanged words⟩ the same write that `rover persisted-queries publish` performs.A persisted query list is the set of operations a router accepts when it is configured to reject anything else.Operations you do not mention stay in the ⟨6 unchanged words⟩ or replace entries, and remove to drop them.Returns the new revision and the total operation count, or reports that nothing changed.Use GetPersistedQueryListStatus to find the list ID and its current revision.Provide the graph ID and the persisted query list ID.
⟨7 unchanged words⟩ the same write that `rover readme publish` performs.The README is the Markdown document shown on the variant's page in GraphOS Studio.The new text replaces the whole README, so ⟨7 unchanged words⟩ if you intend to keep any of it.Provide the graph ID, the variant name, ⟨5 unchanged words⟩
⟨10 unchanged words⟩ the same write that `rover subgraph publish` performs.Returns whether the subgraph was created or updated, any composition errors, and the launch that started.This changes the schema registry and can change what the router serves.Run RunSubgraphCheck first to see the effect on client operations.Provide the graph ID, the variant name, the subgraph name, and the schema as SDL.Provide the routing URL when you add a subgraph or move its endpoint.Optionally provide a revision label and the git branch and commit.
⟨11 unchanged words⟩ the same check that `rover graph check` starts.Use this for a monograph or for a whole supergraph schema; use RunSubgraphCheck for one subgraph.The check runs in the background, so this returns a workflow ID and a Studio URL, not a result.Pass the returned workflowID to GetCheckResults to read the outcome.Provide the graph ID, the variant name, and the proposed schema as SDL.Optionally provide the git branch and commit to ⟨5 unchanged words⟩
⟨12 unchanged words⟩ the same check that `rover subgraph check` starts.The check runs in the background, so this returns a workflow ID and a Studio URL, not a result.Pass the returned workflowID to GetCheckResults to read the outcome.Provide the graph ID, the variant name, the subgraph name, and the proposed subgraph schema as SDL.Optionally provide the git branch and commit to ⟨5 unchanged words⟩
⟨20 unchanged words⟩ the name of the operation it came from.This is the same check that `rover client check` runs.Nothing is published and no state changes.Provide the graph ID and the operations, each one a body and an optional name.Optionally name the variant to validate against; the default is "current".
Add a comment to a schema proposal, the same action as commenting in GraphOS Studio. With no other options, the comment is a general comment on the proposal. To comment on one change, pass the schema coordinate (for example Query.products) and the subgraph name as schemaScope. To reply, pass the parent comment's ID. Returns the new comment's ID and message, or an error with a message. Provide the graph ID, the proposal variant name and latestRevision.id from GetProposal, and the message.
Create an API key for an organization. The response contains the new key's value in token. It is a live credential, so give it to the user to store in a secret manager, and do not repeat it, log it, or pass it to another tool. Which key types you can create depends on how you authenticate. With the GraphOS sign-in (OAuth), you can create OPERATOR, SCIM, and GATEWAY keys. SUBGRAPH and VARIANT keys need a personal API key in the x-api-key header. With an operator key in x-api-key, you can create only GATEWAY keys, and a graph key can create none. No credential can create ROUTER keys. OPERATOR, …
Create a schema proposal against a source variant, the same action as Create proposal in GraphOS Studio. GraphOS creates a proposal variant that starts as a copy of the source variant's schema, and the proposal starts in DRAFT. Returns the proposal variant's name and the new proposal's ID and status, or an error with a message. To add schema changes, call PublishProposalRevision next. Provide the graph ID, the title, and the source variant name. Optionally provide a description.
Delete an API key from an organization, the same write that `rover api-key delete` performs. This cannot be undone, and every client that uses the key stops authenticating. Returns the deleted key's ID. Provide the organization ID and the key ID, which GetApiKeys returns.
List the API keys and client-credential pairs of an organization. For each key: its ID, name, type, creation, expiry, last use, revocation time, and the resources it can access. For each client-credential pair (an OAuth client that authenticates with the client credentials grant): its client ID, name, creation time, creator, grant types, scopes, and the resources it can access. Key values and client secrets are never returned. Pass a key's ID to RenameApiKey or DeleteApiKey. Those tools do not work on pairs, so manage pairs in GraphOS Studio or with `rover api-key`. Provide the organization I…
Fetch a graph artifact by its digest, the same lookup that `rover graph-artifact fetch --digest` performs. A graph artifact is the build output, such as the composed supergraph schema, that GraphOS Router fetches from Apollo's OCI registry. Returns the artifact's ID, digest, status (GRAPH_ARTIFACT_COMPLETED, GRAPH_ARTIFACT_PENDING, or GRAPH_ARTIFACT_FAILED), build errors, timestamps, variant, the launch that produced it, its registry URI, and the tags assigned to it. To find a digest from a tag name, use GetGraphArtifactTags. Provide the graph ID and the digest.
List the graph artifact tags on a graph and the artifact each tag points to: the artifact's ID, digest, status, creation time, and variant. GraphOS Router can fetch an artifact by tag name instead of by digest. It is similar to `rover graph-artifact list-tags`, which filters by artifact digest instead of variant. Use it to find a tag or a digest before you call GetGraphArtifact, TagGraphArtifact, or UntagGraphArtifact. Provide the graph ID. Optionally filter by variant name, and page with first (at most 20) and after.
Fetch the offline Enterprise license for the organization that owns a graph, the same data that `rover license fetch` returns. The license is a signed JWT that lets GraphOS Router enable Enterprise features while it runs disconnected from GraphOS. Returns null when the organization does not have offline licenses enabled, which requires a request to Apollo. Provide the graph ID.
Read one schema proposal by its ID: title, description, status, author, the source variant, and the proposal variant with the ID of its latest launch. Also returns the latest revision (its ID, summary, schema check, and launch), every review with its decision and comment, and whether the source variant changed since the proposal was created. The write tools for a proposal take the graph ID and the proposal variant name from this response. ReviewProposal and AddProposalComment take latestRevision.id, and PublishProposalRevision takes backingVariant.latestLaunch.id as previousLaunchId. Provide …
List the schema proposals on a graph: each proposal's ID, title, status (DRAFT, OPEN, APPROVED, IMPLEMENTED, CLOSED), timestamps, author, the source variant it proposes changes to, and the proposal variant that holds its changes, plus the total count for the filter. A schema proposal is a reviewable set of schema changes that GraphOS stores on its own variant. Pass a proposal's id to GetProposal for its revisions and reviews. Provide the graph ID. Optionally filter by status, source variant names, or subgraph names, and page with limit and offset.
Save a new revision of a schema proposal by publishing changed subgraph schemas to its proposal variant, the same action as Save revision in GraphOS Studio. GraphOS composes the proposal variant, records the diff against the source variant, and runs schema checks on it. The source variant does not change. Send only the subgraphs that change, each with its full SDL. previousLaunchId must be the proposal variant's latest launch ID from GetProposal. If someone saved a revision since, the call fails, so read the proposal again before you retry. GraphOS saves the revision even when the schema does…
Rename an API key in an organization, the same write that `rover api-key rename` performs. The key value and its access do not change. Returns the key's ID and new name. Provide the organization ID, the key ID, which GetApiKeys returns, and the new name.
Approve or reject a revision of a schema proposal, with an optional comment, the same action as Review in GraphOS Studio. Only a requested reviewer can review, and calling this again replaces the caller's earlier review. Returns the proposal's status and its reviews, or an error with a message. Provide the graph ID, the proposal variant name and latestRevision.id from GetProposal, and the decision (APPROVED or NOT_APPROVED).
Assign a tag to a graph artifact, the same write that `rover graph-artifact tag` performs. If the tag does not exist, it is created. If it exists, it moves to this artifact, and any router that fetches by that tag receives the new artifact. Returns the artifact's ID and digest, or an error with a message. Provide the graph ID, the tag name, and the artifact digest.
Delete a graph artifact tag from a graph, the same write that `rover graph-artifact untag` performs. The tag and its full history are removed, and any router that fetches by that tag can no longer resolve it. The artifact itself stays. Tags that Apollo manages, such as a variant's latest tag, cannot be deleted. Returns the deleted tag name, or an error with a message. Provide the graph ID and the tag name.
Change the status of a schema proposal, the same action as the status menu in GraphOS Studio. DRAFT is for work in progress, OPEN asks reviewers to review, and CLOSED abandons the proposal. GraphOS accepts APPROVED only when the proposal has as many approvals as the graph requires, and it never accepts IMPLEMENTED from this tool. Both return a ValidationError that names the rule. Returns the proposal's ID and new status. Provide the graph ID, the proposal variant name from GetProposal, and the new status.
⟨17 unchanged words⟩ launch":{"anyOf":[{"properties":{"completedAt":{"anyOf":[{"description":"ISO 8601, extended format with nanoseconds, Zulu (or \"[+-]seconds\" as a string or number relative to now)"},{"type":"null"}],"description":"The timestamp when the launch completed. This value is null until the launch completes."},"createdAt":{"description":"ISO 8601, extended format with nanoseconds, Zulu (or \"[+-]seconds\" as a string or number relative to now)"},"id":{"description":"The unique identifier for this launch.","oneOf":[{"type":"string"},{"type":"integer"}]},"publicationbuild":{"anyOf":[{"properties":{"compositionResultresult":{"anyOf":[{"properties":{"errorserrorMessages":{"description":"A list of all errors that occurred duringcomposition. Errors mean that Apollo was unable to composethegraph variant's subgraphs into a supergraph schema. If any errors are present, gateways / routers are notfailedupdated.build.","items":{"properties":{"code": ⟨2 unchanged words⟩ :"string"},{"type":"null"}]},"descriptionfailedStep":{"A machine-readable error code.anyOf"},:[{"locationstype":"string"},{"descriptiontype":"Source locations related to the error.null"}]},"itemslocations":{"anyOfitems":[{"properties":{"column":{"description":" ⟨12 unchanged words⟩ ","column"],"type":"object"},{"type":"null"}]},"type":"array"},"message":{"description":"A human-readable message describing the error.","type":"string"}},"required":["message ⟨3 unchanged words⟩ "type":"array"}},"required":["errorserrorMessages"],"type":"object"},{"type":"null"}],"description":"The result offederatedthecompositionbuild.executedThis value is null until the build completes."}},"type":"object"},{"type":"null"}],"description":"The associated build for thispublication.launchThis(aresultbuild includeseitherschemaacompositionsupergraphandschemacontract filtering). This value is null until the build is initiated."},"completedAt":{"anyOf":[{"description":"ISO 8601, extended format with nanoseconds, Zulu (orerror\"[+-]seconds\"detailsas a string or number relative to now)"},{"type":"null"}],"description":"Thedependingtimestamponwhenwhetherthecompositionlaunchsucceeded.completed. This value is nullwhenuntil thepublicationlaunchiscompletes."},"createdAt":{"description":"ISOfor8601, extended format with nanoseconds, Zulu (or \"[+-]seconds\" as anon-federatedstringgraph.or number relative to now)"},"id":{"description":"The unique identifier for this launch.","oneOf":[{"type":"string"},{"type":"integer"}]},"publication":{"anyOf":[{"properties":{"diffToPrevious":{"anyOf":[{"properties":{ ⟨365 unchanged words⟩
⟨14 unchanged words⟩ task in the run the composition errors,thelint diagnostics,theschema changes with the client operations they affect,thedownstream variant results, andthecustom check violations.Rover can start a check but cannot read a past run, so useUse this after GetSchemaChecks gives you a check ID. ⟨31 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get schema check results"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get client metrics"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get a contract configuration"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get a graph schema"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get latest launch"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get a specific launch"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get launch history"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get schema lint results"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get my GraphOS identity"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get operation metrics"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get persisted query list status"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get a variant README"}
⟨32 unchanged words⟩ , plus the total count for the filter.Rover can start a check but cannot read past runs, so useUse this to find a checkand, then pass itsidID to GetCheckResults forthefailuredetail.details. Provide the graph ID. Optionally filter by status ⟨17 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"List schema checks"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get subgraph metrics"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get a subgraph schema"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get a supergraph schema"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get top operations"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Get graph variant details"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Lint a schema"}
{"destructiveHint":true,"openWorldHint":falsetrue,"readOnlyHint":false,"title":"Publish a contract"}
{"destructiveHint":true,"openWorldHint":falsetrue,"readOnlyHint":false,"title":"Publish a graph schema"}
{"destructiveHint":true,"openWorldHint":falsetrue,"readOnlyHint":false,"title":"Publish persisted queries"}
{"destructiveHint":true,"openWorldHint":falsetrue,"readOnlyHint":false,"title":"Publish a variant README"}
{"destructiveHint":true,"openWorldHint":falsetrue,"readOnlyHint":false,"title":"Publish a subgraph schema"}
{"destructiveHint":false,"openWorldHint":falsetrue,"readOnlyHint":false,"title":"Run a schema check"}
{"destructiveHint":false,"openWorldHint":falsetrue,"readOnlyHint":false,"title":"Run a subgraph schema check"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Validate client operations"}
after
{"definitions":{"ChangeCategory":{"description":"Defines a set of categories that a schema change\ncan be grouped by.","enum":["ADDITION","EDIT","REMOVAL","DEPRECATION"],"type":"string"},"ChangeSeverity":{"enum":["FAILURE","NOTICE"],"type":"string"},"CheckWorkflowStatus":{"enum":["FAILED","PASSED","PENDING"],"type":"string"},"CheckWorkflowTaskStatus":{"enum":["BLOCKED","FAILED","PASSED","PENDING"],"type":"string"},"LintDiagnosticLevel":{"description":"The severity level of an lint result.","enum":["ERROR","IGNORED","WARNING"],"type":"string"},"LintRule":{"enum":["ALL_ELEMENTS_REQUIRE_DESCRIPTION","CONTACT_DIRECTIVE_MISSING","DEFINED_TYPES_ARE_UNUSED","DEPRECATED_DIRECTIVE_MISSING_REASON","DIRECTIVE_COMPOSITION","DIRECTIVE_NAMES_SHOULD_BE_CAMEL_CASE","DOES_NOT_PARSE","ENUM_PREFIX","ENUM_SUFFIX","ENUM_USED_AS_INPUT_WITHOUT_SUFFIX","ENUM_USED_AS_OUTPUT_DESPITE_SUFFIX","ENUM_VALUES_SHOULD_BE_SCREAMING_SNAKE_CASE","FIELD_NAMES_SHOULD_BE_CAMEL_CASE","FROM_SUBGRAPH_DOES_NOT_EXIST","INCONSISTENT_ARGUMENT_PRESENCE","INCONSISTENT_BUT_COMPATIBLE_ARGUMENT_TYPE","INCONSISTENT_BUT_COMPATIBLE_FIELD_TYPE","INCONSISTENT_DEFAULT_VALUE_PRESENCE","INCONSISTENT_DESCRIPTION","INCONSISTENT_ENTITY","INCONSISTENT_ENUM_VALUE_FOR_INPUT_ENUM","INCONSISTENT_ENUM_VALUE_FOR_OUTPUT_ENUM","INCONSISTENT_EXECUTABLE_DIRECTIVE_LOCATIONS","INCONSISTENT_EXECUTABLE_DIRECTIVE_PRESENCE","INCONSISTENT_EXECUTABLE_DIRECTIVE_REPEATABLE","INCONSISTENT_INPUT_OBJECT_FIELD","INCONSISTENT_INTERFACE_VALUE_TYPE_FIELD","INCONSISTENT_NON_REPEATABLE_DIRECTIVE_ARGUMENTS","INCONSISTENT_OBJECT_VALUE_TYPE_FIELD","INCONSISTENT_RUNTIME_TYPES_FOR_SHAREABLE_RETURN","INCONSISTENT_TYPE_SYSTEM_DIRECTIVE_LOCATIONS","INCONSISTENT_TYPE_SYSTEM_DIRECTIVE_REPEATABLE","INCONSISTENT_UNION_MEMBER","INPUT_ARGUMENT_NAMES_SHOULD_BE_CAMEL_CASE","INPUT_TYPE_SUFFIX","INTERFACE_PREFIX","INTERFACE_SUFFIX","MERGED_NON_REPEATABLE_DIRECTIVE_ARGUMENTS","NO_EXECUTABLE_DIRECTIVE_INTERSECTION","NULLABLE_PATH_VARIABLE","OBJECT_PREFIX","OBJECT_SUFFIX","OVERRIDDEN_FIELD_CAN_BE_REMOVED","OVERRIDE_DIRECTIVE_CAN_BE_REMOVED","OVERRIDE_MIGRATION_IN_PROGRESS","QUERY_DOCUMENT_DECLARATION","RESTY_FIELD_NAMES","TAG_DIRECTIVE_USES_UNKNOWN_NAME","TYPE_NAMES_SHOULD_BE_PASCAL_CASE","TYPE_PREFIX","TYPE_SUFFIX","UNUSED_ENUM_TYPE"],"type":"string"},"ProposalChangeMismatchSeverity":{"enum":["ERROR","OFF","WARN"],"type":"string"},"ProposalCoverage":{"enum":["FULL","NONE","OVERRIDDEN","PARTIAL","PENDING"],"type":"string"},"ViolationLevel":{"enum":["ERROR","INFO","WARNING"],"type":"string"}},"properties":{"data":{"properties":{"graph":{"anyOf":[{"properties":{"checkWorkflow":{"anyOf":[{"properties":{"baseVariant":{"anyOf":[{"properties":{"name":{"description":"The variant's name (e.g., `staging`).","type":"string"}},"required":["name"],"type":"object"},{"type":"null"}],"description":"The variant provided as a base to check against. Only the differences from the\nbase schema will be tested in operations checks."},"completedAt":{"anyOf":[{"description":"ISO 8601, extended format with nanoseconds, Zulu (or \"[+-]seconds\" as a string or number relative to now)"},{"type":"null"}],"description":"The timestamp when the check workflow completed."},"createdAt":{"description":"ISO 8601, extended format with nanoseconds, Zulu (or \"[+-]seconds\" as a string or number relative to now)"},"gitContext":{"anyOf":[{"properties":{"commit":{"anyOf":[{"oneOf":[{"type":"string"},{"type":"integer"}]},{"type":"null"}]}},"type":"object"},{"type":"null"}],"description":"Contextual parameters supplied by the runtime environment where the check was run."},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"implementingServiceName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The name of the implementing service that was responsible for triggering the validation."},"startedAt":{"anyOf":[{"description":"ISO 8601, extended format with nanoseconds, Zulu (or \"[+-]seconds\" as a string or number relative to now)"},{"type":"null"}],"description":"The timestamp when the check workflow started."},"status":{"$ref":"#/definitions/CheckWorkflowStatus","description":"Overall status of the workflow, based on the underlying task statuses."},"tasks":{"description":"The set of check tasks associated with this workflow, e.g. composition, operations, etc.","items":{"properties":{"__typename":{"description":"The typename of this object","type":"string"},"compositionResult":{"anyOf":[{"properties":{"errors":{"description":"A list of errors that occurred during composition. Errors mean that Apollo was unable to compose the graph variant's subgraphs into a supergraph schema. If any errors are present, gateways / routers are not updated.","items":{"properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"A machine-readable error code."},"locations":{"description":"Source locations related to the error.","items":{"anyOf":[{"properties":{"column":{"description":"Column number.","type":"integer"},"line":{"description":"Line number.","type":"integer"}},"required":["line","column"],"type":"object"},{"type":"null"}]},"type":"array"},"message":{"description":"A human-readable message describing the error.","type":"string"}},"required":["message","locations"],"type":"object"},"type":"array"},"graphCompositionID":{"description":"The unique ID for this instance of composition.","oneOf":[{"type":"string"},{"type":"integer"}]}},"required":["graphCompositionID","errors"],"type":"object"},{"type":"null"}],"description":"An old version of buildResult that returns a very old GraphQL type that generally should be\navoided. This field will soon be deprecated."},"coreSchemaModified":{"description":"Whether the build's output supergraph core schema differs from that of the active publish for\nthe workflow's variant at the time this field executed (NOT at the time the check workflow\nstarted).","type":"boolean"},"customResult":{"anyOf":[{"properties":{"violations":{"items":{"properties":{"coordinate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The schema coordinate of this rule violation as defined by RFC:\n\t\thttps://github.com/graphql/graphql-wg/blob/main/rfcs/SchemaCoordinates.md\n\t\tOptional for violations that aren't specific to a single schema element"},"level":{"$ref":"#/definitions/ViolationLevel","description":"The violation level for the rule."},"message":{"description":"A human-readable message describing the rule violation, rendered as markdown in Apollo Studio. Maximum length: 512 characters.","type":"string"},"rule":{"description":"The rule being violated. This is used to group multiple violations together in Studio. Max character length is 128.","type":"string"}},"required":["level","message","rule"],"type":"object"},"type":"array"}},"required":["violations"],"type":"object"},{"type":"null"}]},"hasWarnings":{"description":"True if this Proposal check passed with warnings, otherwise false.","type":"boolean"},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"lintResult":{"anyOf":[{"properties":{"diagnostics":{"description":"The set of lint rule violations found in the schema.","items":{"properties":{"coordinate":{"description":"The schema coordinate of this diagnostic.","type":"string"},"level":{"$ref":"#/definitions/LintDiagnosticLevel","description":"The graph's configured level for the rule."},"message":{"description":"The message describing the rule violation.","type":"string"},"rule":{"$ref":"#/definitions/LintRule","description":"The lint rule being violated."},"sourceLocations":{"description":"The human readable position in the file of the rule violation.","items":{"properties":{"end":{"anyOf":[{"properties":{"column":{"type":"integer"},"line":{"type":"integer"}},"required":["line","column"],"type":"object"},{"type":"null"}]},"start":{"anyOf":[{"properties":{"column":{"type":"integer"},"line":{"type":"integer"}},"required":["line","column"],"type":"object"},{"type":"null"}]},"subgraphName":{"anyOf":[{"type":"string"},{"type":"null"}]}},"type":"object"},"type":"array"}},"required":["coordinate","level","message","rule","sourceLocations"],"type":"object"},"type":"array"},"stats":{"description":"Stats generated from the resulting diagnostics.","properties":{"errorsCount":{"description":"Total number of lint errors.","type":"integer"},"ignoredCount":{"description":"Total number of lint rules ignored.","type":"integer"},"totalCount":{"description":"Total number of lint rules violated.","type":"integer"},"warningsCount":{"description":"Total number of lint warnings.","type":"integer"}},"required":["errorsCount","warningsCount","totalCount","ignoredCount"],"type":"object"}},"required":["diagnostics","stats"],"type":"object"},{"type":"null"}]},"operationsResult":{"anyOf":[{"properties":{"affectedQueries":{"anyOf":[{"items":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name to display to the user for the operation"},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"isValid":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Determines if this query validates against the proposed schema"},"markedAsIgnored":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this operation was ignored and its severity was downgraded for that reason"},"markedAsSafe":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether the changes were marked as safe and its severity was downgraded for that reason"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name provided for the operation, which can be empty string if it is an anonymous operation"}},"required":["id"],"type":"object"},"type":"array"},{"type":"null"}],"description":"Operations affected by all changes in diff"},"areChangesTruncated":{"description":"Indicates whether the changes for this operation check were truncated due to their large quantity.","type":"boolean"},"changeSummary":{"description":"Summary/counts for all changes in diff","properties":{"total":{"description":"Counts for all changes.","properties":{"additions":{"description":"Number of changes that are additions. This includes adding types, adding fields to object, input\nobject, and interface types, adding values to enums, adding members to interfaces and unions, and\nadding arguments.","type":"integer"},"deprecations":{"description":"Number of changes that are new usages of the @deprecated directive.","type":"integer"},"edits":{"description":"Number of changes that are edits. This includes types changing kind, fields and arguments\nchanging type, arguments changing default value, and any description changes. This also includes\nedits to @deprecated reason strings.","type":"integer"},"removals":{"description":"Number of changes that are removals. This includes removing types, removing fields from object,\ninput object, and interface types, removing values from enums, removing members from interfaces\nand unions, and removing arguments. This also includes removing @deprecated usages.","type":"integer"}},"required":["additions","removals","edits","deprecations"],"type":"object"}},"required":["total"],"type":"object"},"changes":{"description":"List of schema changes with associated affected clients and operations","items":{"properties":{"category":{"$ref":"#/definitions/ChangeCategory","description":"Indication of the category of the change (e.g. addition, removal, edit)."},"code":{"description":"Indicates the type of change that was made, and to what (e.g., 'TYPE_REMOVED').","type":"string"},"description":{"description":"A human-readable description of the change.","type":"string"},"severity":{"$ref":"#/definitions/ChangeSeverity","description":"The severity of the change (e.g., `FAILURE` or `NOTICE`)"}},"required":["severity","code","category","description"],"type":"object"},"type":"array"},"checkSeverity":{"$ref":"#/definitions/ChangeSeverity","description":"Indication of the success of the change, either failure, warning, or notice."},"numberOfAffectedOperations":{"description":"Number of affected operations that are neither marked as SAFE or IGNORED.","type":"integer"},"numberOfCheckedOperations":{"description":"Number of operations that were validated during schema diff","type":"integer"},"totalNumberOfAffectedOperations":{"description":"Total number of affected operations including ones marked SAFE or IGNORED.","type":"integer"},"totalNumberOfChanges":{"description":"Total number of schema changes, excluding any truncation.","type":"integer"}},"required":["checkSeverity","numberOfCheckedOperations","totalNumberOfChanges","areChangesTruncated","numberOfAffectedOperations","totalNumberOfAffectedOperations","changeSummary","changes"],"type":"object"},{"type":"null"}],"description":"The result of the operations check. This will be null when the task is initializing or running,\nor when the build task fails (which is a prerequisite task to this one)."},"proposalCoverage":{"$ref":"#/definitions/ProposalCoverage","description":"Indicates the level of coverage a check's changeset is in approved Proposals. PENDING while Check is still running."},"results":{"anyOf":[{"items":{"properties":{"blocking":{"description":"Whether the downstream check workflow blocks the upstream check workflow from completing.","type":"boolean"},"downstreamGraphID":{"description":"The ID of the graph that the downstream variant belongs to.","type":"string"},"downstreamVariantName":{"description":"The name of the downstream variant.","type":"string"},"failsUpstreamWorkflow":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether the downstream check workflow is causing the upstream check workflow to fail. This occurs\nwhen the downstream check workflow is both blocking and failing. This may be null while the\ndownstream check workflow is pending."}},"required":["blocking","downstreamGraphID","downstreamVariantName"],"type":"object"},"type":"array"},{"type":"null"}],"description":"A list of results for all downstream checks triggered as part of the source variant's checks workflow.\nThis value is null if the task hasn't been initialized yet, or if the build task fails (the build task is a\nprerequisite to this task). This value is _not_ null _while_ the task is running. The returned list is empty\nif the source variant has no downstream variants."},"severityLevel":{"$ref":"#/definitions/ProposalChangeMismatchSeverity","description":"The configured severity at the time the check was run. If the check failed, this is the severity that should be shown. While this Check is PENDING defaults to Service's severityLevel."},"status":{"$ref":"#/definitions/CheckWorkflowTaskStatus","description":"The status of this task. All tasks start with the PENDING status while initializing. If any\n prerequisite task fails, then the task status becomes BLOCKED. Otherwise, if all prerequisite\n tasks pass, then this task runs (still having the PENDING status). Once the task completes, the\n task status will become either PASSED or FAILED."},"targetURL":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"A studio UI url to view the details of this check workflow task"}},"required":["id","status"],"type":"object"},"type":"array"}},"required":["id","status","createdAt","tasks"],"type":"object"},{"type":"null"}],"description":"Get a check workflow for this graph by its ID"}},"type":"object"},{"type":"null"}],"description":"Returns details of the graph with the provided ID."}},"type":"object"},"errors":{"items":{"properties":{"extensions":{"type":"object"},"locations":{"items":{"properties":{"column":{"type":"integer"},"line":{"type":"integer"}},"type":"object"},"type":"array"},"message":{"type":"string"},"path":{"items":{"oneOf":[{"type":"string"},{"type":"integer"}]},"type":"array"}},"required":["message"],"type":"object"},"type":"array"},"extensions":{"type":"object"}},"type":"object"}{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":true,"title":"Get a specific launch"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":true,"title":"Get launch history"}
Retrieve schema lint violations from a graph's most recentcheckschemaworkflowschecks: each diagnostic's coordinate, severity level, message, ⟨20 unchanged words⟩ optionally a limit (default 5 most recentcheckschemaworkflowschecks).
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":true,"title":"Get schema lint results"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":true,"title":"Get my GraphOS identity"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":true,"title":"Get operation metrics"}
Check whether a graph variant has a Persisted Query List (PQL), and return its ID, its name, and its current build (revision and operation count). Pass the ID to PublishPersistedQueries. Use to assess PQL configuration — a production ⟨15 unchanged words⟩
⟨65 unchanged words⟩ revision","totalOperationsInList"],"type":"object"},"id":{"description":"The immutable ID for this Persisted Query List.","oneOf":[{"type":"string"},{"type":"integer"}]},"name":{"description":"The list's name; can be changed and does not need to be unique.","type":"string"}},"required":["id","name","currentBuild"],"type":"object"},{" ⟨111 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":true,"title":"Get persisted query list status"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":true,"title":"Get subgraph metrics"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":true,"title":"Get top operations"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":true,"title":"Get graph variant details"}
Delete a graph, the same write that `rover graph delete` performs. This is a soft delete: the data is not removed permanently and Apollo support can restore the graph. Every variant of the graph stops serving, so confirm the graph ID with the user before you call this. Returns null on success. Provide the graph ID.
Remove a subgraph from a variant and start composition, the same write that `rover subgraph delete` performs. Returns the composition errors that the removal causes. This deletes the subgraph from the variant and can break the running router. Set dryRun to true first: the response then reports the composition result that the removal would produce, including updatedGateway, and deletes nothing. Provide the graph ID, the variant name, and the subgraph name.
Read the outcome of one schema check run: the overall status, and for each task in the run the composition errors, the lint diagnostics, the schema changes with the client operations they affect, the downstream variant results, and the custom check violations. Rover can start a check but cannot read a past run, so use this after GetSchemaChecks gives you a check ID. Provide the graph ID and the check ID. The affected operations are paged with affectedOperationsLimit and affectedOperationsOffset; the change list is capped by the server, and areChangesTruncated reports when that happened.
Read the filter configuration of a contract variant: the tags it includes, the tags it excludes, the source variant it is built from, and a human-readable description of the configuration. This is the same read that `rover contract describe` performs. A contract variant is a filtered view of another variant's schema, built by including and excluding schema elements by tag. The filter configuration does not include whether unreachable types are hidden. The description states it, so read it there before you update a contract with PublishContract. A variant that is not a contract returns null fo…
Read the schema (SDL) that is currently published to a graph variant, with its hash and publication time. This is the same read that `rover graph fetch` performs. The response holds the whole document and is not truncated. A large federated graph measured over 800,000 characters, roughly 200,000 tokens, which exceeds the context window of most models. Prefer GetSubgraphSchema, which reads one subgraph at a time, and use this tool only when you need the whole API schema. Provide the graph ID and the variant name.
Read the README of a graph variant, with the time it was last updated and who updated it. This is the same read that `rover readme fetch` performs. The README is the Markdown document shown on the variant's page in GraphOS Studio. Provide the graph ID and the variant name.
List past schema checks for a graph: each check's ID, status, timestamps, the subgraph it checked, the variant it ran against, the commit, and the status of each task in the check, plus the total count for the filter. Rover can start a check but cannot read past runs, so use this to find a check and then pass its id to GetCheckResults for the failure detail. Provide the graph ID. Optionally filter by status (PASSED, FAILED, PENDING), subgraph names, branches, variants, authors, or check IDs, and page with limit and offset.
Read one subgraph's published schema (SDL) from a variant, with its routing URL, revision, and last update time. This is the same read that `rover subgraph fetch` performs. Read one subgraph at a time: a whole supergraph document is much larger and can pass the token limit of the model. Provide the graph ID, the variant name, and the subgraph name. Use GetVariantDetails first if you do not know the subgraph names.
Read the composed supergraph schema (SDL) for a graph variant, with the composition ID and any composition errors. This is the same read that `rover supergraph fetch` performs. A supergraph schema is the single schema that composition builds from every subgraph, and it carries federation directives that the API schema does not. The response holds the whole document and is not truncated, and a supergraph schema is larger than the API schema it produces. Expect the same order of size: a large federated graph exceeds 800,000 characters, roughly 200,000 tokens. A variant that is not federated has…
Lint a GraphQL schema document against the graph's lint rules and return each diagnostic's coordinate, severity level, message, rule, and source location, plus the error, warning, total, and ignored counts. This is the same check that `rover graph lint` and `rover subgraph lint` run. Nothing is published and no state changes. Provide the graph ID and the schema as SDL. Optionally provide baseSdl to report only the diagnostics that the new schema introduces against that base.
Create or update a contract variant and start a launch for it, the same write that `rover contract publish` performs. A contract variant is a filtered view of another variant's schema, built by including and excluding schema elements by tag. The filter configuration replaces the previous one in full, so send the complete include and exclude lists rather than only the tags you want to change. The same applies to hideUnreachableTypes, which has no default: when you update a contract, pass the value it has now. GetContractConfig states that value in its description. Returns the contract variant …
Publish a schema to a graph variant, the same write that `rover graph publish` performs. Use this for a monograph; use PublishSubgraph for one subgraph of a federated graph. Returns a result code, whether the publish succeeded, a human-readable message, and the hash of the published schema. This changes the schema registry and can change what clients see. Run RunSchemaCheck first to see the effect on client operations. Provide the graph ID, the variant name, and the schema as SDL. Optionally provide the git branch and commit to label the publication.
Publish operations to a persisted query list, the same write that `rover persisted-queries publish` performs. A persisted query list is the set of operations a router accepts when it is configured to reject anything else. Operations you do not mention stay in the list unchanged: pass operations to add or replace entries, and remove to drop them. Returns the new revision and the total operation count, or reports that nothing changed. Use GetPersistedQueryListStatus to find the list ID and its current revision. Provide the graph ID and the persisted query list ID.
Replace the README of a graph variant, the same write that `rover readme publish` performs. The README is the Markdown document shown on the variant's page in GraphOS Studio. The new text replaces the whole README, so read the current one with GetReadme first if you intend to keep any of it. Provide the graph ID, the variant name, and the full README text.
Publish a subgraph schema to a variant and start composition, the same write that `rover subgraph publish` performs. Returns whether the subgraph was created or updated, any composition errors, and the launch that started. This changes the schema registry and can change what the router serves. Run RunSubgraphCheck first to see the effect on client operations. Provide the graph ID, the variant name, the subgraph name, and the schema as SDL. Provide the routing URL when you add a subgraph or move its endpoint. Optionally provide a revision label and the git branch and commit.
Start a schema check of a proposed schema against a variant, the same check that `rover graph check` starts. Use this for a monograph or for a whole supergraph schema; use RunSubgraphCheck for one subgraph. The check runs in the background, so this returns a workflow ID and a Studio URL, not a result. Pass the returned workflowID to GetCheckResults to read the outcome. Provide the graph ID, the variant name, and the proposed schema as SDL. Optionally provide the git branch and commit to label the run in Studio.
Start a schema check of one proposed subgraph schema against a variant, the same check that `rover subgraph check` starts. The check runs in the background, so this returns a workflow ID and a Studio URL, not a result. Pass the returned workflowID to GetCheckResults to read the outcome. Provide the graph ID, the variant name, the subgraph name, and the proposed subgraph schema as SDL. Optionally provide the git branch and commit to label the run in Studio.
Validate client GraphQL operations against a variant's published schema and return each problem's type (FAILURE, WARNING, INVALID), code, description, and the name of the operation it came from. This is the same check that `rover client check` runs. Nothing is published and no state changes. Provide the graph ID and the operations, each one a body and an optional name. Optionally name the variant to validate against; the default is "current".
{"properties":{"data":{"properties":{"graph":{"description":"Returns details of the graph with the provided ID.","oneOfanyOf":[{"properties":{"operationInsightsTimeseriesReport":{"description ⟨87 unchanged words⟩ fewer dimensions.","properties":{"csv":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"A CSV representation of the results. ⟨13 unchanged words⟩ end timestamp and all requested dimensions and metrics.","oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object"}},"required":["operationInsightsTimeseriesReport"],"type":"object"},{"type":"null"}],"description":"Returns details of the graph with the provided ID."}},"type":"object"},"errors": ⟨41 unchanged words⟩
⟨9 unchanged words⟩ "data":{"properties":{"graph":{"description":"Returns details of the graph with the provided ID.","oneOfanyOf":[{"properties":{"variant":{"description":"Provides details of the graph variant with the provided `name`, if a variant\nwith that name exists for this graph. Otherwise, returns null.\n\n For a list of _all_ variants associated with a graph, use `Graph.variants` instead.","oneOfanyOf":[{"properties":{"latestApprovedLaunch":{"description":"Latest approved launch for the variant, and what is served through Uplink.","oneOfanyOf":[{"properties":{"completedAt":{"description":"The timestamp when the launch completed. This value is null until the launch completes.","oneOfanyOf":[{"description":"ISO 8601, extended ⟨15 unchanged words⟩ now)"},{"type":"null"}],"description":"The timestamp when the launch completed. This value is null until the launch completes."},"id":{"description":"The unique ⟨37 unchanged words⟩ :"object"},{"type":"null"}]},"latestLaunch":{"description":"Latest approved launch for the variant,whetherandsuccessfulwhatorisnot.served through Uplink."},"oneOflatestLaunch":[{"propertiesanyOf":[{"completedAtproperties":{"descriptioncompletedAt":"The timestamp when the launch completed. This value is null until the launch completes.",{"oneOfanyOf":[{"description":"ISO 8601, extended ⟨15 unchanged words⟩ now)"},{"type":"null"}],"description":"The timestamp when the launch completed. This value is null until the launch completes."},"id":{"description":"The unique ⟨7 unchanged words⟩ type":"integer"}]},"publication":{"description":"A specific publication of a graph variant pertaining to this launch.","oneOfanyOf":[{"properties":{"compositionResult":{"description":"The result of federated composition executed for this publication. This result includes either a supergraph schema or error details, depending on whether composition succeeded. This value is null when the publication is for a non-federated graph.","oneOfanyOf":[{"properties":{"errors":{"description ⟨35 unchanged words⟩ "items":{"properties":{"code":{"description":"A machine-readable error code.","oneOfanyOf":[{"type":"string"},{"type":"null"}],"description":"A machine-readable error code."},"locations":{"description":"Source locations related to the error.","items":{"oneOfanyOf":[{"properties":{"column":{"description ⟨39 unchanged words⟩ :"object"},{"type":"null"}]},"diffToPrevious":{"description":"ATheschemaresultdiffofcomparingfederatedagainstcompositiontheexecuted for this publication. This result includes either a supergraph schemafromor error details, depending on whether composition succeeded. This value is null when themostpublicationrecentispreviousforsuccessfulapublication.non-federated graph."},"oneOfdiffToPrevious":[{"propertiesanyOf":[{"affectedQueriesproperties":{"descriptionaffectedQueries":"Operations affected by all changes in the diff.",{"oneOfanyOf":[{"items":{"properties":{"id ⟨3 unchanged words⟩ type":"integer"}]},"isValid":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Determines if this query validates against the proposed schema"},"oneOfmarkedAsIgnored":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"markedAsIgnored":{"description":"Whether this operation was ignored and its severity was downgraded for that reason"},"oneOfmarkedAsSafe":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"markedAsSafe":{"description":"Whether the changes were marked as safe and its severity was downgraded for that reason"},"oneOfname":{"anyOf":[{"type":"booleanstring"},{"type":"null"}]},"name":{"description":"Name provided for the operation, which can be empty string if it is an anonymous operation","oneOf":[{"type":"string"},{"type":"null"}]}},"required":["id"],"type":"object"},"type":"array"},{"type":"null"}],"description":"Operations affected by all changes in the diff."},"changeSummary":{"description":"Numeric summaries ⟨244 unchanged words⟩ :"object"},{"type":"null"}],"description":"A schema diff comparing against the schema from the most recent previous successful publication."}},"type":"object"},{"type":"null"}],"description":"A specific publication of a graph variant pertaining to this launch."},"status":{"$ref":"#/definitions/LaunchStatus"," ⟨18 unchanged words⟩ launch, use `supersededAt`."},"subgraphChanges":{"description":"A list of subgraph changes that are included in this launch.","oneOfanyOf":[{"items":{"properties":{"name ⟨14 unchanged words⟩ :"array"},{"type":"null"}],"description":"A list of subgraph changes that are included in this launch."}},"required":["id","status"],"type":"object"},{"type":"null"}],"description":"Latest launch for the variant, whether successful or not."}},"type":"object"},{"type":"null"}],"description":"Provides details of the graph variant with the provided `name`, if a variant\nwith that name exists for this graph. Otherwise, returns null.\n\n For a list of _all_ variants associated with a graph, use `Graph.variants` instead."}},"type":"object"},{"type":"null"}],"description":"Returns details of the graph with the provided ID."}},"type":"object"},"errors": ⟨41 unchanged words⟩
⟨9 unchanged words⟩ "data":{"properties":{"graph":{"description":"Returns details of the graph with the provided ID.","oneOfanyOf":[{"properties":{"variant":{"description":"Provides details of the graph variant with the provided `name`, if a variant\nwith that name exists for this graph. Otherwise, returns null.\n\n For a list of _all_ variants associated with a graph, use `Graph.variants` instead.","oneOfanyOf":[{"properties":{"launch":{"description":"Retrieve a launch for this variant by ID.","oneOfanyOf":[{"properties":{"completedAt":{"description":"The timestamp when the launch completed. This value is null until the launch completes.","oneOfanyOf":[{"description":"ISO 8601, extended ⟨15 unchanged words⟩ now)"},{"type":"null"}],"description":"The timestamp when the launch completed. This value is null until the launch completes."},"createdAt":{"description":"ISO 8601, ⟨28 unchanged words⟩ type":"integer"}]},"publication":{"description":"A specific publication of a graph variant pertaining to this launch.","oneOfanyOf":[{"properties":{"compositionResult":{"description":"The result of federated composition executed for this publication. This result includes either a supergraph schema or error details, depending on whether composition succeeded. This value is null when the publication is for a non-federated graph.","oneOfanyOf":[{"properties":{"errors":{"description ⟨35 unchanged words⟩ "items":{"properties":{"code":{"description":"A machine-readable error code.","oneOfanyOf":[{"type":"string"},{"type":"null"}],"description":"A machine-readable error code."},"locations":{"description":"Source locations related to the error.","items":{"oneOfanyOf":[{"properties":{"column":{"description ⟨39 unchanged words⟩ :"object"},{"type":"null"}]},"diffToPrevious":{"description":"ATheschemaresultdiffofcomparingfederatedagainstcompositiontheexecuted for this publication. This result includes either a supergraph schemafromor error details, depending on whether composition succeeded. This value is null when themostpublicationrecentispreviousforsuccessfulapublication.non-federated graph."},"oneOfdiffToPrevious":{"anyOf":[{"properties":{"changeSummary":{"description": ⟨156 unchanged words⟩ :"object"},{"type":"null"}],"description":"A schema diff comparing against the schema from the most recent previous successful publication."}},"type":"object"},{"type":"null"}],"description":"A specific publication of a graph variant pertaining to this launch."},"status":{"$ref":"#/definitions/LaunchStatus"," ⟨18 unchanged words⟩ launch, use `supersededAt`."},"subgraphChanges":{"description":"A list of subgraph changes that are included in this launch.","oneOfanyOf":[{"items":{"properties":{"name ⟨14 unchanged words⟩ :"array"},{"type":"null"}],"description":"A list of subgraph changes that are included in this launch."}},"required":["id","status","createdAt"],"type":"object"},{"type":"null"}],"description":"Retrieve a launch for this variant by ID."}},"type":"object"},{"type":"null"}],"description":"Provides details of the graph variant with the provided `name`, if a variant\nwith that name exists for this graph. Otherwise, returns null.\n\n For a list of _all_ variants associated with a graph, use `Graph.variants` instead."}},"type":"object"},{"type":"null"}],"description":"Returns details of the graph with the provided ID."}},"type":"object"},"errors": ⟨41 unchanged words⟩
⟨2 unchanged words⟩ {"type":"string"},"limit":{"default":20,"type":"integer"},"offset":{"default":0,"type":"integer"},"variant":{"type":"string"}},"required":["graphId","variant","limit","offset"],"type":"object"}
⟨9 unchanged words⟩ "data":{"properties":{"graph":{"description":"Returns details of the graph with the provided ID.","oneOfanyOf":[{"properties":{"variant":{"description":"Provides details of the graph variant with the provided `name`, if a variant\nwith that name exists for this graph. Otherwise, returns null.\n\n For a list of _all_ variants associated with a graph, use `Graph.variants` instead.","oneOfanyOf":[{"properties":{"launchSummaries":{"description":"A list of launches metadata ordered by date, asc or desc depending on orderBy. The maximum limit is 100.","oneOfanyOf":[{"items":{"properties":{"completedAt":{"description":"The timestamp when the launch completed. This value is null until the launch completes.","oneOfanyOf":[{"description":"ISO 8601, extended ⟨15 unchanged words⟩ now)"},{"type":"null"}],"description":"The timestamp when the launch completed. This value is null until the launch completes."},"createdAt":{"description":"ISO 8601, ⟨61 unchanged words⟩ :"array"},{"type":"null"}],"description":"A list of launches metadata ordered by date, asc or desc depending on orderBy. The maximum limit is 100."}},"type":"object"},{"type":"null"}],"description":"Provides details of the graph variant with the provided `name`, if a variant\nwith that name exists for this graph. Otherwise, returns null.\n\n For a list of _all_ variants associated with a graph, use `Graph.variants` instead."}},"type":"object"},{"type":"null"}],"description":"Returns details of the graph with the provided ID."}},"type":"object"},"errors": ⟨41 unchanged words⟩
⟨2 unchanged words⟩ {"type":"string"},"limit":{"default":5,"type":"integer"}},"required":["graphId","limit"],"type":"object"}
⟨88 unchanged words⟩ "data":{"properties":{"graph":{"description":"Returns details of the graph with the provided ID.","oneOfanyOf":[{"properties":{"checkWorkflows":{"description ⟨13 unchanged words⟩ "items":{"properties":{"completedAt":{"description":"The timestamp when the check workflow completed.","oneOfanyOf":[{"description":"ISO 8601, extended ⟨15 unchanged words⟩ now)"},{"type":"null"}],"description":"The timestamp when the check workflow completed."},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"implementingServiceName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The name of the implementing service that was responsible for triggering the validation.","oneOf":[{"type":"string"},{"type":"null"}]},"status":{"$ref":"#/definitions/CheckWorkflowStatus","description": ⟨26 unchanged words⟩ "items":{"properties":{"result":{"oneOfanyOf":[{"properties":{"diagnostics":{"description ⟨65 unchanged words⟩ "items":{"properties":{"end":{"oneOfanyOf":[{"properties":{"column":{"type ⟨9 unchanged words⟩ type":"null"}]},"start":{"oneOfanyOf":[{"properties":{"column":{"type ⟨9 unchanged words⟩ type":"null"}]},"subgraphName":{"oneOfanyOf":[{"type":"string"},{"type ⟨94 unchanged words⟩ :"object"},{"type":"null"}],"description":"Returns details of the graph with the provided ID."}},"type":"object"},"errors": ⟨41 unchanged words⟩
{"properties":{"data":{"properties":{"me":{"description":"Returns details of the authenticated `User` or `Graph` executing this query. If this is an unauthenticated query (i.e., no API key is provided), this field returns null.","oneOfanyOf":[{"properties":{"__typename":{"description ⟨5 unchanged words⟩ ,"type":"string"},"account":{"description":"The organization that this graph belongs to.","oneOfanyOf":[{"properties":{"id":{"description ⟨38 unchanged words⟩ :"object"},{"type":"null"}],"description":"The organization that this graph belongs to."},"id":{"description":"The identity's ⟨152 unchanged words⟩ ,"type":"string"},"organization":{"description":"The organization this service account belongs to.","oneOfanyOf":[{"properties":{"id":{"description ⟨38 unchanged words⟩ :"object"},{"type":"null"}],"description":"The organization this service account belongs to."},"variants":{"description":"A list ⟨28 unchanged words⟩ :"object"},{"type":"null"}],"description":"Returns details of the authenticated `User` or `Graph` executing this query. If this is an unauthenticated query (i.e., no API key is provided), this field returns null."}},"type":"object"},"errors": ⟨41 unchanged words⟩
⟨18 unchanged words⟩ timeseries report.","properties":{"clientName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The client name."},"clientVersion":{"anyOf":[{"type":"string"},{"clientVersiontype":{"null"}],"description":"The client version.","type":"string"}},"type":"object"},"OperationInsightsTimeseriesReportMetric": ⟨72 unchanged words⟩ )"}},"properties":{"clients":{"anyOf":[{"items":{"oneOfanyOf":[{"$ref":"#/definitions/OperationInsightsTimeseriesReportClientFilterInInput"},{"type":"null"}]},"type":"array"},{"type":"null"}]},"from":{"$ref":"#/definitions/Timestamp","description": ⟨18 unchanged words⟩ {"type":"string"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum number of records to return (default: 100, max 10000)."},"typeorderBy":{"integeranyOf":[{"$ref":"#/definitions/OperationInsightsTimeseriesReportMetric"},{"orderBytype":{"$refnull"}],"default":"#/definitions/OperationInsightsTimeseriesReportMetricREQUEST_COUNT"},"resolution":{"anyOf":[{"$ref":"#/definitions/TimeseriesReportResolution"},{"type":"null"}],"default":"ENTIRE_RANGE","description":"The resolution of the time groups ⟨143 unchanged words⟩ (ISO 8601)."},"variantName":{"anyOf":[{"items":{"oneOfanyOf":[{"type":"string"},{"type":"null"}]},"type":"array"},{"type":"null"}]}},"required":["graphId","from", ⟨3 unchanged words⟩
{"properties":{"data":{"properties":{"graph":{"description":"Returns details of the graph with the provided ID.","oneOfanyOf":[{"properties":{"operationInsightsTimeseriesReport":{"description ⟨87 unchanged words⟩ fewer dimensions.","properties":{"csv":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"A CSV representation of the results. ⟨13 unchanged words⟩ end timestamp and all requested dimensions and metrics.","oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object"}},"required":["operationInsightsTimeseriesReport"],"type":"object"},{"type":"null"}],"description":"Returns details of the graph with the provided ID."}},"type":"object"},"errors": ⟨41 unchanged words⟩
{"properties":{"data":{"properties":{"graph":{"description":"Returns details of the graph with the provided ID.","oneOfanyOf":[{"properties":{"variant":{"description":"Provides details of the graph variant with the provided `name`, if a variant\nwith that name exists for this graph. Otherwise, returns null.\n\n For a list of _all_ variants associated with a graph, use `Graph.variants` instead.","oneOfanyOf":[{"properties":{"persistedQueryList":{"description":"The Persisted Query List linked to this variant, if any.","oneOfanyOf":[{"properties":{"currentBuild":{"description ⟨58 unchanged words⟩ :"object"},{"type":"null"}],"description":"The Persisted Query List linked to this variant, if any."}},"type":"object"},{"type":"null"}],"description":"Provides details of the graph variant with the provided `name`, if a variant\nwith that name exists for this graph. Otherwise, returns null.\n\n For a list of _all_ variants associated with a graph, use `Graph.variants` instead."}},"type":"object"},{"type":"null"}],"description":"Returns details of the graph with the provided ID."}},"type":"object"},"errors": ⟨41 unchanged words⟩
⟨20 unchanged words⟩ timeseries report.","properties":{"clientName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The client name."},"clientVersion":{"anyOf":[{"type":"string"},{"clientVersiontype":{"null"}],"description":"The client version.","type":"string"}},"type":"object"},"SubgraphInsightsTimeseriesReportMetric": ⟨171 unchanged words⟩ )"}},"properties":{"clients":{"anyOf":[{"items":{"oneOfanyOf":[{"$ref":"#/definitions/SubgraphInsightsTimeseriesReportClientFilterInInput"},{"type":"null"}]},"type":"array"},{"type":"null"}]},"from":{"$ref":"#/definitions/Timestamp","description": ⟨18 unchanged words⟩ {"type":"string"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum number of records to return (default: 100, max 10000)."},"typeorderBy":{"integeranyOf":[{"$ref":"#/definitions/SubgraphInsightsTimeseriesReportMetric"},{"orderBytype":{"$refnull"}],"default":"#/definitions/SubgraphInsightsTimeseriesReportMetricFETCH_COUNT"},"resolution":{"anyOf":[{"$ref":"#/definitions/TimeseriesReportResolution"},{"type":"null"}],"default":"ENTIRE_RANGE","description":"The resolution of the time groups ⟨121 unchanged words⟩ return a REQUEST_INVALID error."},"subgraphName":{"anyOf":[{"items":{"oneOfanyOf":[{"type":"string"},{"type":"null"}]},"type":"array"},{"type":"null"}]},"to":{"$ref":"#/definitions/Timestamp","description": ⟨14 unchanged words⟩ (ISO 8601)."},"variantName":{"anyOf":[{"items":{"oneOfanyOf":[{"type":"string"},{"type":"null"}]},"type":"array"},{"type":"null"}]}},"required":["graphId","from", ⟨3 unchanged words⟩
{"properties":{"data":{"properties":{"graph":{"description":"Returns details of the graph with the provided ID.","oneOfanyOf":[{"properties":{"subgraphInsightsTimeseriesReport":{"description ⟨119 unchanged words⟩ fewer dimensions.","properties":{"csv":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"A CSV representation of the results. ⟨13 unchanged words⟩ end timestamp and all requested dimensions and metrics.","oneOf":[{"type":"string"},{"type":"null"}]}},"type":"object"}},"required":["subgraphInsightsTimeseriesReport"],"type":"object"},{"type":"null"}],"description":"Returns details of the graph with the provided ID."}},"type":"object"},"errors": ⟨41 unchanged words⟩
⟨65 unchanged words⟩ {"type":"string"},"limit":{"default":50,"description":"Maximum number of records to return ⟨51 unchanged words⟩ :["graphId","variant","from","to","limit"],"type":"object"}
⟨9 unchanged words⟩ "data":{"properties":{"graph":{"description":"Returns details of the graph with the provided ID.","oneOfanyOf":[{"properties":{"variant":{"description":"Provides details of the graph variant with the provided `name`, if a variant\nwith that name exists for this graph. Otherwise, returns null.\n\n For a list of _all_ variants associated with a graph, use `Graph.variants` instead.","oneOfanyOf":[{"properties":{"topOperationsReport":{"description ⟨35 unchanged words⟩ "items":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The operation name or null if the operation is unnamed.","oneOf":[{"type":"string"},{"type":"null"}]},"operationId":{"description":"The unique id for ⟨5 unchanged words⟩ description":"Long type"},"signature":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The operation's signature body or null if the signature is unavailable due to parse errors."},"oneOftype":{"anyOf":[{"type$ref":"string#/definitions/OperationType"},{"type":"null"}]},"type":{"description":"The operation type or null if the operation type could not be determined from the signature.","oneOf":[{"$ref":"#/definitions/OperationType"},{"type":"null"}]}},"required":["operationId","requestCount"]," ⟨7 unchanged words⟩ :"object"},{"type":"null"}],"description":"Provides details of the graph variant with the provided `name`, if a variant\nwith that name exists for this graph. Otherwise, returns null.\n\n For a list of _all_ variants associated with a graph, use `Graph.variants` instead."}},"type":"object"},{"type":"null"}],"description":"Returns details of the graph with the provided ID."}},"type":"object"},"errors": ⟨41 unchanged words⟩
Retrievedetailedmetadata for a graph variant:federationitsversionidentifier,subgraph inventoryfederation(names)version,router statustheandURLanyofpendingitsrouterGraphQLversionendpoint, andthe currentitsroutersubgraphconfigurationinventory (rawnamesYAMLonly). Use this to assess a variant'shealth —compositionroutersetup,configsuchgaps,as subgraph inventory,and federation version compliance. Provide the graph ID ⟨6 unchanged words⟩
{"definitions":{"RouterStatus":{"description":"Current status of Cloud Routers","enum":["CREATING","UPDATING","DELETING","ROLLING_BACK","RUNNING","SLEEPING","DELETED"],"type":"string"}},"properties":{"data":{"properties":{"graph":{"description":"Returns details of the graph with the provided ID.","oneOfanyOf":[{"properties":{"variant":{"description":"Provides details of the graph variant with the provided `name`, if a variant\nwith that name exists for this graph. Otherwise, returns null.\n\n For a list of _all_ variants associated with a graph, use `Graph.variants` instead.","oneOfanyOf":[{"properties":{"federationVersion":{"description":"Federation version this variant uses","oneOfanyOf":[{"type":"string"},{"type":"null"}],"description":"Federation version this variant uses"},"id":{"description":"The variant's ⟨17 unchanged words⟩ `staging`).","type":"string"},"routersubgraphs":{"description":"Router associated with this graph variant","oneOfanyOf":[{"properties":{"nextRouterVersion":{"description":"Cloud Router version applied for the next launch\n\nIf this value is not null, any subsequent launch will use this version instead of the\ncurrent one. This can happen when a new STABLE version is available, but we could not\nautomatically update this Cloud Router, for example due to configuration issues.","oneOfitems":[{"properties":{"configVersion":{"description":"Config version for this router version","type":"string"},"core