rover 0.14.0 -> 0.14.2 https://github.com/apollographql/rover/releases attrpath: rover Checking auto update branch... [version] [version] generic version rewriter does not support multiple hashes [rustCrateVersion] [rustCrateVersion] skipping because derivation has updateScript [golangModuleVersion] [golangModuleVersion] Not a buildGoModule package with vendorSha256 or vendorHash [updateScript] [updateScript] Success [updateScript] this derivation will be built: /nix/store/ah6lv2h19bcbpsdj5ki8c7mjxsbwqhyy-packages.json.drv building '/nix/store/ah6lv2h19bcbpsdj5ki8c7mjxsbwqhyy-packages.json.drv'... Going to be running update for following packages: - rover-0.14.0 Press Enter key to continue... Running update for: - rover-0.14.0: UPDATING ... - rover-0.14.0: DONE. Packages updated! [quotedUrls] [quotedUrls] nothing found to replace Diff after rewrites: diff --git a/pkgs/development/tools/rover/default.nix b/pkgs/development/tools/rover/default.nix index 5fbde990df7..8ee11813869 100644 --- a/pkgs/development/tools/rover/default.nix +++ b/pkgs/development/tools/rover/default.nix @@ -9,16 +9,16 @@ rustPlatform.buildRustPackage rec { pname = "rover"; - version = "0.14.0"; + version = "0.14.2"; src = fetchFromGitHub { owner = "apollographql"; repo = pname; rev = "v${version}"; - sha256 = "sha256-fVgo5Ds/VK0kBpF+F2FdMvBnQj2IB+B5ToOK8ONdq6c="; + sha256 = "sha256-co/AUyDyaApkeSh7Hw7HdK/RyQ/En80T5CiF8vbWFr4="; }; - cargoSha256 = "sha256-fNqnpLNENLJEhbqxLFUqyjAf8tEPCLoGSRV91gOY9LI="; + cargoSha256 = "sha256-qgnVLde9x6EORoa0owimuFxBwh7vgaFpiHJuRyZ7p0w="; buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security diff --git a/pkgs/development/tools/rover/schema/etag.id b/pkgs/development/tools/rover/schema/etag.id index 59331ac0df6..008f7385ac7 100644 --- a/pkgs/development/tools/rover/schema/etag.id +++ b/pkgs/development/tools/rover/schema/etag.id @@ -1 +1 @@ -d35f8c48cb89329f33656944fa9e997de1e778b043b9ca4d78c8accdecfd9046 +048337340376eab14f0aa3ed9df80149647cc8d29c05a8c0e0f876c9abd03d88 diff --git a/pkgs/development/tools/rover/schema/schema.graphql b/pkgs/development/tools/rover/schema/schema.graphql index 8cc527f4f82..9feae466977 100644 --- a/pkgs/development/tools/rover/schema/schema.graphql +++ b/pkgs/development/tools/rover/schema/schema.graphql @@ -1,319 +1,32 @@ -schema { - query: Query - mutation: Mutation -} - -"""An organization in Apollo Studio. Can have multiple members and graphs.""" -type Organization { - auditLogExports: [AuditLogExport!] - """Graphs belonging to this organization.""" - graphs(includeDeleted: Boolean): [Graph!]! - """Globally unique identifier, which isn't guaranteed stable (can be changed by administrators).""" - id: ID! - """Name of the organization, which can change over time and isn't unique.""" - name: String! - """Graphs belonging to this organization.""" - services(includeDeleted: Boolean): [Graph!]! @deprecated(reason: "Use graphs field instead") -} - -type OrganizationMutation { - """Trigger a request for an audit export""" - requestAuditExport(actors: [ActorInput!], from: Timestamp!, graphIds: [String!], to: Timestamp!): Organization -} - -"""Represents an actor that performs actions in Apollo Studio. Most actors are either a `USER` or a `GRAPH` (based on a request's provided API key), and they have the corresponding `ActorType`.""" -type Actor { - actorId: ID! - type: ActorType! -} - -"""Input type to provide when specifying an `Actor` in operation arguments. See also the `Actor` object type.""" -input ActorInput { - actorId: ID! - type: ActorType! -} - -enum ActorType { - ANONYMOUS_USER - BACKFILL - CRON - GRAPH - INTERNAL_IDENTITY - SYNCHRONIZATION - SYSTEM - USER -} - -union AddOperationCollectionEntriesResult = AddOperationCollectionEntriesSuccess | PermissionError | ValidationError - -type AddOperationCollectionEntriesSuccess { - operationCollectionEntries: [OperationCollectionEntry!]! -} - -union AddOperationCollectionEntryResult = OperationCollectionEntry | PermissionError | ValidationError - -input AddOperationInput { - """The operation's fields.""" - document: OperationCollectionEntryStateInput! - """The operation's name.""" - name: String! -} - -type AffectedQuery { - id: ID! - """First 128 characters of query signature for display""" - signature: String - """Name to display to the user for the operation""" - displayName: String - """Name provided for the operation, which can be empty string if it is an anonymous operation""" - name: String - """Determines if this query validates against the proposed schema""" - isValid: Boolean - """List of changes affecting this query. Returns null if queried from SchemaDiff.changes.affectedQueries.changes""" - changes: [ChangeOnOperation!] - """Whether this operation was ignored and its severity was downgraded for that reason""" - markedAsIgnored: Boolean - """Whether the changes were marked as safe and its severity was downgraded for that reason""" - markedAsSafe: Boolean - """If the operation would be approved if the check ran again. Returns null if queried from SchemaDiff.changes.affectedQueries.alreadyApproved""" - alreadyApproved: Boolean - """If the operation would be ignored if the check ran again""" - alreadyIgnored: Boolean -} - -""" -Represents an API key that's used to authenticate a -particular Apollo user or graph. -""" -interface ApiKey { - """The API key's ID.""" - id: ID! - """The API key's name, for distinguishing it from other keys.""" - keyName: String - """The value of the API key. **This is a secret credential!**""" - token: String! -} - -type ApiKeyProvision { - apiKey: ApiKey! - created: Boolean! -} - -type AuditLogExport { - """The list of actors to filter the audit export""" - actors: [Identity!] - """The time when the audit export was completed""" - completedAt: Timestamp - """The time when the audit export was reqeusted""" - createdAt: Timestamp! - """List of URLs to download the audits for the requested range""" - downloadUrls: [String!] - """The starting point of audits to include in export""" - from: Timestamp! - """The list of graphs to filter the audit export""" - graphs: [Graph!] - """The id for the audit export""" - id: ID! - """The user that initiated the audit export""" - requester: User - """The status of the audit export""" - status: AuditStatus! - """The end point of audits to include in export""" - to: Timestamp! -} - -enum AuditStatus { - CANCELLED - COMPLETED - EXPIRED - FAILED - IN_PROGRESS - QUEUED -} - -"""The building of a Studio variant (including supergraph composition and any contract filtering) as part of a launch.""" -type Build { - """The inputs provided to the build, including subgraph and contract details.""" - input: BuildInput! - """The result of the build. This value is null until the build completes.""" - result: BuildResult -} - -"""A single error that occurred during the failed execution of a build.""" -type BuildError { - code: String - locations: [SourceLocation!]! - message: String! -} - -"""Contains the details of an executed build that failed.""" -type BuildFailure { - """A list of all errors that occurred during the failed build.""" - errorMessages: [BuildError!]! -} - -union BuildInput = CompositionBuildInput | FilterBuildInput - -union BuildResult = BuildFailure | BuildSuccess - -"""Contains the details of an executed build that succeeded.""" -type BuildSuccess { - """Contains the supergraph and API schemas created by composition.""" - coreSchema: CoreSchema! -} - -"""A single change that was made to a definition in a schema.""" -type Change { - """The severity of the change (e.g., `FAILURE` or `NOTICE`)""" - severity: ChangeSeverity! - """Indicates the type of change that was made, and to what (e.g., 'TYPE_REMOVED').""" - code: String! - """Indication of the category of the change (e.g. addition, removal, edit).""" - category: ChangeCategory! - """A human-readable description of the change.""" - description: String! - affectedQueries: [AffectedQuery!] - """Top level node affected by the change.""" - parentNode: NamedIntrospectionType - """ - Node related to the top level node that was changed, such as a field in an object, - a value in an enum or the object of an interface. - """ - childNode: NamedIntrospectionValue - """Target arg of change made.""" - argNode: NamedIntrospectionArg -} - -""" -Defines a set of categories that a schema change -can be grouped by. -""" -enum ChangeCategory { - ADDITION - EDIT - REMOVAL - DEPRECATION -} - -""" -These schema change codes represent all of the possible changes that can -occur during the schema diff algorithm. -""" -enum ChangeCode { - """Field was removed from the type.""" - FIELD_REMOVED - """Type (object or scalar) was removed from the schema.""" - TYPE_REMOVED - """Argument to a field was removed.""" - ARG_REMOVED - """Type is no longer included in the union.""" - TYPE_REMOVED_FROM_UNION - """Field was removed from the input object.""" - FIELD_REMOVED_FROM_INPUT_OBJECT - """Value was removed from the enum.""" - VALUE_REMOVED_FROM_ENUM - """Type no longer implements the interface.""" - TYPE_REMOVED_FROM_INTERFACE - """Non-nullable argument was added to the field.""" - REQUIRED_ARG_ADDED - """Non-nullable field was added to the input object. (Deprecated.)""" - NON_NULLABLE_FIELD_ADDED_TO_INPUT_OBJECT - """Required field was added to the input object.""" - REQUIRED_FIELD_ADDED_TO_INPUT_OBJECT - """Return type for the field was changed.""" - FIELD_CHANGED_TYPE - """Type of the field in the input object was changed.""" - FIELD_ON_INPUT_OBJECT_CHANGED_TYPE - """ - Type was changed from one kind to another. - Ex: scalar to object or enum to union. - """ - TYPE_CHANGED_KIND - """Type of the argument was changed.""" - ARG_CHANGED_TYPE - """Argument was changed from nullable to non-nullable.""" - ARG_CHANGED_TYPE_OPTIONAL_TO_REQUIRED - """A new value was added to the enum.""" - VALUE_ADDED_TO_ENUM - """A new value was added to the enum.""" - TYPE_ADDED_TO_UNION - """Type now implements the interface.""" - TYPE_ADDED_TO_INTERFACE - """Default value added or changed for the argument.""" - ARG_DEFAULT_VALUE_CHANGE - """Nullable argument was added to the field.""" - OPTIONAL_ARG_ADDED - """Nullable field was added to the input type. (Deprecated.)""" - NULLABLE_FIELD_ADDED_TO_INPUT_OBJECT - """Optional field was added to the input type.""" - OPTIONAL_FIELD_ADDED_TO_INPUT_OBJECT - """Field was added to the type.""" - FIELD_ADDED - """Type was added to the schema.""" - TYPE_ADDED - """Enum was deprecated.""" - ENUM_DEPRECATED - """Enum deprecation was removed.""" - ENUM_DEPRECATION_REMOVED - """Reason for enum deprecation changed.""" - ENUM_DEPRECATED_REASON_CHANGE - """Field was deprecated.""" - FIELD_DEPRECATED - """Field deprecation removed.""" - FIELD_DEPRECATION_REMOVED - """Reason for field deprecation changed.""" - FIELD_DEPRECATED_REASON_CHANGE - """Description was added, removed, or updated for type.""" - TYPE_DESCRIPTION_CHANGE - """Description was added, removed, or updated for field.""" - FIELD_DESCRIPTION_CHANGE - """Description was added, removed, or updated for enum value.""" - ENUM_VALUE_DESCRIPTION_CHANGE - """Description was added, removed, or updated for argument.""" - ARG_DESCRIPTION_CHANGE - """Directive was removed.""" - DIRECTIVE_REMOVED - """Argument to the directive was removed.""" - DIRECTIVE_ARG_REMOVED - """Location of the directive was removed.""" - DIRECTIVE_LOCATION_REMOVED - """Repeatable flag was removed for directive.""" - DIRECTIVE_REPEATABLE_REMOVED - """Non-nullable argument added to directive.""" - REQUIRED_DIRECTIVE_ARG_ADDED -} - -""" -Represents the tuple of static information -about a particular kind of schema change. -""" -type ChangeDefinition { - code: ChangeCode! - defaultSeverity: ChangeSeverity! - category: ChangeCategory! -} - -"""An addition made to a Studio variant's changelog after a launch.""" -type ChangelogLaunchResult { - createdAt: Timestamp! - schemaTagID: ID! -} - -"""Info about a change in the context of an operation it affects""" -type ChangeOnOperation { - """The semantic info about this change, i.e. info about the change that doesn't depend on the operation""" - semanticChange: SemanticChange! - """Human-readable explanation of the impact of this change on the operation""" - impact: String -} - -enum ChangeSeverity { - FAILURE - NOTICE -} - -""" -Summary of the changes for a schema diff, computed by placing the changes into categories and then +"""An organization in Apollo Studio. Can have multiple members and graphs.""" type Account{auditLogExports:[AuditLogExport!]"""These are the roles that the account is able to use""" availableRoles:[UserPermission!]!"""Get an URL to which an avatar image can be uploaded. Client uploads by sending a PUT request +with the image data to MediaUploadInfo.url. Client SHOULD set the "Content-Type" header to the +browser-inferred MIME type, and SHOULD set the "x-apollo-content-filename" header to the +filename, if such information is available. Client MUST set the "x-apollo-csrf-token" header to +MediaUploadInfo.csrfToken.""" avatarUpload:AvatarUploadResult """Get an image URL for the account's avatar. Note that CORS is not enabled for these URLs. The size +argument is used for bandwidth reduction, and should be the size of the image as displayed in the +application. Apollo's media server will downscale larger images to at least the requested size, +but this will not happen for third-party media servers.""" avatarUrl(size:Int!=40):String billingContactEmail:String billingInfo:BillingInfo billingInsights(from:Date!limit:Int to:Date windowSize:BillingUsageStatsWindowSize):BillingInsights!companyUrl:String currentBillingMonth:BillingMonth currentPlan:BillingPlan!currentSubscription:BillingSubscription eligibleForUsageBasedPlan:Boolean!expiredTrialDismissedAt:Timestamp expiredTrialSubscription:BillingSubscription graphIDAvailable(id:ID!):Boolean!"""Graphs belonging to this organization.""" graphs(filterBy:GraphFilter includeDeleted:Boolean):[Service!]!"""Graphs belonging to this organization.""" graphsConnection("""Return the elements in the list that come after the specified cursor.""" after:String """Return the elements in the list that come before the specified cursor.""" before:String """Filtering options for graphs returned from the connection. Defaults to returning all graphs.""" filterBy:GraphFilter """Return the first n elements from the list.""" first:Int """Return the last n elements from the list.""" last:Int):AccountGraphConnection hasBeenOnTrial:Boolean!hasBeenOnTrialV2:Boolean!@deprecated(reason:"Use `hasBeenOnTrial`.")hasBillingInfo:Boolean """Globally unique identifier, which isn't guaranteed stable (can be changed by administrators).""" id:ID!"""Internal immutable identifier for the account. Only visible to Apollo admins (because it really +shouldn't be used in normal client apps).""" internalID:ID!invitations(includeAccepted:Boolean!=false):[AccountInvitation!]invoices:[Invoice!]!isLocked:Boolean isOnExpiredTrial:Boolean!isOnTrial:Boolean!lockDetails:AccountLockDetails memberships:[AccountMembership!]"""Name of the organization, which can change over time and isn't unique.""" name:String!"""Fetches usage based pricing operations counts for the calling user. If a particular window is not specified, +totals for the user's current billing period are returned. (Will error if the user is not currently on a usage +based plan.)""" operationUsage(forWindow:AccountOperationUsageWindowInput):AccountOperationUsage!provisionedAt:Timestamp """Returns a different registry related stats pertaining to this account.""" registryStatsWindow(from:Timestamp!resolution:Resolution to:Timestamp):RegistryStatsWindow requests(from:Timestamp!to:Timestamp!):Long requestsInCurrentBillingPeriod:Long roles:AccountRoles routerEntitlement:RouterEntitlement """How many seats would be included in your next bill, as best estimated today""" seatCountForNextBill:Int seats:Seats secondaryIDs:[ID!]!"""Graphs belonging to this organization.""" services(includeDeleted:Boolean):[Service!]!@deprecated(reason:"Use graphs field instead")"""If non-null, this organization tracks its members through an upstream, eg PingOne; +invitations are not possible on SSO-synchronized account.""" sso:OrganizationSSO state:AccountState """A list of reusable invitations for the organization.""" staticInvitations:[OrganizationInviteLink!]stats(from:Timestamp!"""Granularity of buckets. Defaults to the entire range (aggregate all data into a single durationBucket) when null.""" resolution:Resolution """Defaults to the current time when null.""" to:Timestamp):AccountStatsWindow!@deprecated(reason:"use Account.statsWindow instead")statsWindow(from:Timestamp!"""Granularity of buckets. Defaults to the entire range (aggregate all data into a single durationBucket) when null.""" resolution:Resolution """Defaults to the current time when null.""" to:Timestamp):AccountStatsWindow subscriptions:[BillingSubscription!]!"""Gets a ticket for this org, by id""" ticket(id:ID!):ZendeskTicket """List of Zendesk tickets submitted for this org""" tickets:[ZendeskTicket!]"""All Variants within the Graphs belonging to this organization. Can be limited to those favorited by the current user.""" variants("""Filtering options for graph variants returned from the connection. Defaults to returning all graph variants.""" filterBy:GraphVariantFilter=ALL):AccountGraphVariantConnection@deprecated(reason:"use Service.variants instead")vitallyTraits:AccountCustomerTraits}"""Columns of AccountBillingUsageStats.""" enum AccountBillingUsageStatsColumn{AGENT_VERSION GRAPH_DEPLOYMENT_TYPE OPERATION_COUNT OPERATION_COUNT_PROVIDED_EXPLICITLY OPERATION_SUBTYPE OPERATION_TYPE SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountBillingUsageStatsDimensions{agentVersion:String graphDeploymentType:String operationCountProvidedExplicitly:String operationSubtype:String operationType:String schemaTag:String serviceId:ID}"""Filter for data in AccountBillingUsageStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountBillingUsageStatsFilter{"""Selects rows whose agentVersion dimension equals the given value if not null. To query for the null value, use {in: {agentVersion: [null]}} instead.""" agentVersion:String and:[AccountBillingUsageStatsFilter!]"""Selects rows whose graphDeploymentType dimension equals the given value if not null. To query for the null value, use {in: {graphDeploymentType: [null]}} instead.""" graphDeploymentType:String in:AccountBillingUsageStatsFilterIn not:AccountBillingUsageStatsFilter """Selects rows whose operationCountProvidedExplicitly dimension equals the given value if not null. To query for the null value, use {in: {operationCountProvidedExplicitly: [null]}} instead.""" operationCountProvidedExplicitly:String """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[AccountBillingUsageStatsFilter!]"""Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountBillingUsageStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountBillingUsageStatsFilterIn{"""Selects rows whose agentVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" agentVersion:[String]"""Selects rows whose graphDeploymentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" graphDeploymentType:[String]"""Selects rows whose operationCountProvidedExplicitly dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationCountProvidedExplicitly:[String]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountBillingUsageStatsMetrics{operationCount:Long!}input AccountBillingUsageStatsOrderBySpec{column:AccountBillingUsageStatsColumn!direction:Ordering!}type AccountBillingUsageStatsRecord{"""Dimensions of AccountBillingUsageStats that can be grouped by.""" groupBy:AccountBillingUsageStatsDimensions!"""Metrics of AccountBillingUsageStats that can be aggregated over.""" metrics:AccountBillingUsageStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type AccountChecksStatsMetrics{totalFailedChecks:Long!totalSuccessfulChecks:Long!}type AccountChecksStatsRecord{id:ID!metrics:AccountChecksStatsMetrics!timestamp:Timestamp!}type AccountCustomerTraits{accountOwner:String adminLink:String federationInProd:Boolean product:String requestsLast30Days:BigInt sfdcId:String sso:Boolean tier:String totalGraphs:Int totalRequests:BigInt totalSubgraphs:Int totalVariants:Int usersCount:Int usingClassicGraphs:Boolean usingCloudGraphs:Boolean usingExplorer:Boolean usingFederation:Boolean usingFederation2:Boolean usingRover:Boolean usingSchemaChecks:Boolean usingVariants:Boolean}"""Columns of AccountEdgeServerInfos.""" enum AccountEdgeServerInfosColumn{BOOT_ID EXECUTABLE_SCHEMA_ID LIBRARY_VERSION PLATFORM RUNTIME_VERSION SCHEMA_TAG SERVER_ID SERVICE_ID TIMESTAMP USER_VERSION}type AccountEdgeServerInfosDimensions{bootId:ID executableSchemaId:ID libraryVersion:String platform:String runtimeVersion:String schemaTag:String serverId:ID serviceId:ID userVersion:String}"""Filter for data in AccountEdgeServerInfos. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountEdgeServerInfosFilter{and:[AccountEdgeServerInfosFilter!]"""Selects rows whose bootId dimension equals the given value if not null. To query for the null value, use {in: {bootId: [null]}} instead.""" bootId:ID """Selects rows whose executableSchemaId dimension equals the given value if not null. To query for the null value, use {in: {executableSchemaId: [null]}} instead.""" executableSchemaId:ID in:AccountEdgeServerInfosFilterIn """Selects rows whose libraryVersion dimension equals the given value if not null. To query for the null value, use {in: {libraryVersion: [null]}} instead.""" libraryVersion:String not:AccountEdgeServerInfosFilter or:[AccountEdgeServerInfosFilter!]"""Selects rows whose platform dimension equals the given value if not null. To query for the null value, use {in: {platform: [null]}} instead.""" platform:String """Selects rows whose runtimeVersion dimension equals the given value if not null. To query for the null value, use {in: {runtimeVersion: [null]}} instead.""" runtimeVersion:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serverId dimension equals the given value if not null. To query for the null value, use {in: {serverId: [null]}} instead.""" serverId:ID """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose userVersion dimension equals the given value if not null. To query for the null value, use {in: {userVersion: [null]}} instead.""" userVersion:String}"""Filter for data in AccountEdgeServerInfos. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountEdgeServerInfosFilterIn{"""Selects rows whose bootId dimension is in the given list. A null value in the list means a row with null for that dimension.""" bootId:[ID]"""Selects rows whose executableSchemaId dimension is in the given list. A null value in the list means a row with null for that dimension.""" executableSchemaId:[ID]"""Selects rows whose libraryVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" libraryVersion:[String]"""Selects rows whose platform dimension is in the given list. A null value in the list means a row with null for that dimension.""" platform:[String]"""Selects rows whose runtimeVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" runtimeVersion:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serverId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serverId:[ID]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose userVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" userVersion:[String]}input AccountEdgeServerInfosOrderBySpec{column:AccountEdgeServerInfosColumn!direction:Ordering!}type AccountEdgeServerInfosRecord{"""Dimensions of AccountEdgeServerInfos that can be grouped by.""" groupBy:AccountEdgeServerInfosDimensions!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of AccountErrorStats.""" enum AccountErrorStatsColumn{CLIENT_NAME CLIENT_VERSION ERRORS_COUNT PATH QUERY_ID QUERY_NAME REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountErrorStatsDimensions{clientName:String clientVersion:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in AccountErrorStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountErrorStatsFilter{and:[AccountErrorStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:AccountErrorStatsFilterIn not:AccountErrorStatsFilter or:[AccountErrorStatsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountErrorStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountErrorStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountErrorStatsMetrics{errorsCount:Long!requestsWithErrorsCount:Long!}input AccountErrorStatsOrderBySpec{column:AccountErrorStatsColumn!direction:Ordering!}type AccountErrorStatsRecord{"""Dimensions of AccountErrorStats that can be grouped by.""" groupBy:AccountErrorStatsDimensions!"""Metrics of AccountErrorStats that can be aggregated over.""" metrics:AccountErrorStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of AccountFieldExecutions.""" enum AccountFieldExecutionsColumn{ERRORS_COUNT ESTIMATED_EXECUTION_COUNT FIELD_NAME OBSERVED_EXECUTION_COUNT PARENT_TYPE REFERENCING_OPERATION_COUNT REQUESTS_WITH_ERRORS_COUNT SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountFieldExecutionsDimensions{fieldName:String parentType:String schemaTag:String serviceId:ID}"""Filter for data in AccountFieldExecutions. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountFieldExecutionsFilter{and:[AccountFieldExecutionsFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:AccountFieldExecutionsFilterIn not:AccountFieldExecutionsFilter or:[AccountFieldExecutionsFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountFieldExecutions. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountFieldExecutionsFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountFieldExecutionsMetrics{errorsCount:Long!estimatedExecutionCount:Long!observedExecutionCount:Long!referencingOperationCount:Long!requestsWithErrorsCount:Long!}input AccountFieldExecutionsOrderBySpec{column:AccountFieldExecutionsColumn!direction:Ordering!}type AccountFieldExecutionsRecord{"""Dimensions of AccountFieldExecutions that can be grouped by.""" groupBy:AccountFieldExecutionsDimensions!"""Metrics of AccountFieldExecutions that can be aggregated over.""" metrics:AccountFieldExecutionsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of AccountFieldLatencies.""" enum AccountFieldLatenciesColumn{FIELD_HISTOGRAM FIELD_NAME PARENT_TYPE SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountFieldLatenciesDimensions{field:String fieldName:String parentType:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in AccountFieldLatencies. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountFieldLatenciesFilter{and:[AccountFieldLatenciesFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:AccountFieldLatenciesFilterIn not:AccountFieldLatenciesFilter or:[AccountFieldLatenciesFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountFieldLatencies. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountFieldLatenciesFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountFieldLatenciesMetrics{fieldHistogram:DurationHistogram!}input AccountFieldLatenciesOrderBySpec{column:AccountFieldLatenciesColumn!direction:Ordering!}type AccountFieldLatenciesRecord{"""Dimensions of AccountFieldLatencies that can be grouped by.""" groupBy:AccountFieldLatenciesDimensions!"""Metrics of AccountFieldLatencies that can be aggregated over.""" metrics:AccountFieldLatenciesMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of AccountFieldUsage.""" enum AccountFieldUsageColumn{CLIENT_NAME CLIENT_VERSION ESTIMATED_EXECUTION_COUNT EXECUTION_COUNT FIELD_NAME OPERATION_SUBTYPE OPERATION_TYPE PARENT_TYPE QUERY_ID QUERY_NAME REFERENCING_OPERATION_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type AccountFieldUsageDimensions{clientName:String clientVersion:String fieldName:String operationSubtype:String operationType:String parentType:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in AccountFieldUsage. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountFieldUsageFilter{and:[AccountFieldUsageFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:AccountFieldUsageFilterIn not:AccountFieldUsageFilter """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[AccountFieldUsageFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountFieldUsage. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountFieldUsageFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountFieldUsageMetrics{estimatedExecutionCount:Long!executionCount:Long!referencingOperationCount:Long!}input AccountFieldUsageOrderBySpec{column:AccountFieldUsageColumn!direction:Ordering!}type AccountFieldUsageRecord{"""Dimensions of AccountFieldUsage that can be grouped by.""" groupBy:AccountFieldUsageDimensions!"""Metrics of AccountFieldUsage that can be aggregated over.""" metrics:AccountFieldUsageMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""A list of graphs that belong to an account.""" type AccountGraphConnection{"""A list of edges from the account to its graphs.""" edges:[AccountGraphEdge!]"""A list of graphs attached to the account.""" nodes:[Service!]"""Information to aid in pagination.""" pageInfo:PageInfo!}"""An edge between an account and a graph.""" type AccountGraphEdge{"""A cursor for use in pagination.""" cursor:String!"""A graph attached to the account.""" node:Service}"""A list of all variants from all graphs attached to the account.""" type AccountGraphVariantConnection{"""A list of edges from the account to its variants.""" edges:[AccountGraphVariantEdge!]"""A list of all variants from all graphs attached to the account.""" nodes:[GraphVariant!]"""Information to aid in pagination.""" pageInfo:PageInfo!}"""An edge between an account and a graph variant.""" type AccountGraphVariantEdge{"""A cursor for use in pagination.""" cursor:String!"""A variant from a graph attached to the account.""" node:GraphVariant}type AccountInvitation{"""An accepted invitation cannot be used anymore""" acceptedAt:Timestamp """Who accepted the invitation""" acceptedBy:User """Time the invitation was created""" createdAt:Timestamp!"""Who created the invitation""" createdBy:User email:String!id:ID!"""Last time we sent an email for the invitation""" lastSentAt:Timestamp """Access role for the invitee""" role:UserPermission!}type AccountLockDetails{actor:String reason:String timestamp:Timestamp type:AccountLockType}enum AccountLockType{AUTOMATED_TRIAL_END MANUAL}type AccountMembership{account:Account!createdAt:Timestamp!"""If this membership is a free seat (based on role)""" free:Boolean permission:UserPermission!user:User!}type AccountMutation{auditExport(id:String!):AuditLogExportMutation """Cancel account subscriptions, subscriptions will remain active until the end of the paid period. +Currently only works for Recurly subscriptions on team plans.""" cancelSubscriptions:Account createGraph(graphType:GraphType!hiddenFromUninvitedNonAdmin:Boolean!id:ID!title:String!variantCreationConfig:VariantCreationConfig):GraphCreationResult!createStaticInvitation(role:UserPermission!):OrganizationInviteLink """Delete the account's avatar. Requires Account.canUpdateAvatar to be true.""" deleteAvatar:AvatarDeleteError """If the org is on an enterprise trial, set the end date to a new value.""" extendTrial:Account """Hard delete an account and all associated services""" hardDelete:Void internalID:String """Send an invitation to join the account by E-mail""" invite(email:String!role:UserPermission):AccountInvitation """Lock an account, which limits the functionality available with regard to its graphs.""" lock(reason:String type:AccountLockType):Account """ See Account type. Field is needed by extending subgraph.""" name:String """Reactivate a canceled current subscription. +Currently only works for Recurly subscriptions on team plans.""" reactivateCurrentSubscription:Account """Delete an invitation""" removeInvitation(id:ID):Void """Remove a member of the account""" removeMember(id:ID!):Account """Trigger a request for an audit export""" requestAuditExport(actors:[ActorInput!]from:Timestamp!graphIds:[String!]to:Timestamp!):Account """Send a new E-mail for an existing invitation""" resendInvitation(id:ID):AccountInvitation revokeStaticInvitation(token:String!):OrganizationInviteLink """ See Account type. Field is needed by extending subgraph.""" seats:Seats """Apollo admins only: set the billing plan to an arbitrary plan effective immediately terminating any current paid plan.""" setPlan(id:ID!):Void """This is called by the form shown to users after they cancel their team subscription.""" submitTeamCancellationFeedback(feedback:String!):Void """Apollo admins only: Terminate the ongoing subscription in the account as soon as possible, without refunds.""" terminateSubscription(providerId:ID!):Account """Apollo admins only: terminate any ongoing subscriptions in the account, without refunds +Currently only works for Recurly subscriptions.""" terminateSubscriptions:Account trackTermsAccepted(at:Timestamp!):Void """Unlock a locked account.""" unlock:Account """Update the billing address for a Recurly token""" updateBillingAddress(billingAddress:BillingAddressInput!):Account """Update the billing information from a Recurly token""" updateBillingInfo(token:String!):Void updateCompanyUrl(companyUrl:String):Account """Set the E-mail address of the account, used notably for billing""" updateEmail(email:String!):Void """Update the account ID""" updateID(id:ID!):Account """Update the company name""" updateName(name:String!):Void """Apollo admins only: enable or disable an account for PingOne SSO login""" updatePingOneSSOIDPID(idpid:String):Account """Updates the role assigned to new SSO users.""" updateSSODefaultRole(role:UserPermission!):OrganizationSSO """A (currently) internal to Apollo mutation to update a user's role within an organization""" updateUserPermission(permission:UserPermission!userID:ID!):User}"""Columns of AccountOperationCheckStats.""" enum AccountOperationCheckStatsColumn{CACHED_REQUESTS_COUNT CLIENT_NAME CLIENT_VERSION OPERATION_SUBTYPE OPERATION_TYPE QUERY_ID QUERY_NAME SCHEMA_TAG SERVICE_ID TIMESTAMP UNCACHED_REQUESTS_COUNT}type AccountOperationCheckStatsDimensions{clientName:String clientVersion:String operationSubtype:String operationType:String queryId:ID queryName:String schemaTag:String serviceId:ID}"""Filter for data in AccountOperationCheckStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountOperationCheckStatsFilter{and:[AccountOperationCheckStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:AccountOperationCheckStatsFilterIn not:AccountOperationCheckStatsFilter """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[AccountOperationCheckStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountOperationCheckStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountOperationCheckStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountOperationCheckStatsMetrics{cachedRequestsCount:Long!uncachedRequestsCount:Long!}input AccountOperationCheckStatsOrderBySpec{column:AccountOperationCheckStatsColumn!direction:Ordering!}type AccountOperationCheckStatsRecord{"""Dimensions of AccountOperationCheckStats that can be grouped by.""" groupBy:AccountOperationCheckStatsDimensions!"""Metrics of AccountOperationCheckStats that can be aggregated over.""" metrics:AccountOperationCheckStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type AccountOperationUsage{selfHosted:BillableMetricStats!serverless:BillableMetricStats!totalOperations:BillableMetricStats!}input AccountOperationUsageWindowInput{from:Date!limit:Int!=100 to:Date!windowSize:BillingUsageStatsWindowSize!=DAY}type AccountPublishesStatsMetrics{totalPublishes:Long!}type AccountPublishesStatsRecord{id:ID!metrics:AccountPublishesStatsMetrics!timestamp:Timestamp!}"""Columns of AccountQueryStats.""" enum AccountQueryStatsColumn{CACHED_HISTOGRAM CACHED_REQUESTS_COUNT CACHE_TTL_HISTOGRAM CLIENT_NAME CLIENT_VERSION FORBIDDEN_OPERATION_COUNT FROM_ENGINEPROXY OPERATION_SUBTYPE OPERATION_TYPE QUERY_ID QUERY_NAME REGISTERED_OPERATION_COUNT REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP UNCACHED_HISTOGRAM UNCACHED_REQUESTS_COUNT}type AccountQueryStatsDimensions{clientName:String clientVersion:String fromEngineproxy:String operationSubtype:String operationType:String queryId:ID queryName:String querySignature:String querySignatureLength:Int schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in AccountQueryStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountQueryStatsFilter{and:[AccountQueryStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fromEngineproxy dimension equals the given value if not null. To query for the null value, use {in: {fromEngineproxy: [null]}} instead.""" fromEngineproxy:String in:AccountQueryStatsFilterIn not:AccountQueryStatsFilter """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[AccountQueryStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in AccountQueryStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountQueryStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fromEngineproxy dimension is in the given list. A null value in the list means a row with null for that dimension.""" fromEngineproxy:[String]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type AccountQueryStatsMetrics{cacheTtlHistogram:DurationHistogram!cachedHistogram:DurationHistogram!cachedRequestsCount:Long!forbiddenOperationCount:Long!registeredOperationCount:Long!requestsWithErrorsCount:Long!totalLatencyHistogram:DurationHistogram!totalRequestCount:Long!uncachedHistogram:DurationHistogram!uncachedRequestsCount:Long!}input AccountQueryStatsOrderBySpec{column:AccountQueryStatsColumn!direction:Ordering!}type AccountQueryStatsRecord{"""Dimensions of AccountQueryStats that can be grouped by.""" groupBy:AccountQueryStatsDimensions!"""Metrics of AccountQueryStats that can be aggregated over.""" metrics:AccountQueryStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type AccountRoles{canAudit:Boolean!canCreateDevGraph:Boolean!@deprecated canCreateService:Boolean!canDelete:Boolean!canDownloadInvoice:Boolean!@deprecated(reason:"Use canQueryBillingInfo instead")canManageMembers:Boolean!canQuery:Boolean!canQueryAudit:Boolean!canQueryBillingInfo:Boolean!canQueryInvoices:Boolean!@deprecated(reason:"Use canQueryBillingInfo instead")canQueryMembers:Boolean!canQueryStats:Boolean!canReadTickets:Boolean!canRemoveMembers:Boolean!canSetConstrainedPlan:Boolean!canUpdateBillingInfo:Boolean!canUpdateMetadata:Boolean!}enum AccountState{ACTIVE CLOSED UNKNOWN UNPROVISIONED}"""A time window with a specified granularity over a given account.""" type AccountStatsWindow{billingUsageStats("""Filter to select what rows to return.""" filter:AccountBillingUsageStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountBillingUsageStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountBillingUsageStatsOrderBySpec!]):[AccountBillingUsageStatsRecord!]!edgeServerInfos("""Filter to select what rows to return.""" filter:AccountEdgeServerInfosFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountEdgeServerInfos by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountEdgeServerInfosOrderBySpec!]):[AccountEdgeServerInfosRecord!]!errorStats("""Filter to select what rows to return.""" filter:AccountErrorStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountErrorStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountErrorStatsOrderBySpec!]):[AccountErrorStatsRecord!]!fieldExecutions("""Filter to select what rows to return.""" filter:AccountFieldExecutionsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountFieldExecutions by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountFieldExecutionsOrderBySpec!]):[AccountFieldExecutionsRecord!]!fieldLatencies("""Filter to select what rows to return.""" filter:AccountFieldLatenciesFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountFieldLatencies by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountFieldLatenciesOrderBySpec!]):[AccountFieldLatenciesRecord!]!fieldUsage("""Filter to select what rows to return.""" filter:AccountFieldUsageFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountFieldUsage by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountFieldUsageOrderBySpec!]):[AccountFieldUsageRecord!]!operationCheckStats("""Filter to select what rows to return.""" filter:AccountOperationCheckStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountOperationCheckStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountOperationCheckStatsOrderBySpec!]):[AccountOperationCheckStatsRecord!]!queryStats("""Filter to select what rows to return.""" filter:AccountQueryStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountQueryStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountQueryStatsOrderBySpec!]):[AccountQueryStatsRecord!]!"""From field rounded down to the nearest resolution.""" roundedDownFrom:Timestamp!"""To field rounded up to the nearest resolution.""" roundedUpTo:Timestamp!tracePathErrorsRefs("""Filter to select what rows to return.""" filter:AccountTracePathErrorsRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountTracePathErrorsRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountTracePathErrorsRefsOrderBySpec!]):[AccountTracePathErrorsRefsRecord!]!traceRefs("""Filter to select what rows to return.""" filter:AccountTraceRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order AccountTraceRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[AccountTraceRefsOrderBySpec!]):[AccountTraceRefsRecord!]!}"""Columns of AccountTracePathErrorsRefs.""" enum AccountTracePathErrorsRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET ERRORS_COUNT_IN_PATH ERRORS_COUNT_IN_TRACE ERROR_MESSAGE PATH QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP TRACE_HTTP_STATUS_CODE TRACE_ID TRACE_SIZE_BYTES TRACE_STARTS_AT}type AccountTracePathErrorsRefsDimensions{clientName:String clientVersion:String durationBucket:Int errorMessage:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID traceHttpStatusCode:Int traceId:ID traceStartsAt:Timestamp}"""Filter for data in AccountTracePathErrorsRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountTracePathErrorsRefsFilter{and:[AccountTracePathErrorsRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int """Selects rows whose errorMessage dimension equals the given value if not null. To query for the null value, use {in: {errorMessage: [null]}} instead.""" errorMessage:String in:AccountTracePathErrorsRefsFilterIn not:AccountTracePathErrorsRefsFilter or:[AccountTracePathErrorsRefsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose traceHttpStatusCode dimension equals the given value if not null. To query for the null value, use {in: {traceHttpStatusCode: [null]}} instead.""" traceHttpStatusCode:Int """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in AccountTracePathErrorsRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountTracePathErrorsRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose errorMessage dimension is in the given list. A null value in the list means a row with null for that dimension.""" errorMessage:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose traceHttpStatusCode dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceHttpStatusCode:[Int]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type AccountTracePathErrorsRefsMetrics{errorsCountInPath:Long!errorsCountInTrace:Long!traceSizeBytes:Long!}input AccountTracePathErrorsRefsOrderBySpec{column:AccountTracePathErrorsRefsColumn!direction:Ordering!}type AccountTracePathErrorsRefsRecord{"""Dimensions of AccountTracePathErrorsRefs that can be grouped by.""" groupBy:AccountTracePathErrorsRefsDimensions!"""Metrics of AccountTracePathErrorsRefs that can be aggregated over.""" metrics:AccountTracePathErrorsRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of AccountTraceRefs.""" enum AccountTraceRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET OPERATION_SUBTYPE OPERATION_TYPE QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP TRACE_COUNT TRACE_ID}type AccountTraceRefsDimensions{clientName:String clientVersion:String durationBucket:Int generatedTraceId:String operationSubtype:String operationType:String queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String serviceId:ID traceId:ID}"""Filter for data in AccountTraceRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input AccountTraceRefsFilter{and:[AccountTraceRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int in:AccountTraceRefsFilterIn not:AccountTraceRefsFilter """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[AccountTraceRefsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in AccountTraceRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input AccountTraceRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type AccountTraceRefsMetrics{traceCount:Long!}input AccountTraceRefsOrderBySpec{column:AccountTraceRefsColumn!direction:Ordering!}type AccountTraceRefsRecord{"""Dimensions of AccountTraceRefs that can be grouped by.""" groupBy:AccountTraceRefsDimensions!"""Metrics of AccountTraceRefs that can be aggregated over.""" metrics:AccountTraceRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}""" Note that this is a federation value type""" type Actor{actorId:ID!type:ActorType!}"""Input type to provide when specifying an `Actor` in operation arguments. See also the `Actor` object type.""" input ActorInput{actorId:ID!type:ActorType!}enum ActorType{ANONYMOUS_USER BACKFILL CRON GRAPH INTERNAL_IDENTITY SYNCHRONIZATION SYSTEM USER}union AddOperationCollectionEntriesResult=AddOperationCollectionEntriesSuccess|PermissionError|ValidationError type AddOperationCollectionEntriesSuccess{operationCollectionEntries:[OperationCollectionEntry!]!}union AddOperationCollectionEntryResult=OperationCollectionEntry|PermissionError|ValidationError union AddOperationCollectionToVariantResult=GraphVariant|InvalidTarget|PermissionError|ValidationError input AddOperationInput{"""The operation's fields.""" document:OperationCollectionEntryStateInput!"""The operation's name.""" name:String!}type AdminUser{created_at:Timestamp!email:String!id:ID!team:String!}type AffectedClient{"""ID, often the name, of the client set by the user and reported alongside metrics""" clientReferenceId:ID@deprecated(reason:"Unsupported.")"""version of the client set by the user and reported alongside metrics""" clientVersion:String@deprecated(reason:"Unsupported.")}type AffectedQuery{"""If the operation would be approved if the check ran again. Returns null if queried from SchemaDiff.changes.affectedQueries.alreadyApproved""" alreadyApproved:Boolean """If the operation would be ignored if the check ran again""" alreadyIgnored:Boolean """List of changes affecting this query. Returns null if queried from SchemaDiff.changes.affectedQueries.changes""" changes:[ChangeOnOperation!]"""Name to display to the user for the operation""" displayName:String id:ID!"""Determines if this query validates against the proposed schema""" isValid:Boolean """Whether this operation was ignored and its severity was downgraded for that reason""" markedAsIgnored:Boolean """Whether the changes were marked as safe and its severity was downgraded for that reason""" markedAsSafe:Boolean """Name provided for the operation, which can be empty string if it is an anonymous operation""" name:String """First 128 characters of query signature for display""" signature:String}"""Represents an API key that's used to authenticate a +particular Apollo user or graph.""" interface ApiKey{"""The API key's ID.""" id:ID!"""The API key's name, for distinguishing it from other keys.""" keyName:String """The value of the API key. **This is a secret credential!**""" token:String!}type ApiKeyProvision{apiKey:ApiKey!created:Boolean!}enum AuditAction{BroadcastMessage CreateMessage EditMessage RecallMessage TestMessage UpdateMessageState}type AuditLog{action:String!changeLog:JSON channel:SlackCommunicationChannel createdAt:Timestamp!id:ID!message:Message slackMessageId:String userId:String!}type AuditLogExport{"""The list of actors to filter the audit export""" actors:[Identity!]bigqueryTriggeredAt:Timestamp """The time when the audit export was completed""" completedAt:Timestamp """The time when the audit export was reqeusted""" createdAt:Timestamp!"""List of URLs to download the audits for the requested range""" downloadUrls:[String!]exportedFiles:[String!]"""The starting point of audits to include in export""" from:Timestamp!"""The list of graphs to filter the audit export""" graphs:[Service!]"""The id for the audit export""" id:ID!"""The user that initiated the audit export""" requester:User """The status of the audit export""" status:AuditStatus!"""The end point of audits to include in export""" to:Timestamp!}type AuditLogExportMutation{cancel:Account delete:Account}enum AuditStatus{CANCELLED COMPLETED EXPIRED FAILED IN_PROGRESS QUEUED}type AvatarDeleteError{clientMessage:String!code:AvatarDeleteErrorCode!serverMessage:String!}enum AvatarDeleteErrorCode{SSO_USERS_CANNOT_DELETE_SELF_AVATAR}type AvatarUploadError{clientMessage:String!code:AvatarUploadErrorCode!serverMessage:String!}enum AvatarUploadErrorCode{SSO_USERS_CANNOT_UPLOAD_SELF_AVATAR}union AvatarUploadResult=AvatarUploadError|MediaUploadInfo scalar BigInt type BillableMetricStats{planThreshold:Int stats:[MetricStatWindow!]!}type BillingAddress{address1:String address2:String city:String country:String state:String zip:String}"""Billing address input""" input BillingAddressInput{address1:String!address2:String city:String!country:String!state:String!zip:String!}type BillingAdminQuery{"""Look up the current plan of an account by calling the grpc service""" currentPlanFromGrpc(internalAccountId:ID!):GQLBillingPlanFromGrpc}type BillingInfo{address:BillingAddress!cardType:String firstName:String lastFour:Int lastName:String month:Int name:String vatNumber:String year:Int}type BillingInsights{totalOperations:[BillingInsightsUsage!]!totalSampledOperations:[BillingInsightsUsage!]!}type BillingInsightsUsage{timestamp:Timestamp!totalOperationCount:Long!}enum BillingModel{REQUEST_BASED SEAT_BASED}type BillingMonth{end:Timestamp!requests:Long!start:Timestamp!}type BillingMutation{createSetupIntent(internalAccountId:ID!):SetupIntentResult endPaidUsageBasedPlan(internalAccountId:ID!):EndUsageBasedPlanResult reloadPlans:[BillingPlan!]!startFreeUsageBasedPlan(internalAccountId:ID!):StartUsageBasedPlanResult startUsageBasedPlan(internalAccountId:ID!paymentMethodId:String!):StartUsageBasedPlanResult syncAccountWithProviders(internalAccountId:ID!):SyncBillingAccountResult@deprecated updatePaymentMethod(internalAccountId:ID!paymentMethodId:String!):UpdatePaymentMethodResult}enum BillingPeriod{MONTHLY QUARTERLY SEMI_ANNUALLY YEARLY}type BillingPlan{addons:[BillingPlanAddon!]!billingModel:BillingModel!billingPeriod:BillingPeriod capabilities:BillingPlanCapabilities!@deprecated(reason:"capabilities have been flattened into the BillingPlan type")clientVersions:Boolean!clients:Boolean!contracts:Boolean!datadog:Boolean!description:String errors:Boolean!federation:Boolean!id:ID!isTrial:Boolean!kind:BillingPlanKind!launches:Boolean!maxAuditInDays:Int!maxRangeInDays:Int """The maximum number of days that checks stats will be stored""" maxRangeInDaysForChecks:Int maxRequestsPerMonth:Long metrics:Boolean!name:String!notifications:Boolean!operationRegistry:Boolean!persistedQueries:Boolean!"""The price of every seat""" pricePerSeatInUsdCents:Int """The price of subscribing to this plan with a quantity of 1 (currently always the case)""" pricePerUnitInUsdCents:Int!"""Whether the plan is accessible by all users in QueryRoot.allPlans, QueryRoot.plan, or AccountMutation.setPlan""" public:Boolean!ranges:[String!]!schemaValidation:Boolean!tier:BillingPlanTier!traces:Boolean!userRoles:Boolean!webhooks:Boolean!}type BillingPlanAddon{id:ID!pricePerUnitInUsdCents:Int!}type BillingPlanCapabilities{clientVersions:Boolean!clients:Boolean!contracts:Boolean!datadog:Boolean!errors:Boolean!federation:Boolean!launches:Boolean!maxAuditInDays:Int!maxRangeInDays:Int maxRangeInDaysForChecks:Int maxRequestsPerMonth:Long metrics:Boolean!notifications:Boolean!operationRegistry:Boolean!persistedQueries:Boolean!ranges:[String!]!schemaValidation:Boolean!traces:Boolean!userRoles:Boolean!webhooks:Boolean!}enum BillingPlanKind{COMMUNITY ENTERPRISE_INTERNAL ENTERPRISE_PAID ENTERPRISE_PILOT ENTERPRISE_TRIAL ONE_FREE ONE_PAID SERVERLESS SERVERLESS_FREE SERVERLESS_PAID STARTER TEAM_PAID TEAM_TRIAL UNKNOWN}enum BillingPlanKindV2{COMMUNITY ENTERPRISE_INTERNAL ENTERPRISE_PAID ENTERPRISE_PILOT ENTERPRISE_TRIAL ONE_FREE ONE_PAID SERVERLESS SERVERLESS_FREE SERVERLESS_PAID STARTER TEAM_PAID TEAM_TRIAL UNKNOWN}enum BillingPlanTier{COMMUNITY ENTERPRISE ONE TEAM UNKNOWN USAGE_BASED}enum BillingPlanTierV2{COMMUNITY ENTERPRISE ONE TEAM UNKNOWN USAGE_BASED}type BillingSubscription{activatedAt:Timestamp!addons:[BillingSubscriptionAddon!]!autoRenew:Boolean!canceledAt:Timestamp """Draft invoice for this subscription""" currentDraftInvoice:DraftInvoice currentPeriodEndsAt:Timestamp!currentPeriodStartedAt:Timestamp!expiresAt:Timestamp """Renewal grace time for updating seat count""" graceTimeForNextRenewal:Timestamp maxSelfHostedRequestsPerMonth:Int maxServerlessRequestsPerMonth:Int plan:BillingPlan!"""The price of every seat""" pricePerSeatInUsdCents:Int """The price of every unit in the subscription (hence multiplied by quantity to get to the basePriceInUsdCents)""" pricePerUnitInUsdCents:Int!quantity:Int!"""Total price of the subscription when it next renews, including add-ons (such as seats)""" renewalTotalPriceInUsdCents:Long!state:SubscriptionState!"""When this subscription's trial period expires (if it is a trial). Not the same as the +subscription's Recurly expiration).""" trialExpiresAt:Timestamp uuid:ID!}type BillingSubscriptionAddon{id:ID!pricePerUnitInUsdCents:Int!quantity:Int!}type BillingTier{searchAccounts(search:String):[Account!]!tier:BillingPlanTier!}"""Columns of BillingUsageStats.""" enum BillingUsageStatsColumn{ACCOUNT_ID AGENT_VERSION GRAPH_DEPLOYMENT_TYPE OPERATION_COUNT OPERATION_COUNT_PROVIDED_EXPLICITLY OPERATION_SUBTYPE OPERATION_TYPE SCHEMA_TAG SERVICE_ID TIMESTAMP}type BillingUsageStatsDimensions{accountId:ID agentVersion:String graphDeploymentType:String operationCountProvidedExplicitly:String operationSubtype:String operationType:String schemaTag:String serviceId:ID}"""Filter for data in BillingUsageStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input BillingUsageStatsFilter{"""Selects rows whose accountId dimension equals the given value if not null. To query for the null value, use {in: {accountId: [null]}} instead.""" accountId:ID """Selects rows whose agentVersion dimension equals the given value if not null. To query for the null value, use {in: {agentVersion: [null]}} instead.""" agentVersion:String and:[BillingUsageStatsFilter!]"""Selects rows whose graphDeploymentType dimension equals the given value if not null. To query for the null value, use {in: {graphDeploymentType: [null]}} instead.""" graphDeploymentType:String in:BillingUsageStatsFilterIn not:BillingUsageStatsFilter """Selects rows whose operationCountProvidedExplicitly dimension equals the given value if not null. To query for the null value, use {in: {operationCountProvidedExplicitly: [null]}} instead.""" operationCountProvidedExplicitly:String """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[BillingUsageStatsFilter!]"""Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in BillingUsageStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input BillingUsageStatsFilterIn{"""Selects rows whose accountId dimension is in the given list. A null value in the list means a row with null for that dimension.""" accountId:[ID]"""Selects rows whose agentVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" agentVersion:[String]"""Selects rows whose graphDeploymentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" graphDeploymentType:[String]"""Selects rows whose operationCountProvidedExplicitly dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationCountProvidedExplicitly:[String]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type BillingUsageStatsMetrics{operationCount:Long!}input BillingUsageStatsOrderBySpec{column:BillingUsageStatsColumn!direction:Ordering!}type BillingUsageStatsRecord{"""Dimensions of BillingUsageStats that can be grouped by.""" groupBy:BillingUsageStatsDimensions!"""Metrics of BillingUsageStats that can be aggregated over.""" metrics:BillingUsageStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}enum BillingUsageStatsWindowSize{DAY HOUR MONTH NONE}"""A blob (base64'ed in JSON & GraphQL)""" scalar Blob """The building of a Studio variant (including supergraph composition and any contract filtering) as part of a launch.""" type Build{"""The inputs provided to the build, including subgraph and contract details.""" input:BuildInput!"""The result of the build. This value is null until the build completes.""" result:BuildResult}interface BuildCheckError{"""The step at which the build failed.""" failedStep:String """A human-readable message describing the error.""" message:String!}interface BuildCheckFailed implements BuildCheckResult{buildInputs:BuildInputs!buildPipelineTrack:BuildPipelineTrack!"""A list of errors generated by this build.""" errors:[BuildCheckError!]!id:ID!passed:Boolean!workflowTask:BuildCheckTask!}interface BuildCheckPassed implements BuildCheckResult{buildInputs:BuildInputs!buildPipelineTrack:BuildPipelineTrack!id:ID!passed:Boolean!"""The SHA-256 of the supergraph schema document generated by this build.""" supergraphSchemaHash:SHA256!workflowTask:BuildCheckTask!}interface BuildCheckResult{"""The input to the build task.""" buildInputs:BuildInputs!""" +The build pipeline track of the build task, which indicates what gateway/router versions the + build pipeline is intended to support (and accordingly controls the version of code).""" buildPipelineTrack:BuildPipelineTrack!id:ID!"""Whether the build task passed or failed.""" passed:Boolean!"""The workflow build task that generated this result.""" workflowTask:BuildCheckTask!}interface BuildCheckTask implements CheckWorkflowTask{"""The result of the build check. This will be null when the task is initializing or running.""" buildResult:BuildCheckResult completedAt:Timestamp createdAt:Timestamp!id:ID!"""The build input change proposed for this check workflow. Note that for triggered downstream + workflows, this is not the upstream variant's proposed change, but the changes for the downstream +variant that are derived from the upstream workflow's results (e.g. the input supergraph schema).""" proposedBuildInputChanges:ProposedBuildInputChanges!status:CheckWorkflowTaskStatus!targetURL:String workflow:CheckWorkflow!}type BuildConfig{buildPipelineTrack:BuildPipelineTrack!tagInApiSchema:Boolean!}"""Exactly one of the inputs must be set in a build configuration. +Which build configuration type is set will determine the type +of variant that is created. Existing variants of a given type +cannot be updated in-place to be of a different type.""" input BuildConfigInput{"""This list will contain any directives that should get passed through to the api schema from the core schema. Anything included in this list will appear in the consumer facing schema""" apiDirectivePassThrough:[String!]!"""if buildPipelineTrack is null use the graph default""" buildPipelineTrack:BuildPipelineTrack composition:CompositionConfigInput contract:ContractConfigInput}"""A single error that occurred during the failed execution of a build.""" type BuildError{code:String locations:[SourceLocation!]!message:String!}"""Contains the details of an executed build that failed.""" type BuildFailure{"""A list of all errors that occurred during the failed build.""" errorMessages:[BuildError!]!}union BuildInput=CompositionBuildInput|FilterBuildInput union BuildInputs=CompositionBuildInputs|FilterBuildInputs enum BuildPipelineTrack{FED_1_0 FED_1_1 FED_2_0 FED_2_1 FED_2_3 FED_2_4}union BuildResult=BuildFailure|BuildSuccess """Contains the details of an executed build that succeeded.""" type BuildSuccess{"""Contains the supergraph and API schemas created by composition.""" coreSchema:CoreSchema!}enum CacheControlScope{PRIVATE PUBLIC}enum CacheScope{PRIVATE PUBLIC UNKNOWN UNRECOGNIZED}type CannotDeleteLinkedPersistedQueryListError implements Error{message:String!}"""A single change that was made to a definition in a schema.""" type Change{affectedQueries:[AffectedQuery!]"""Target arg of change made.""" argNode:NamedIntrospectionArg """Indication of the category of the change (e.g. addition, removal, edit).""" category:ChangeCategory!"""Node related to the top level node that was changed, such as a field in an object, +a value in an enum or the object of an interface.""" childNode:NamedIntrospectionValue """Indicates the type of change that was made, and to what (e.g., 'TYPE_REMOVED').""" code:String!"""A human-readable description of the change.""" description:String!"""Top level node affected by the change.""" parentNode:NamedIntrospectionType """The severity of the change (e.g., `FAILURE` or `NOTICE`)""" severity:ChangeSeverity!"""Indication of the success of the overall change, either failure, warning, or notice.""" type:ChangeType!@deprecated(reason:"use severity instead")}"""Defines a set of categories that a schema change +can be grouped by.""" enum ChangeCategory{ADDITION DEPRECATION EDIT REMOVAL}"""These schema change codes represent all of the possible changes that can +occur during the schema diff algorithm.""" enum ChangeCode{"""Type of the argument was changed.""" ARG_CHANGED_TYPE """Argument was changed from nullable to non-nullable.""" ARG_CHANGED_TYPE_OPTIONAL_TO_REQUIRED """Default value added or changed for the argument.""" ARG_DEFAULT_VALUE_CHANGE """Description was added, removed, or updated for argument.""" ARG_DESCRIPTION_CHANGE """Argument to a field was removed.""" ARG_REMOVED """Argument to the directive was removed.""" DIRECTIVE_ARG_REMOVED """Location of the directive was removed.""" DIRECTIVE_LOCATION_REMOVED """Directive was removed.""" DIRECTIVE_REMOVED """Repeatable flag was removed for directive.""" DIRECTIVE_REPEATABLE_REMOVED """Enum was deprecated.""" ENUM_DEPRECATED """Reason for enum deprecation changed.""" ENUM_DEPRECATED_REASON_CHANGE """Enum deprecation was removed.""" ENUM_DEPRECATION_REMOVED """Description was added, removed, or updated for enum value.""" ENUM_VALUE_DESCRIPTION_CHANGE """Field was added to the type.""" FIELD_ADDED """Return type for the field was changed.""" FIELD_CHANGED_TYPE """Field was deprecated.""" FIELD_DEPRECATED """Reason for field deprecation changed.""" FIELD_DEPRECATED_REASON_CHANGE """Field deprecation removed.""" FIELD_DEPRECATION_REMOVED """Description was added, removed, or updated for field.""" FIELD_DESCRIPTION_CHANGE """Type of the field in the input object was changed.""" FIELD_ON_INPUT_OBJECT_CHANGED_TYPE """Field was removed from the type.""" FIELD_REMOVED """Field was removed from the input object.""" FIELD_REMOVED_FROM_INPUT_OBJECT """Non-nullable field was added to the input object. (Deprecated.)""" NON_NULLABLE_FIELD_ADDED_TO_INPUT_OBJECT """Nullable field was added to the input type. (Deprecated.)""" NULLABLE_FIELD_ADDED_TO_INPUT_OBJECT """Nullable argument was added to the field.""" OPTIONAL_ARG_ADDED """Optional field was added to the input type.""" OPTIONAL_FIELD_ADDED_TO_INPUT_OBJECT """Non-nullable argument was added to the field.""" REQUIRED_ARG_ADDED """Non-nullable argument added to directive.""" REQUIRED_DIRECTIVE_ARG_ADDED """Required field was added to the input object.""" REQUIRED_FIELD_ADDED_TO_INPUT_OBJECT """Type was added to the schema.""" TYPE_ADDED """Type now implements the interface.""" TYPE_ADDED_TO_INTERFACE """A new value was added to the enum.""" TYPE_ADDED_TO_UNION """Type was changed from one kind to another. +Ex: scalar to object or enum to union.""" TYPE_CHANGED_KIND """Description was added, removed, or updated for type.""" TYPE_DESCRIPTION_CHANGE """Type (object or scalar) was removed from the schema.""" TYPE_REMOVED """Type no longer implements the interface.""" TYPE_REMOVED_FROM_INTERFACE """Type is no longer included in the union.""" TYPE_REMOVED_FROM_UNION """A new value was added to the enum.""" VALUE_ADDED_TO_ENUM """Value was removed from the enum.""" VALUE_REMOVED_FROM_ENUM}"""Represents the tuple of static information +about a particular kind of schema change.""" type ChangeDefinition{category:ChangeCategory!code:ChangeCode!defaultSeverity:ChangeSeverity!}"""Info about a change in the context of an operation it affects""" type ChangeOnOperation{"""Human-readable explanation of the impact of this change on the operation""" impact:String """The semantic info about this change, i.e. info about the change that doesn't depend on the operation""" semanticChange:SemanticChange!}enum ChangeSeverity{FAILURE NOTICE}"""Summary of the changes for a schema diff, computed by placing the changes into categories and then counting the size of each category. This categorization can be done in different ways, and accordingly there are multiple fields here for each type of categorization. @@ -321,1130 +34,153 @@ Note that if an object or interface field is added/removed, there won't be any a changes generated for its arguments or @deprecated usages. If an enum type is added/removed, there will be addition/removal changes generated for its values, but not for those values' @deprecated usages. Description changes won't be generated for a schema element if that element (or an -ancestor) was added/removed. -""" -type ChangeSummary { - """ - Counts for changes to non-field aspects of objects, input objects, and interfaces, - and all aspects of enums, unions, and scalars. - """ - type: TypeChangeSummaryCounts! - """Counts for changes to fields of objects, input objects, and interfaces.""" - field: FieldChangeSummaryCounts! - """Counts for all changes.""" - total: TotalChangeSummaryCounts! -} - -enum ChangeType { - FAILURE - NOTICE -} - -"""Filter options available when listing checks.""" -input CheckFilterInput { - authors: [String!] - branches: [String!] - subgraphs: [String!] - status: CheckFilterInputStatusOption - variants: [String!] -} - -"""Options for filtering CheckWorkflows by status""" -enum CheckFilterInputStatusOption { - FAILED - PENDING - PASSED -} - -"""The result of performing a subgraph check, including all steps.""" -type CheckPartialSchemaResult { - """Result of compostion run as part of the overall subgraph check.""" - compositionValidationResult: CompositionCheckResult! - """Overall result of the check. This will be null if composition validation was unsuccessful.""" - checkSchemaResult: CheckSchemaResult - """Whether any modifications were detected in the composed core schema.""" - coreSchemaModified: Boolean! -} - -"""The possible results of a request to initiate schema checks (either a success object or one of multiple `Error` objects).""" -union CheckRequestResult = CheckRequestSuccess | InvalidInputError | PermissionError | PlanError - -"""Represents a successfully initiated execution of schema checks. This does not indicate the _result_ of the checks, only that they were initiated.""" -type CheckRequestSuccess { - """The URL of the Apollo Studio page for this check.""" - targetURL: String! - """The unique ID for this execution of schema checks.""" - workflowID: ID! -} - -"""Input type to provide when running schema checks asynchronously for a non-federated graph.""" -input CheckSchemaAsyncInput { - """Configuration options for the check execution.""" - config: HistoricQueryParametersInput! - """The GitHub context to associate with the check.""" - gitContext: GitContextInput! - graphRef: ID @deprecated(reason: "This field is not required to be sent anymore") - """The URL of the GraphQL endpoint that Apollo Sandbox introspected to obtain the proposed schema. Required if `isSandbox` is `true`.""" - introspectionEndpoint: String - """If `true`, the check was initiated by Apollo Sandbox.""" - isSandbox: Boolean! - proposedSchemaDocument: String -} - -"""The result of running schema checks on a graph variant.""" -type CheckSchemaResult { - """The schema diff and affected operations generated by the schema check.""" - diffToPrevious: SchemaDiff! - """The URL to view the schema diff in Studio.""" - targetUrl: String -} - -type CheckWorkflow { - """ - The variant provided as a base to check against. Only the differences from the - base schema will be tested in operations checks. - """ - baseVariant: GraphVariant - """The timestamp when the check workflow completed.""" - completedAt: Timestamp - id: ID! - """The name of the implementing service that was responsible for triggering the validation.""" - implementingServiceName: String - """The timestamp when the check workflow started.""" - startedAt: Timestamp - """Overall status of the workflow, based on the underlying task statuses.""" - status: CheckWorkflowStatus! - """The set of check tasks associated with this workflow, e.g. composition, operations, etc.""" - tasks: [CheckWorkflowTask!]! - """Contextual parameters supplied by the runtime environment where the check was run.""" - gitContext: GitContext - createdAt: Timestamp! -} - -enum CheckWorkflowStatus { - FAILED - PASSED - PENDING -} - -interface CheckWorkflowTask { - completedAt: Timestamp - createdAt: Timestamp! - id: ID! - """ - The status of this task. All tasks start with the PENDING status while initializing. If any - prerequisite task fails, then the task status becomes BLOCKED. Otherwise, if all prerequisite - tasks pass, then this task runs (still having the PENDING status). Once the task completes, the - task status will become either PASSED or FAILED. - """ - status: CheckWorkflowTaskStatus! - """A studio UI url to view the details of this check workflow task""" - targetURL: String - """The workflow that this task belongs to.""" - workflow: CheckWorkflow! -} - -enum CheckWorkflowTaskStatus { - BLOCKED - FAILED - PASSED - PENDING -} - -"""Filter options to exclude by client reference ID, client name, and client version.""" -input ClientInfoFilter { - name: String! - """Ignored""" - referenceID: ID - version: String -} - -"""The result of supergraph composition that Studio performed in response to an attempted deletion of a subgraph.""" -type SubgraphRemovalResult { - """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.""" - errors: [SchemaCompositionError]! - """Whether this composition result resulted in a new supergraph schema passed to Uplink (`true`), or the build failed for any reason (`false`). For dry runs, this value is `true` if Uplink _would have_ been updated with the result.""" - updatedGateway: Boolean! -} - -"""The result of supergraph composition that Studio performed in response to an attempted publish of a subgraph.""" -type SubgraphPublicationResult { - """The generated composition config, or null if any errors occurred.""" - compositionConfig: CompositionConfig - """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.""" - errors: [SchemaCompositionError]! - """Whether this composition result resulted in a new supergraph schema passed to Uplink (`true`), or the build failed for any reason (`false`). For dry runs, this value is `true` if Uplink _would have_ been updated with the result.""" - updatedGateway: Boolean! - """Whether a new subgraph was created as part of this publish.""" - wasCreated: Boolean! - """The URL of the Studio page for this update's associated launch, if available.""" - launchUrl: String - """Human-readable text describing the launch result of the subgraph publish.""" - launchCliCopy: String -} - -type CompositionBuildInput { - subgraphs: [Subgraph!]! - version: String -} - -type CompositionCheckTask implements CheckWorkflowTask { - completedAt: Timestamp - """ - Whether the build's output supergraph core schema differs from that of the active publish for - the workflow's variant at the time this field executed (NOT at the time the check workflow - started). - """ - coreSchemaModified: Boolean! - createdAt: Timestamp! - id: ID! - status: CheckWorkflowTaskStatus! - targetURL: String - workflow: CheckWorkflow! - """ - An old version of buildResult that returns a very old GraphQL type that generally should be - avoided. This field will soon be deprecated. - """ - result: CompositionResult -} - -"""Composition configuration exposed to the gateway.""" -type CompositionConfig { - """The resulting API schema's SHA256 hash, represented as a hexadecimal string.""" - schemaHash: String! -} - -"""The result of supergraph composition that Studio performed.""" -type CompositionPublishResult implements CompositionResult { - """The unique ID for this instance of composition.""" - graphCompositionID: ID! - """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.""" - errors: [SchemaCompositionError!]! - """The supergraph SDL generated by composition.""" - supergraphSdl: GraphQLDocument -} - -"""The result of supergraph composition performed by Apollo Studio, often as the result of a subgraph check or subgraph publish. See individual implementations for more details.""" -interface CompositionResult { - """The unique ID for this instance of composition.""" - graphCompositionID: ID! - """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.""" - errors: [SchemaCompositionError!]! - """Supergraph SDL generated by composition.""" - supergraphSdl: GraphQLDocument -} - -"""The result of composition validation run by Apollo Studio during a subgraph check.""" -type CompositionCheckResult implements CompositionResult { - """The unique ID for this instance of composition.""" - graphCompositionID: ID! - """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.""" - errors: [SchemaCompositionError!]! - """The supergraph schema document generated by composition.""" - supergraphSdl: GraphQLDocument -} - -type ContractVariantUpsertErrors { - """A list of all errors that occurred when attempting to create or update a contract variant.""" - errorMessages: [String!]! -} - -union ContractVariantUpsertResult = ContractVariantUpsertErrors | ContractVariantUpsertSuccess - -type ContractVariantUpsertSuccess { - """The updated contract variant""" - contractVariant: GraphVariant! - """Human-readable text describing the launch result of the contract update.""" - launchCliCopy: String - """The URL of the Studio page for this update's associated launch, if available.""" - launchUrl: String -} - -"""Contains the supergraph and API schemas generated by composition.""" -type CoreSchema { - """The composed API schema document.""" - apiDocument: GraphQLDocument! - """The composed supergraph schema document.""" - coreDocument: GraphQLDocument! - """The supergraph schema document's SHA256 hash, represented as a hexadecimal string.""" - coreHash: String! -} - -union CreateOperationCollectionResult = OperationCollection | PermissionError | ValidationError - -""" -Implement the DateTime scalar - -The input/output is a string in RFC3339 format. -""" -scalar DateTime @specifiedBy(url: "https://datatracker.ietf.org/doc/html/rfc3339") - -union DeleteOperationCollectionResult = PermissionError - -"""The result of attempting to delete a graph variant.""" -type GraphVariantDeletionResult { - """Whether the variant was deleted or not.""" - deleted: Boolean! -} - -"""The result of a schema checks workflow that was run on a downstream variant as part of checks for the corresponding source variant. Most commonly, these downstream checks are [contract checks](https://www.apollographql.com/docs/studio/contracts#contract-checks).""" -type DownstreamCheckResult { - """Whether the downstream check workflow blocks the upstream check workflow from completing.""" - blocking: Boolean! - """The ID of the graph that the downstream variant belongs to.""" - downstreamGraphID: String! - """The name of the downstream variant.""" - downstreamVariantName: String! - """ - The downstream checks workflow that this result corresponds to. This value is null - if the workflow hasn't been initialized yet, or if the downstream variant was deleted. - """ - downstreamWorkflow: CheckWorkflow - """ - Whether the downstream check workflow is causing the upstream check workflow to fail. This occurs - when the downstream check workflow is both blocking and failing. This may be null while the - downstream check workflow is pending. - """ - failsUpstreamWorkflow: Boolean - """The downstream checks task that this result corresponds to.""" - workflowTask: DownstreamCheckTask! -} - -type DownstreamCheckTask implements CheckWorkflowTask { - completedAt: Timestamp - createdAt: Timestamp! - id: ID! - """ - A list of results for all downstream checks triggered as part of the source variant's checks workflow. - This value is null if the task hasn't been initialized yet, or if the build task fails (the build task is a - prerequisite to this task). This value is _not_ null _while_ the task is running. The returned list is empty - if the source variant has no downstream variants. - """ - results: [DownstreamCheckResult!] - status: CheckWorkflowTaskStatus! - targetURL: String - workflow: CheckWorkflow! -} - -interface Error { - message: String! -} - -"""A single subgraph in a supergraph. Every supergraph managed by Apollo Studio includes at least one subgraph. See https://www.apollographql.com/docs/federation/managed-federation/overview/ for more information.""" -type GraphVariantSubgraph { - """The subgraph's name.""" - name: String! - """The URL of the subgraph's GraphQL endpoint.""" - url: String - """The current user-provided version/edition of the subgraph. Typically a Git SHA or docker image ID.""" - revision: String! - """The ID of the graph this subgraph belongs to.""" - graphID: String! - """The name of the graph variant this subgraph belongs to.""" - graphVariant: String! - """The subgraph's current active schema, used in supergraph composition for the the associated variant.""" - activePartialSchema: SubgraphSchema! - """The timestamp when the subgraph was created.""" - createdAt: Timestamp! - """The timestamp when the subgraph was most recently updated.""" - updatedAt: Timestamp! -} - -"""Container for a list of subgraphs composing a supergraph.""" -type GraphVariantSubgraphs { - """The list of underlying subgraphs.""" - services: [GraphVariantSubgraph!]! -} - -"""Counts of changes at the field level, including objects, interfaces, and input fields.""" -type FieldChangeSummaryCounts { - """Number of changes that are additions of fields to object, interface, and input types.""" - additions: Int! - """Number of changes that are removals of fields from object, interface, and input types.""" - removals: Int! - """ - Number of changes that are field edits. This includes fields changing type and any field - deprecation and description changes, but also includes any argument changes and any input object - field changes. - """ - edits: Int! -} - -"""Inputs provided to the build for a contract variant, which filters types and fields from a source variant's schema.""" -type FilterBuildInput { - """Schema filtering rules for the build, such as tags to include or exclude from the source variant schema.""" - filterConfig: FilterConfig! - """The source variant schema document's SHA256 hash, represented as a hexadecimal string.""" - schemaHash: String! -} - -type FilterCheckTask implements CheckWorkflowTask { - completedAt: Timestamp - createdAt: Timestamp! - id: ID! - status: CheckWorkflowTaskStatus! - targetURL: String - workflow: CheckWorkflow! -} - -"""The filter configuration used to build a contract schema. The configuration consists of lists of tags for schema elements to include or exclude in the resulting schema.""" -type FilterConfig { - """Tags of schema elements to exclude from the contract schema.""" - exclude: [String!]! - """Tags of schema elements to include in the contract schema.""" - include: [String!]! -} - -input FilterConfigInput { - """A list of tags for schema elements to exclude from the resulting contract schema.""" - exclude: [String!]! - """ - Whether to hide unreachable objects, interfaces, unions, inputs, enums and scalars from - the resulting contract schema. Defaults to `false`. - """ - hideUnreachableTypes: Boolean! = false - """A list of tags for schema elements to include in the resulting contract schema.""" - include: [String!]! -} - -type GitContext { - commit: ID -} - -"""Input type to provide when specifying the Git context for a run of schema checks.""" -input GitContextInput { - """The Git repository branch used in the check.""" - branch: String - """The ID of the Git commit used in the check.""" - commit: ID - """The username of the user who created the Git commit used in the check.""" - committer: String - """The commit message of the Git commit used in the check.""" - message: String - """The Git repository's remote URL.""" - remoteUrl: String -} - -""" -Represents a graph API key, which has permissions scoped to a -user role for a single Apollo graph. -""" -type GraphApiKey implements ApiKey { - """The timestamp when the API key was created.""" - createdAt: Timestamp! - """Details of the user or graph that created the API key.""" - createdBy: Identity - """The API key's ID.""" - id: ID! - """The API key's name, for distinguishing it from other keys.""" - keyName: String - """The permission level assigned to the API key upon creation.""" - role: UserPermission! - """The value of the API key. **This is a secret credential!**""" - token: String! -} - -"""A union of all containers that can comprise the components of a Studio graph""" -union GraphImplementors = GraphVariantSubgraphs - -"""A GraphQL document, such as the definition of an operation or schema.""" -scalar GraphQLDocument - -"""A graph variant""" -type GraphVariant { - """The variant's global identifier in the form `graphID@variant`.""" - id: ID! - router: Router - """The filter configuration used to build a contract schema. The configuration consists of lists of tags for schema elements to include or exclude in the resulting schema.""" - contractFilterConfig: FilterConfig - """ - A human-readable description of the filter configuration of this contract variant, or null if this isn't a contract - variant. - """ - contractFilterConfigDescription: String - """The graph that this variant belongs to.""" - graph: Graph! - """Latest approved launch for the variant, and what is served through Uplink.""" - latestApprovedLaunch: Launch - """Latest launch for the variant, whether successful or not.""" - latestLaunch: Launch - """The variant's name (e.g., `staging`).""" - name: String! - """Which permissions the current user has for interacting with this variant""" - permissions: GraphVariantPermissions! - readme: Readme! - """The variant this variant is derived from. This property currently only exists on contract variants.""" - sourceVariant: GraphVariant - """A list of the saved [operation collections](https://www.apollographql.com/docs/studio/explorer/operation-collections/) associated with this variant.""" - operationCollections: [OperationCollection!]! - """The URL of the variant's GraphQL endpoint for query and mutation operations. For subscription operations, use `subscriptionUrl`.""" - url: String - """The URL of the variant's GraphQL endpoint for subscription operations.""" - subscriptionUrl: String - """The details of the variant's most recent publication.""" - latestPublication: SchemaPublication - """A list of the subgraphs included in this variant. This value is null for non-federated variants. Set `includeDeleted` to `true` to include deleted subgraphs.""" - subgraphs(includeDeleted: Boolean! = false): [GraphVariantSubgraph!] - """Returns the details of the subgraph with the provided `name`, or null if this variant doesn't include a subgraph with that name.""" - subgraph(name: ID!): GraphVariantSubgraph -} - -"""Result of looking up a variant by ref""" -union GraphVariantLookup = GraphVariant | InvalidRefFormat - -"""Modifies a variant of a graph, also called a schema tag in parts of our product.""" -type GraphVariantMutation { - """ - _Asynchronously_ kicks off operation checks for a proposed non-federated - schema change against its associated graph. - - Returns a `CheckRequestSuccess` object with a workflow ID that you can use - to check status, or an error object if the checks workflow failed to start. - """ - submitCheckSchemaAsync(input: CheckSchemaAsyncInput!): CheckRequestResult! - """ - _Asynchronously_ kicks off composition and operation checks for a proposed subgraph schema change against its associated supergraph. - - Returns a `CheckRequestSuccess` object with a workflow ID that you can use - to check status, or an error object if the checks workflow failed to start. - """ - submitSubgraphCheckAsync(input: SubgraphCheckAsyncInput!): CheckRequestResult! - """Updates the [README](https://www.apollographql.com/docs/studio/org/graphs/#the-readme-page) of this variant.""" - updateVariantReadme( - """The full new text of the README, as a Markdown-formatted string.""" - readme: String! - ): GraphVariant - """Delete the variant.""" - delete: GraphVariantDeletionResult! -} - -"""Individual permissions for the current user when interacting with a particular Studio graph variant.""" -type GraphVariantPermissions { - """Whether the currently authenticated user is permitted to manage/update this variant's build configuration (e.g., build pipeline version).""" - canManageBuildConfig: Boolean! - """Whether the currently authenticated user is permitted to manage/update cloud routers""" - canManageCloudRouter: Boolean! - """Whether the currently authenticated user is permitted to update variant-level settings for the Apollo Studio Explorer.""" - canManageExplorerSettings: Boolean! - """Whether the currently authenticated user is permitted to publish schemas to this variant.""" - canPushSchemas: Boolean! - """Whether the currently authenticated user is permitted to view this variant's build configuration details (e.g., build pipeline version).""" - canQueryBuildConfig: Boolean! - """Whether the currently authenticated user is permitted to view details regarding cloud routers""" - canQueryCloudRouter: Boolean! - """Whether the currently authenticated user is permitted to view cloud router logs""" - canQueryCloudRouterLogs: Boolean! - """Whether the currently authenticated user is permitted to download schemas associated to this variant.""" - canQuerySchemas: Boolean! - """Whether the currently authenticated user is permitted to update the README for this variant.""" - canUpdateVariantReadme: Boolean! - canCreateCollectionInVariant: Boolean! - canShareCollectionInVariant: Boolean! -} - -input HistoricQueryParameters { - from: String = "-86400" - to: String = "0" - """Minimum number of requests within the window for a query to be considered.""" - queryCountThreshold: Int = 1 - """ - Number of requests within the window for a query to be considered, relative to - total request count. Expected values are between 0 and 0.05 (minimum 5% of total - request volume) - """ - queryCountThresholdPercentage: Float = 0 - """A list of operation IDs to filter out during validation.""" - ignoredOperations: [ID!] = null - """A list of clients to filter out during validation.""" - excludedClients: [ClientInfoFilter!] = null - """A list of operation names to filter out during validation.""" - excludedOperationNames: [OperationNameFilterInput!] = null - """ - A list of variants to include in the validation. If no variants are provided - then this defaults to the "current" variant along with the base variant. The - base variant indicates the schema that generates diff and marks the metrics that - are checked for broken queries. We union this base variant with the untagged values('', - same as null inside of `in`, and 'current') in this metrics fetch. This strategy - supports users who have not tagged their metrics or schema. - """ - includedVariants: [String!] = null -} - -"""Input type to provide when specifying configuration details for schema checks.""" -input HistoricQueryParametersInput { - """Clients to be excluded from check.""" - excludedClients: [ClientInfoFilter!] - """Operations to be ignored in this schema check, specified by operation name.""" - excludedOperationNames: [OperationNameFilterInput!] - """Start time for operations to be checked against. Specified as either a) an ISO formatted date/time string or b) a negative number of seconds relative to the time the check request was submitted.""" - from: String - """Operations to be ignored in this schema check, specified by ID.""" - ignoredOperations: [ID!] - """Graph variants to be included in check.""" - includedVariants: [String!] - """Maximum number of queries to be checked against the change.""" - queryCountThreshold: Int - """Only fail check if this percentage of operations would be negatively impacted.""" - queryCountThresholdPercentage: Float - """End time for operations to be checked against. Specified as either a) an ISO formatted date/time string or b) a negative number of seconds relative to the time the check request was submitted.""" - to: String -} - -"""An identity (such as a `User` or `Graph`) in Apollo Studio. See implementing types for details.""" -interface Identity { - """Returns a representation of the identity as an `Actor` type.""" - asActor: Actor! - """The identity's identifier, which is unique among objects of its type.""" - id: ID! - """The identity's human-readable name.""" - name: String! -} - -type InternalIdentity implements Identity { - accounts: [Organization!]! - asActor: Actor! - email: String - id: ID! - name: String! -} - -input IntrospectionDirectiveInput { - name: String! - description: String - locations: [IntrospectionDirectiveLocation!]! - args: [IntrospectionInputValueInput!]! - isRepeatable: Boolean -} - -"""__DirectiveLocation introspection type""" -enum IntrospectionDirectiveLocation { - """Location adjacent to a query operation.""" - QUERY - """Location adjacent to a mutation operation.""" - MUTATION - """Location adjacent to a subscription operation.""" - SUBSCRIPTION - """Location adjacent to a field.""" - FIELD - """Location adjacent to a fragment definition.""" - FRAGMENT_DEFINITION - """Location adjacent to a fragment spread.""" - FRAGMENT_SPREAD - """Location adjacent to an inline fragment.""" - INLINE_FRAGMENT - """Location adjacent to a variable definition.""" - VARIABLE_DEFINITION - """Location adjacent to a schema definition.""" - SCHEMA - """Location adjacent to a scalar definition.""" - SCALAR - """Location adjacent to an object type definition.""" - OBJECT - """Location adjacent to a field definition.""" - FIELD_DEFINITION - """Location adjacent to an argument definition.""" - ARGUMENT_DEFINITION - """Location adjacent to an interface definition.""" - INTERFACE - """Location adjacent to a union definition.""" - UNION - """Location adjacent to an enum definition.""" - ENUM - """Location adjacent to an enum value definition.""" - ENUM_VALUE - """Location adjacent to an input object type definition.""" - INPUT_OBJECT - """Location adjacent to an input object field definition.""" - INPUT_FIELD_DEFINITION -} - -"""__EnumValue introspection type""" -input IntrospectionEnumValueInput { - name: String! - description: String - isDeprecated: Boolean! - deprecationReason: String -} - -"""__Field introspection type""" -input IntrospectionFieldInput { - name: String! - description: String - args: [IntrospectionInputValueInput!]! - type: IntrospectionTypeInput! - isDeprecated: Boolean! - deprecationReason: String -} - -"""__Value introspection type""" -input IntrospectionInputValueInput { - name: String! - description: String - type: IntrospectionTypeInput! - defaultValue: String - isDeprecated: Boolean - deprecationReason: String -} - -"""__Schema introspection type""" -input IntrospectionSchemaInput { - types: [IntrospectionTypeInput!] - queryType: IntrospectionTypeRefInput! - mutationType: IntrospectionTypeRefInput - subscriptionType: IntrospectionTypeRefInput - directives: [IntrospectionDirectiveInput!]! - description: String -} - -"""__Type introspection type""" -input IntrospectionTypeInput { - kind: IntrospectionTypeKind! - name: String - description: String - specifiedByUrl: String - fields: [IntrospectionFieldInput!] - interfaces: [IntrospectionTypeInput!] - possibleTypes: [IntrospectionTypeInput!] - enumValues: [IntrospectionEnumValueInput!] - inputFields: [IntrospectionInputValueInput!] - ofType: IntrospectionTypeInput -} - -enum IntrospectionTypeKind { - """Indicates this type is a scalar.""" - SCALAR - """Indicates this type is an object. 'fields' and 'interfaces' are valid fields.""" - OBJECT - """ - Indicates this type is an interface. 'fields' and 'possibleTypes' are valid - fields - """ - INTERFACE - """Indicates this type is a union. 'possibleTypes' is a valid field.""" - UNION - """Indicates this type is an enum. 'enumValues' is a valid field.""" - ENUM - """Indicates this type is an input object. 'inputFields' is a valid field.""" - INPUT_OBJECT - """Indicates this type is a list. 'ofType' is a valid field.""" - LIST - """Indicates this type is a non-null. 'ofType' is a valid field.""" - NON_NULL -} - -"""Shallow __Type introspection type""" -input IntrospectionTypeRefInput { - name: String! - kind: String -} - -"""An error caused by providing invalid input for a task, such as schema checks.""" -type InvalidInputError { - """The error message.""" - message: String! -} - -"""This object is returned when a request to fetch a Studio graph variant provides an invalid graph ref.""" -type InvalidRefFormat implements Error { - message: String! -} - -"""Represents the complete process of making a set of updates to a deployed graph variant.""" -type Launch { - """The unique identifier for this launch.""" - id: ID! - """The ID of the launch's associated graph.""" - graphId: String! - """The name of the launch's associated variant.""" - graphVariant: String! - order: OrderOrError! - """The timestamp when the launch was approved.""" - approvedAt: Timestamp - """The associated build for this launch (a build includes schema composition and contract filtering). This value is null until the build is initiated.""" - build: Build - """The inputs provided to this launch's associated build, including subgraph schemas and contract filters.""" - buildInput: BuildInput! - """The timestamp when the launch completed. This value is null until the launch completes.""" - completedAt: Timestamp - """The timestamp when the launch was initiated.""" - createdAt: Timestamp! - """Contract launches that were triggered by this launch.""" - downstreamLaunches: [Launch!]! - """Whether the launch completed.""" - isCompleted: Boolean - """Whether the result of the launch has been published to the associated graph and variant. This is always false for a failed launch.""" - isPublished: Boolean - """The most recent launch sequence step that has started but not necessarily completed.""" - latestSequenceStep: LaunchSequenceStep - """A specific publication of a graph variant pertaining to this launch.""" - publication: SchemaPublication - """A list of results from the completed launch. The items included in this list vary depending on whether the launch succeeded, failed, or was superseded.""" - results: [LaunchResult!]! - """Cloud router configuration associated with this build event. It will be non-null for any cloud-router variant, and null for any not cloudy variant/graph.""" - routerConfig: String - """A list of all serial steps in the launch sequence. This list can change as the launch progresses. For example, a `LaunchCompletedStep` is appended after a launch completes.""" - sequence: [LaunchSequenceStep!]! - """A shortened version of `Launch.id` that includes only the first 8 characters.""" - shortenedID: String! - """The launch's status. If a launch is superseded, its status remains `LAUNCH_INITIATED`. To check for a superseded launch, use `supersededAt`.""" - status: LaunchStatus! - """A list of subgraph changes that are included in this launch.""" - subgraphChanges: [SubgraphChange!] - """The timestamp when this launch was superseded by another launch. If an active launch is superseded, it terminates.""" - supersededAt: Timestamp - """The launch that superseded this launch, if any. If an active launch is superseded, it terminates.""" - supersededBy: Launch - """The source variant launch that caused this launch to be initiated. This value is present only for contract variant launches. Otherwise, it's null.""" - upstreamLaunch: Launch -} - -"""Types of results that can be associated with a `Launch`""" -union LaunchResult = ChangelogLaunchResult - -"""The timing details for the build step of a launch.""" -type LaunchSequenceBuildStep { - """The timestamp when the step completed.""" - completedAt: Timestamp - """The timestamp when the step started.""" - startedAt: Timestamp -} - -"""The timing details for the checks step of a launch.""" -type LaunchSequenceCheckStep { - """The timestamp when the step completed.""" - completedAt: Timestamp - """The timestamp when the step started.""" - startedAt: Timestamp -} - -"""The timing details for the completion step of a launch.""" -type LaunchSequenceCompletedStep { - """The timestamp when the step (and therefore the launch) completed.""" - completedAt: Timestamp -} - -"""The timing details for the initiation step of a launch.""" -type LaunchSequenceInitiatedStep { - """The timestamp when the step (and therefore the launch) started.""" - startedAt: Timestamp -} - -"""The timing details for the publish step of a launch.""" -type LaunchSequencePublishStep { - """The timestamp when the step completed.""" - completedAt: Timestamp - """The timestamp when the step started.""" - startedAt: Timestamp -} - -"""Represents the various steps that occur in sequence during a single launch.""" -union LaunchSequenceStep = LaunchSequenceBuildStep | LaunchSequenceCheckStep | LaunchSequenceCompletedStep | LaunchSequenceInitiatedStep | LaunchSequencePublishStep | LaunchSequenceSupersededStep - -"""The timing details for the superseded step of a launch. This step occurs only if the launch is superseded by another launch.""" -type LaunchSequenceSupersededStep { - """The timestamp when the step completed, thereby ending the execution of this launch in favor of the superseding launch.""" - completedAt: Timestamp -} - -enum LaunchStatus { - LAUNCH_COMPLETED - LAUNCH_FAILED - LAUNCH_INITIATED -} - -enum LogLevel { - WARN - INFO - ERROR - DEBUG -} - -type LogMessage { - """Timestamp in UTC""" - timestamp: DateTime! - """Log message contents""" - message: String! - """Log level""" - level: LogLevel! -} - -type Mutation { - """Provides access to mutation fields for modifying a Studio graph with the provided ID.""" - graph(id: ID!): GraphMutation - """ - Provides access to mutation fields for modifying an Apollo user with the - provided ID. - """ - user(id: ID!): UserMutation - """Creates an [operation collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/) for a given variant, or creates a [sandbox collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/#sandbox-collections) without an associated variant.""" - createOperationCollection( - """The collection's description.""" - description: String - """Whether the collection is a [sandbox collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/#sandbox-collections).""" - isSandbox: Boolean! - """Whether the collection is shared across its associated organization.""" - isShared: Boolean! - """The minimum role a user needs to edit this collection. Valid values: null, CONSUMER, OBSERVER, DOCUMENTER, CONTRIBUTOR, GRAPH_ADMIN. This value is ignored if `isShared` is `false`. The default value is `GRAPH_ADMIN`.""" - minEditRole: UserPermission - """The collection's name.""" - name: String! - """The [graph ref](https://www.apollographql.com/docs/rover/conventions/#graph-refs) of the graph variants to associate the collection with.""" - variantRefs: [ID!] - ): CreateOperationCollectionResult! - operationCollection(id: ID!): OperationCollectionMutation -} - -""" -ISO 8601 combined date and time without timezone. +ancestor) was added/removed.""" type ChangeSummary{"""Counts for changes to fields of objects, input objects, and interfaces.""" field:FieldChangeSummaryCounts!"""Counts for all changes.""" total:TotalChangeSummaryCounts!"""Counts for changes to non-field aspects of objects, input objects, and interfaces, +and all aspects of enums, unions, and scalars.""" type:TypeChangeSummaryCounts!}enum ChangeType{FAILURE NOTICE}"""An addition made to a Studio variant's changelog after a launch.""" type ChangelogLaunchResult{createdAt:Timestamp!schemaTagID:ID!}"""Destination for notifications""" interface Channel{id:ID!name:String!subscriptions:[ChannelSubscription!]!}interface ChannelSubscription{channels:[Channel!]!enabled:Boolean!id:ID!variant:String}"""Graph-level configuration of checks.""" type CheckConfiguration{"""Time when check configuration was created""" createdAt:Timestamp!"""Whether to run Linting during schema checks.""" enableLintChecks:Boolean!"""Clients to ignore during validation""" excludedClients:[ClientFilter!]!"""Operation names to ignore during validation""" excludedOperationNames:[OperationNameFilter]"""Operations to ignore during validation""" excludedOperations:[ExcludedOperation!]!"""Graph that this check configuration belongs to""" graphID:ID!"""ID of the check configuration""" id:ID!"""Default configuration to include operations on the base variant.""" includeBaseVariant:Boolean!"""Variant overrides for validation""" includedVariants:[String!]!"""Minimum number of requests within the window for an operation to be considered.""" operationCountThreshold:Int!"""Number of requests within the window for an operation to be considered, relative to +total request count. Expected values are between 0 and 0.05 (minimum 5% of +total request volume)""" operationCountThresholdPercentage:Float!"""Only check operations from the last seconds. +The default is 7 days (604,800 seconds).""" timeRangeSeconds:Long!"""Time when check configuration was last updated""" updatedAt:Timestamp!"""Identity of the last user to update the check configuration""" updatedBy:Identity}"""Filter options available when listing checks.""" input CheckFilterInput{authors:[String!]branches:[String!]status:CheckFilterInputStatusOption subgraphs:[String!]variants:[String!]}"""Options for filtering CheckWorkflows by status +This should always match CheckWorkflowStatus""" enum CheckFilterInputStatusOption{FAILED PASSED PENDING}"""The result of performing a subgraph check, including all steps.""" type CheckPartialSchemaResult{"""Overall result of the check. This will be null if composition validation was unsuccessful.""" checkSchemaResult:CheckSchemaResult """Result of compostion run as part of the overall subgraph check.""" compositionValidationResult:CompositionValidationResult!"""Whether any modifications were detected in the composed core schema.""" coreSchemaModified:Boolean!"""Check workflow associated with the overall subgraph check.""" workflow:CheckWorkflow}"""The possible results of a request to initiate schema checks (either a success object or one of multiple `Error` objects).""" union CheckRequestResult=CheckRequestSuccess|InvalidInputError|PermissionError|PlanError """Represents a successfully initiated execution of schema checks. This does not indicate the _result_ of the checks, only that they were initiated.""" type CheckRequestSuccess{"""The URL of the Apollo Studio page for this check.""" targetURL:String!"""The unique ID for this execution of schema checks.""" workflowID:ID!}"""Input type to provide when running schema checks asynchronously for a non-federated graph.""" input CheckSchemaAsyncInput{"""Configuration options for the check execution.""" config:HistoricQueryParametersInput!"""The GitHub context to associate with the check.""" gitContext:GitContextInput!graphRef:ID@deprecated(reason:"This field is not required to be sent anymore")"""The URL of the GraphQL endpoint that Apollo Sandbox introspected to obtain the proposed schema. Required if `isSandbox` is `true`.""" introspectionEndpoint:String """If `true`, the check was initiated by Apollo Sandbox.""" isSandbox:Boolean!proposedSchemaDocument:String}"""The result of running schema checks on a graph variant.""" type CheckSchemaResult{"""The schema diff and affected operations generated by the schema check.""" diffToPrevious:SchemaDiff!"""The unique ID of this execution of checks.""" operationsCheckID:ID!"""The URL to view the schema diff in Studio.""" targetUrl:String """Workflow associated with this check result""" workflow:CheckWorkflow}type CheckStepCompleted{id:ID!status:CheckStepStatus!}type CheckStepFailed{message:String!}input CheckStepInput{graphID:String!graphVariant:String!taskID:ID!workflowID:ID!}union CheckStepResult=CheckStepCompleted|CheckStepFailed enum CheckStepStatus{FAILURE SUCCESS}type CheckWorkflow{"""The schema provided as the base to check against.""" baseSchemaHash:String """The base subgraphs provided as the base to check against.""" baseSubgraphs:[Subgraph!]"""The variant provided as a base to check against. Only the differences from the +base schema will be tested in operations checks.""" baseVariant:GraphVariant """The build task associated with this workflow, or null if no such task was scheduled.""" buildTask:BuildCheckTask """The timestamp when the check workflow completed.""" completedAt:Timestamp createdAt:Timestamp!"""The downstream task associated with this workflow, or null if no such task kind was scheduled.""" downstreamTask:DownstreamCheckTask """Contextual parameters supplied by the runtime environment where the check was run.""" gitContext:GitContext """The graph this check workflow belongs to.""" graph:Service!id:ID!"""The name of the implementing service that was responsible for triggering the validation.""" implementingServiceName:String """If this check is triggered for an sdl fetched using introspection, this is the endpoint where that schema was being served.""" introspectionEndpoint:String """Only true if the check was triggered from Sandbox Checks page.""" isSandboxCheck:Boolean!"""The operations task associated with this workflow, or null if no such task was scheduled.""" operationsTask:OperationsCheckTask """The proposed schema being checked by this check workflow.""" proposedSchemaHash:String """The proposed subgraphs for this check workflow.""" proposedSubgraphs:[Subgraph!]"""If this check was created by rerunning, the original check workflow that was rerun.""" rerunOf:CheckWorkflow """Checks created by re-running this check, most recent first.""" reruns(limit:Int!=20):[CheckWorkflow!]"""The timestamp when the check workflow started.""" startedAt:Timestamp """Overall status of the workflow, based on the underlying task statuses.""" status:CheckWorkflowStatus!"""The set of check tasks associated with this workflow, e.g. composition, operations, etc.""" tasks:[CheckWorkflowTask!]!"""Identity of the user who ran this check""" triggeredBy:Identity """The upstream workflow that triggered this workflow, or null if such an upstream workflow does not exist.""" upstreamWorkflow:CheckWorkflow """Configuration of validation at the time the check was run.""" validationConfig:SchemaDiffValidationConfig}type CheckWorkflowMutation{"""The graph this check workflow belongs to.""" graph:Service!id:ID!"""Re-run a check workflow using the current check configuration. The result is either a workflow ID that +can be used to check the status or an error message that explains what went wrong.""" rerunAsync:CheckRequestResult!}enum CheckWorkflowStatus{FAILED PASSED PENDING}interface CheckWorkflowTask{completedAt:Timestamp createdAt:Timestamp!id:ID!""" +The status of this task. All tasks start with the PENDING status while initializing. If any + prerequisite task fails, then the task status becomes BLOCKED. Otherwise, if all prerequisite + tasks pass, then this task runs (still having the PENDING status). Once the task completes, the + task status will become either PASSED or FAILED.""" status:CheckWorkflowTaskStatus!"""A studio UI url to view the details of this check workflow task""" targetURL:String """The workflow that this task belongs to.""" workflow:CheckWorkflow!}enum CheckWorkflowTaskStatus{BLOCKED FAILED PASSED PENDING}"""A client to be filtered.""" type ClientFilter{"""Name of the client is required.""" name:String!"""Version string of the client.""" version:String}"""Options to filter by client reference ID, client name, and client version. +If passing client version, make sure to either provide a client reference ID or client name.""" input ClientFilterInput{"""name of the client set by the user and reported alongside metrics""" name:String!"""version of the client set by the user and reported alongside metrics""" version:String}"""Filter options to exclude by client reference ID, client name, and client version.""" input ClientInfoFilter{name:String!"""Ignored""" referenceID:ID version:String}"""Filter options to exclude clients. Used as an output type for SchemaDiffValidationConfig.""" type ClientInfoFilterOutput{name:String!version:String}"""Cloud queries""" type Cloud{order(orderId:String!):Order """The regions where a cloud router can be deployed""" regions(provider:CloudProvider!):[RegionDescription!]!"""Return the Cloud Router associated with the provided id""" router(id:ID!):Router """Retrieve all routers""" routers(first:Int offset:Int statuses:[RouterStatus!]):[Router!]!"""Return the Shard associated with the provided id""" shard(id:ID!):Shard """Return all Shards""" shards(first:Int offset:Int):[Shard!]!"""Information about a specific Cloud Router version""" version(version:String!):RouterVersionResult!"""A list of Cloud Router versions""" versions(input:RouterVersionsInput!):RouterVersionsResult!}"""Invalid input error""" type CloudInvalidInputError{"""Argument related to the error""" argument:String!"""Location of the error""" location:String """Reason for the error""" reason:String!}"""Cloud mutations""" type CloudMutation{"""Create a new Cloud Router""" createRouter(id:ID!input:CreateRouterInput!):CreateRouterResult!"""Create a new router version""" createVersion(version:RouterVersionCreateInput!):CreateRouterVersionResult!"""Delete a router version""" deleteVersion(version:RouterVersionDeleteInput!):DeleteRouterVersionResult!"""Destroy an existing Cloud Router""" destroyRouter(id:ID!):DestroyRouterResult!order(orderId:String!):OrderMutation """Fetch a Cloud Router for mutations""" router(id:ID!):RouterMutation """Update an existing Cloud Router""" updateRouter(id:ID!input:UpdateRouterInput!):UpdateRouterResult!"""Update an existing router version""" updateVersion(version:RouterVersionUpdateInput!):UpdateRouterVersionResult!}"""List of supported cloud providers""" enum CloudProvider{AWS FLY}"""Validation result""" union CloudValidationResult=CloudValidationSuccess|InternalServerError|InvalidInputErrors """Config validation success""" type CloudValidationSuccess{message:String!}interface CommunicationChannel{id:ID!name:String!}enum ComparisonOperator{EQUALS GREATER_THAN GREATER_THAN_OR_EQUAL_TO LESS_THAN LESS_THAN_OR_EQUAL_TO NOT_EQUALS UNRECOGNIZED}type ComposeAndFilterPreviewBuildResults{"""The API schema document/SDL generated from composition/filtering.""" apiSchemaDocument:String!"""The supergraph core schema document/SDL generated from composition/filtering.""" supergraphSchemaDocument:String!}type ComposeAndFilterPreviewComposeError{"""A machine-readable error code. See https://www.apollographql.com/docs/federation/errors/for more info.""" code:String """The step at which composition failed.""" failedStep:String """Source locations related to the error.""" locations:[SourceLocation!]"""A human-readable message describing the error.""" message:String!}type ComposeAndFilterPreviewComposeFailure{"""The list of errors from failed composition.""" composeErrors:[ComposeAndFilterPreviewComposeError!]!}type ComposeAndFilterPreviewFilterError{"""The step at which filtering failed. See https://www.apollographql.com/docs/studio/contracts/#contract-errors for more info.""" failedStep:String """A human-readable message describing the error.""" message:String!}type ComposeAndFilterPreviewFilterFailure{"""The results from successful composition.""" composeResults:ComposeAndFilterPreviewBuildResults!"""The list of errors from failed filtering.""" filterErrors:[ComposeAndFilterPreviewFilterError!]!}union ComposeAndFilterPreviewResult=ComposeAndFilterPreviewComposeFailure|ComposeAndFilterPreviewFilterFailure|ComposeAndFilterPreviewSuccess input ComposeAndFilterPreviewSubgraphChange{""" +The info being changed in the named subgraph. If null, indicates that the named + subgraph should be removed prior to composition.""" info:ComposeAndFilterPreviewSubgraphChangeInfo """The name of the subgraph being changed.""" name:String!}input ComposeAndFilterPreviewSubgraphChangeInfo{"""The routing URL of the subgraph. If a subgraph with the same name exists, then this +field can be null to indicate the existing subgraph's info should be used; using +null otherwise results in an error.""" routingUrl:String """The schema document/SDL of the subgraph. If a subgraph with the same name exists, +then this field can be null to indicate the existing subgraph's info should be +used; using null otherwise results in an error.""" schemaDocument:String}type ComposeAndFilterPreviewSuccess{"""The results from successful composition.""" composeResults:ComposeAndFilterPreviewBuildResults!"""The results from successful filtering, or null if filtering was skipped.""" filterResults:ComposeAndFilterPreviewBuildResults}"""The result of supergraph composition that Studio performed in response to an attempted deletion of a subgraph.""" type CompositionAndRemoveResult{"""The produced composition config. Will be null if there are any errors""" compositionConfig:CompositionConfig """Whether the removed implementing service existed.""" didExist:Boolean!"""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.""" errors:[SchemaCompositionError]!"""ID that points to the results of composition.""" graphCompositionID:String!"""List of subgraphs that are included in this composition.""" subgraphConfigs:[SubgraphConfig!]!"""Whether this composition result resulted in a new supergraph schema passed to Uplink (`true`), or the build failed for any reason (`false`). For dry runs, this value is `true` if Uplink _would have_ been updated with the result.""" updatedGateway:Boolean!}"""The result of supergraph composition that Studio performed in response to an attempted publish of a subgraph.""" type CompositionAndUpsertResult{"""The generated composition config, or null if any errors occurred.""" compositionConfig:CompositionConfig """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.""" errors:[SchemaCompositionError]!"""ID that points to the results of composition.""" graphCompositionID:String!"""Human-readable text describing the launch result of the subgraph publish.""" launchCliCopy:String """The URL of the Studio page for this update's associated launch, if available.""" launchUrl:String """List of subgraphs that are included in this composition.""" subgraphConfigs:[SubgraphConfig!]!"""Whether this composition result resulted in a new supergraph schema passed to Uplink (`true`), or the build failed for any reason (`false`). For dry runs, this value is `true` if Uplink _would have_ been updated with the result.""" updatedGateway:Boolean!"""Whether a new subgraph was created as part of this publish.""" wasCreated:Boolean!"""Whether an implementingService was updated as part of this mutation""" wasUpdated:Boolean!}type CompositionBuildCheckFailed implements BuildCheckFailed&BuildCheckResult&CompositionBuildCheckResult{buildInputs:CompositionBuildInputs!buildPipelineTrack:BuildPipelineTrack!compositionPackageVersion:String errors:[CompositionBuildError!]!id:ID!passed:Boolean!workflowTask:CompositionCheckTask!}type CompositionBuildCheckPassed implements BuildCheckPassed&BuildCheckResult&CompositionBuildCheckResult{buildInputs:CompositionBuildInputs!buildPipelineTrack:BuildPipelineTrack!compositionPackageVersion:String id:ID!passed:Boolean!supergraphSchemaHash:SHA256!workflowTask:CompositionCheckTask!}interface CompositionBuildCheckResult implements BuildCheckResult{buildInputs:CompositionBuildInputs!buildPipelineTrack:BuildPipelineTrack!"""The version of the OSS apollo composition package used during build""" compositionPackageVersion:String id:ID!passed:Boolean!workflowTask:CompositionCheckTask!}type CompositionBuildError implements BuildCheckError{"""A machine-readable error code. See https://www.apollographql.com/docs/federation/errors/ for a +list of existing composition error codes.""" code:String """The step at which composition failed.""" failedStep:String """Source locations related to the error.""" locations:[SourceLocation!]message:String!}type CompositionBuildInput{subgraphs:[Subgraph!]!version:String}type CompositionBuildInputSubgraph{"""The name of the subgraph.""" name:String!"""The routing URL of the subgraph.""" routingUrl:String!"""The SHA-256 of the schema document of the subgraph.""" schemaHash:SHA256!}type CompositionBuildInputs{""" +The build pipeline track used for composition. Note this is also the build pipeline track used + for any triggered downstream check workflows as well.""" buildPipelineTrack:BuildPipelineTrack!"""The subgraphs used for composition.""" subgraphs:[CompositionBuildInputSubgraph!]!}type CompositionCheckTask implements BuildCheckTask&CheckWorkflowTask{"""The result of the composition build check. This will be null when the task is initializing or running.""" buildResult:CompositionBuildCheckResult completedAt:Timestamp """Whether the build's output supergraph core schema differs from that of the active publish for +the workflow's variant at the time this field executed (NOT at the time the check workflow +started).""" coreSchemaModified:Boolean!createdAt:Timestamp!graphID:ID!id:ID!proposedBuildInputChanges:ProposedCompositionBuildInputChanges!"""An old version of buildResult that returns a very old GraphQL type that generally should be +avoided. This field will soon be deprecated.""" result:CompositionResult status:CheckWorkflowTaskStatus!targetURL:String workflow:CheckWorkflow!}"""Composition configuration exposed to the gateway.""" type CompositionConfig{"""List of GCS links for implementing services that comprise a composed graph. Is empty if tag/inaccessible is enabled.""" implementingServiceLocations:[ImplementingServiceLocation!]!@deprecated(reason:"Soon we will stop writing to GCS locations")"""The resulting API schema's SHA256 hash, represented as a hexadecimal string.""" schemaHash:String!}input CompositionConfigInput{subgraphs:[SubgraphInput!]!}"""The result of supergraph composition that Studio performed.""" type CompositionPublishResult implements CompositionResult{"""The generated composition config, or null if any errors occurred.""" compositionConfig:CompositionConfig """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.""" errors:[SchemaCompositionError!]!"""The unique ID for this instance of composition.""" graphCompositionID:ID!"""Cloud router configuration associated with this build event. +It will be non-null for any cloud-router variant, and null for any not cloudy variant/graph""" routerConfig:String """List of subgraphs that are included in this composition.""" subgraphConfigs:[SubgraphConfig!]!"""The supergraph SDL generated by composition.""" supergraphSdl:GraphQLDocument """Whether this composition result updated gateway/router instances via Uplink (`true`), or it was a dry run (`false`).""" updatedGateway:Boolean!webhookNotificationBody:String}"""The result of supergraph composition performed by Apollo Studio, often as the result of a subgraph check or subgraph publish. See individual implementations for more details.""" interface CompositionResult{"""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.""" errors:[SchemaCompositionError!]!"""The unique ID for this instance of composition.""" graphCompositionID:ID!"""Cloud router configuration associated with this build event. +It will be non-null for any cloud-router variant, and null for any not cloudy variant/graph""" routerConfig:String """List of subgraphs included in this composition.""" subgraphConfigs:[SubgraphConfig!]!"""Supergraph SDL generated by composition.""" supergraphSdl:GraphQLDocument}type CompositionStatusSubscription implements ChannelSubscription{channels:[Channel!]!createdAt:Timestamp!enabled:Boolean!id:ID!lastUpdatedAt:Timestamp!variant:String}"""The composition config exposed to the gateway""" type CompositionValidationDetails{"""Hash of the composed schema""" schemaHash:String}"""The result of composition validation run by Apollo Studio during a subgraph check.""" type CompositionValidationResult implements CompositionResult{"""Describes whether composition succeeded.""" compositionSuccess:Boolean!"""Akin to a composition config, represents the subgraph schemas and corresponding subgraphs that were used +in running composition. Will be null if any errors are encountered. Also may contain a schema hash if +one could be computed, which can be used for schema validation.""" compositionValidationDetails:CompositionValidationDetails """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.""" errors:[SchemaCompositionError!]!"""The unique ID for this instance of composition.""" graphCompositionID:ID!"""The implementing service that was responsible for triggering the validation""" proposedImplementingService:FederatedImplementingServicePartialSchema!"""Cloud router configuration associated with this build event. +It will be non-null for any cloud-router variant, and null for any not cloudy variant/graph""" routerConfig:String """List of subgraphs that are included in this composition.""" subgraphConfigs:[SubgraphConfig!]!"""The supergraph schema document generated by composition.""" supergraphSdl:GraphQLDocument """If created as part of a check workflow, the associated workflow task.""" workflowTask:CompositionCheckTask}input ContractConfigInput{baseGraphRef:String!filterConfigInput:FilterConfigInput!}type ContractPreview{result:ContractPreviewResult!upstreamLaunch:Launch!}type ContractPreviewErrors{errors:[String!]!failedAt:ContractVariantFailedStep!}union ContractPreviewResult=ContractPreviewErrors|ContractPreviewSuccess type ContractPreviewSuccess{apiDocument:String!coreDocument:String!fieldCount:Int!typeCount:Int!}enum ContractVariantFailedStep{ADD_DIRECTIVE_DEFINITIONS_IF_NOT_PRESENT ADD_INACCESSIBLE_SPEC_PURPOSE DIRECTIVE_DEFINITION_LOCATION_AUGMENTING EMPTY_ENUM_MASKING EMPTY_INPUT_OBJECT_MASKING EMPTY_OBJECT_AND_INTERFACE_FIELD_MASKING EMPTY_OBJECT_AND_INTERFACE_MASKING EMPTY_UNION_MASKING INPUT_VALIDATION PARSING PARSING_TAG_DIRECTIVES PARTIAL_INTERFACE_MASKING SCHEMA_RETRIEVAL TAG_INHERITING TAG_MATCHING TO_API_SCHEMA TO_FILTER_SCHEMA UNKNOWN UNREACHABLE_TYPE_MASKING VERSION_CHECK}type ContractVariantUpsertErrors{"""A list of all errors that occurred when attempting to create or update a contract variant.""" errorMessages:[String!]!}union ContractVariantUpsertResult=ContractVariantUpsertErrors|ContractVariantUpsertSuccess type ContractVariantUpsertSuccess{"""The updated contract variant""" contractVariant:GraphVariant!"""Human-readable text describing the launch result of the contract update.""" launchCliCopy:String """The URL of the Studio page for this update's associated launch, if available.""" launchUrl:String}type Coordinate{byteOffset:Int!column:Int!line:Int!}"""Contains the supergraph and API schemas generated by composition.""" type CoreSchema{"""The composed API schema document.""" apiDocument:GraphQLDocument!"""The composed supergraph schema document.""" coreDocument:GraphQLDocument!"""The supergraph schema document's SHA256 hash, represented as a hexadecimal string.""" coreHash:String!fieldCount:Int!tags:[String!]!typeCount:Int!}union CreateOperationCollectionResult=OperationCollection|PermissionError|ValidationError type CreatePersistedQueryListResult{persistedQueryList:PersistedQueryList!}union CreatePersistedQueryListResultOrError=CreatePersistedQueryListResult|PermissionError """An error that occurs when creating a proposal fails.""" type CreateProposalError implements Error{"""The error's details.""" message:String!}input CreateProposalInput{description:String displayName:String!sourceVariantName:String!}union CreateProposalResult=CreateProposalError|GraphVariant|PermissionError|ValidationError """Input to create a new Cloud Router""" input CreateRouterInput{"""Number of GCUs allocated for the Cloud Router + +This is ignored for serverless Cloud Routers""" gcus:Int """Graph composition ID, also known as launch ID""" graphCompositionId:String """Unique identifier for ordering orders""" orderingId:String!"""The cloud provider""" provider:CloudProvider!"""Subset of the region codes aligned to the result of Query.regions +This is currently not an enum to support future scenarios where +various cloud providers could have different regions where +they are available""" region:Region!"""Configuration for the Cloud Router""" routerConfig:String """URL for the Cloud Router""" routerUrl:String """Router version for the Cloud Router""" routerVersion:String}"""Represents the possible outcomes of a createRouter mutation""" union CreateRouterResult=CreateRouterSuccess|InternalServerError|InvalidInputErrors """Success branch of a createRouter mutation + +id of the order can be polled +via Query.cloud().order(id: ID!) to check-in on the progress +of the underlying operation""" type CreateRouterSuccess{order:Order!}"""Result of a createVersion mutation""" union CreateRouterVersionResult=CloudInvalidInputError|InternalServerError|RouterVersion type CronExecution{completedAt:Timestamp failure:String id:ID!job:CronJob!resolvedAt:Timestamp resolvedBy:Actor schedule:String!startedAt:Timestamp!}type CronJob{group:String!name:String!recentExecutions(n:Int):[CronExecution!]!}type CustomerAccount{id:ID!name:String!next:String studioOrgId:ID!traits:AccountCustomerTraits!}type CustomerOrg{accounts:[CustomerAccount!]!externalSlackChannelId:ID id:ID!internalSlackChannelId:ID name:String!next:String sfdcId:ID!traits:OrgCustomerTraits!}type CustomerSupportSlackError{message:String!}enum DatadogApiRegion{EU EU1 US US1 US1FED US3 US5}type DatadogMetricsConfig{apiKey:String!apiRegion:DatadogApiRegion!enabled:Boolean!legacyMetricNames:Boolean!}"""ISO 8601 date format, e.g. 'yyyy-MM-dd'""" scalar Date """Implement the DateTime scalar + +The input/output is a string in RFC3339 format.""" scalar DateTime@specifiedBy(url:"https://datatracker.ietf.org/doc/html/rfc3339")union DeleteOperationCollectionResult=DeleteOperationCollectionSuccess|PermissionError type DeleteOperationCollectionSuccess{sandboxOwner:User variants:[GraphVariant!]!}type DeletePersistedQueryListResult{graph:Service!}union DeletePersistedQueryListResultOrError=CannotDeleteLinkedPersistedQueryListError|DeletePersistedQueryListResult|PermissionError """Result of a deleteVersion mutation""" union DeleteRouterVersionResult=CloudInvalidInputError|InternalServerError|RouterVersion """The result of attempting to delete a graph variant.""" type DeleteSchemaTagResult{"""Whether the variant was deleted or not.""" deleted:Boolean!}enum DeletionTargetType{ACCOUNT USER}"""Represents the possible outcomes of a destroyRouter mutation""" union DestroyRouterResult=DestroyRouterSuccess|InternalServerError|InvalidInputErrors """Success branch of a destroyRouter mutation""" type DestroyRouterSuccess{"""Order for the destroyRouter mutation + +This could be empty if the router is already destroyed or doesn't exist, but should still +be treated as a success.""" order:Order}"""Support for a single directive on a graph variant""" type DirectiveSupportStatus{"""whether the directive is supported on the current graph variant""" enabled:Boolean!"""name of the directive""" name:String!}"""The result of a schema checks workflow that was run on a downstream variant as part of checks for the corresponding source variant. Most commonly, these downstream checks are [contract checks](https://www.apollographql.com/docs/studio/contracts#contract-checks).""" type DownstreamCheckResult{"""Whether the downstream check workflow blocks the upstream check workflow from completing.""" blocking:Boolean!"""The ID of the graph that the downstream variant belongs to.""" downstreamGraphID:String!"""The name of the downstream variant.""" downstreamVariantName:String!"""The downstream checks workflow that this result corresponds to. This value is null +if the workflow hasn't been initialized yet, or if the downstream variant was deleted.""" downstreamWorkflow:CheckWorkflow """Whether the downstream check workflow is causing the upstream check workflow to fail. This occurs +when the downstream check workflow is both blocking and failing. This may be null while the +downstream check workflow is pending.""" failsUpstreamWorkflow:Boolean """The downstream checks task that this result corresponds to.""" workflowTask:DownstreamCheckTask!}type DownstreamCheckTask implements CheckWorkflowTask{completedAt:Timestamp createdAt:Timestamp!id:ID!"""A list of results for all downstream checks triggered as part of the source variant's checks workflow. +This value is null if the task hasn't been initialized yet, or if the build task fails (the build task is a +prerequisite to this task). This value is _not_ null _while_ the task is running. The returned list is empty +if the source variant has no downstream variants.""" results:[DownstreamCheckResult!]status:CheckWorkflowTaskStatus!targetURL:String workflow:CheckWorkflow!}type DraftInvoice{billingPeriodEndsAt:Timestamp!billingPeriodStartsAt:Timestamp!"""The approximate date in the future we expect the customer to be billed if they fully complete the billing cycle""" expectedInvoiceAt:Timestamp!"""When this invoice was sent to the customer, if it's been sent""" invoicedAt:Timestamp """Breakdown of this invoice's charges. May be empty if we don't have a breakdown""" lineItems:[InvoiceLineItem!]subtotalInCents:Int!totalInCents:Int!}union DuplicateOperationCollectionResult=OperationCollection|PermissionError|ValidationError type DurationHistogram{averageDurationMs:Float buckets:[DurationHistogramBucket!]!durationMs("""Percentile (between 0 and 1)""" percentile:Float!):Float """Counts per durationBucket, where sequences of zeroes are replaced with the negative of their size""" sparseBuckets:[Long!]!totalCount:Long!totalDurationMs:Float!}type DurationHistogramBucket{count:Long!index:Int!rangeBeginMs:Float!rangeEndMs:Float!}input EdgeServerInfo{"""A randomly generated UUID, immutable for the lifetime of the edge server runtime.""" bootId:String!"""A unique identifier for the executable GraphQL served by the edge server. length must be <= 64 characters.""" executableSchemaId:String!"""The graph variant, defaults to 'current'""" graphVariant:String!="current" """The version of the edge server reporting agent, e.g. apollo-server-2.8, graphql-java-3.1, etc. length must be <= 256 characters.""" libraryVersion:String """The infra environment in which this edge server is running, e.g. localhost, Kubernetes, AWS Lambda, Google CloudRun, AWS ECS, etc. length must be <= 256 characters.""" platform:String """The runtime in which the edge server is running, e.g. node 12.03, zulu8.46.0.19-ca-jdk8.0.252-macosx_x64, etc. length must be <= 256 characters.""" runtimeVersion:String """If available, an identifier for the edge server instance, such that when restarting this instance it will have the same serverId, with a different bootId. For example, in Kubernetes this might be the pod name. Length must be <= 256 characters.""" serverId:String """An identifier used to distinguish the version (from the user's perspective) of the edge server's code itself. For instance, the git sha of the server's repository or the docker sha of the associated image this server runs with. Length must be <= 256 characters.""" userVersion:String}"""Columns of EdgeServerInfos.""" enum EdgeServerInfosColumn{BOOT_ID EXECUTABLE_SCHEMA_ID LIBRARY_VERSION PLATFORM RUNTIME_VERSION SCHEMA_TAG SERVER_ID SERVICE_ID TIMESTAMP USER_VERSION}type EdgeServerInfosDimensions{bootId:ID executableSchemaId:ID libraryVersion:String platform:String runtimeVersion:String schemaTag:String serverId:ID serviceId:ID userVersion:String}"""Filter for data in EdgeServerInfos. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input EdgeServerInfosFilter{and:[EdgeServerInfosFilter!]"""Selects rows whose bootId dimension equals the given value if not null. To query for the null value, use {in: {bootId: [null]}} instead.""" bootId:ID """Selects rows whose executableSchemaId dimension equals the given value if not null. To query for the null value, use {in: {executableSchemaId: [null]}} instead.""" executableSchemaId:ID in:EdgeServerInfosFilterIn """Selects rows whose libraryVersion dimension equals the given value if not null. To query for the null value, use {in: {libraryVersion: [null]}} instead.""" libraryVersion:String not:EdgeServerInfosFilter or:[EdgeServerInfosFilter!]"""Selects rows whose platform dimension equals the given value if not null. To query for the null value, use {in: {platform: [null]}} instead.""" platform:String """Selects rows whose runtimeVersion dimension equals the given value if not null. To query for the null value, use {in: {runtimeVersion: [null]}} instead.""" runtimeVersion:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serverId dimension equals the given value if not null. To query for the null value, use {in: {serverId: [null]}} instead.""" serverId:ID """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose userVersion dimension equals the given value if not null. To query for the null value, use {in: {userVersion: [null]}} instead.""" userVersion:String}"""Filter for data in EdgeServerInfos. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input EdgeServerInfosFilterIn{"""Selects rows whose bootId dimension is in the given list. A null value in the list means a row with null for that dimension.""" bootId:[ID]"""Selects rows whose executableSchemaId dimension is in the given list. A null value in the list means a row with null for that dimension.""" executableSchemaId:[ID]"""Selects rows whose libraryVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" libraryVersion:[String]"""Selects rows whose platform dimension is in the given list. A null value in the list means a row with null for that dimension.""" platform:[String]"""Selects rows whose runtimeVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" runtimeVersion:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serverId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serverId:[ID]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose userVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" userVersion:[String]}input EdgeServerInfosOrderBySpec{column:EdgeServerInfosColumn!direction:Ordering!}type EdgeServerInfosRecord{"""Dimensions of EdgeServerInfos that can be grouped by.""" groupBy:EdgeServerInfosDimensions!"""Starting segment timestamp.""" timestamp:Timestamp!}enum EmailCategory{EDUCATIONAL}type EmailPreferences{email:String!subscriptions:[EmailCategory!]!unsubscribedFromAll:Boolean!}union EndUsageBasedPlanResult=Account|NotFoundError|PermissionError|ValidationError type EntitiesError{message:String!}type EntitiesErrorResponse{errors:[EntitiesError!]!}type EntitiesResponse{entities:[Entity!]!}union EntitiesResponseOrError=EntitiesErrorResponse|EntitiesResponse type Entity{subgraphKeys:[SubgraphKeyMap!]typename:String!}"""GraphQL Error""" interface Error{message:String!}"""Columns of ErrorStats.""" enum ErrorStatsColumn{ACCOUNT_ID CLIENT_NAME CLIENT_VERSION ERRORS_COUNT PATH QUERY_ID QUERY_NAME REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type ErrorStatsDimensions{accountId:ID clientName:String clientVersion:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in ErrorStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ErrorStatsFilter{"""Selects rows whose accountId dimension equals the given value if not null. To query for the null value, use {in: {accountId: [null]}} instead.""" accountId:ID and:[ErrorStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:ErrorStatsFilterIn not:ErrorStatsFilter or:[ErrorStatsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in ErrorStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ErrorStatsFilterIn{"""Selects rows whose accountId dimension is in the given list. A null value in the list means a row with null for that dimension.""" accountId:[ID]"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type ErrorStatsMetrics{errorsCount:Long!requestsWithErrorsCount:Long!}input ErrorStatsOrderBySpec{column:ErrorStatsColumn!direction:Ordering!}type ErrorStatsRecord{"""Dimensions of ErrorStats that can be grouped by.""" groupBy:ErrorStatsDimensions!"""Metrics of ErrorStats that can be aggregated over.""" metrics:ErrorStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}""" Input parameters for run explorer operation event.""" enum EventEnum{CLICK_CHECK_LIST CLICK_GO_TO_GRAPH_SETTINGS RUN_EXPLORER_OPERATION}"""Excluded operation for a graph.""" type ExcludedOperation{"""Operation ID to exclude from schema check.""" ID:ID!}"""Option to filter by operation ID.""" input ExcludedOperationInput{"""Operation ID to exclude from schema check.""" ID:ID!}type FeatureIntros{devGraph:Boolean!@deprecated federatedGraph:Boolean!freeConsumerSeats:Boolean!}"""Feature Intros Input Type""" input FeatureIntrosInput{devGraph:Boolean@deprecated federatedGraph:Boolean freeConsumerSeats:Boolean}"""A single subgraph in a supergraph. Every supergraph managed by Apollo Studio includes at least one subgraph. See https://www.apollographql.com/docs/federation/managed-federation/overview/ for more information.""" type FederatedImplementingService{"""The subgraph's current active schema, used in supergraph composition for the the associated variant.""" activePartialSchema:PartialSchema!"""The timestamp when the subgraph was created.""" createdAt:Timestamp!"""The timestamp when the subgraph was deleted. Null if it wasn't deleted.""" deletedAt:Timestamp """The ID of the graph this subgraph belongs to.""" graphID:String!"""The name of the graph variant this subgraph belongs to.""" graphVariant:String!"""The subgraph's name.""" name:String!"""The current user-provided version/edition of the subgraph. Typically a Git SHA or docker image ID.""" revision:String!"""The timestamp when the subgraph was most recently updated.""" updatedAt:Timestamp!"""The URL of the subgraph's GraphQL endpoint.""" url:String}"""A minimal representation of a federated implementing service, using only a name and partial schema SDL""" type FederatedImplementingServicePartialSchema{"""The name of the implementing service""" name:String!"""The partial schema of the implementing service""" sdl:String!}"""Container for a list of subgraphs composing a supergraph.""" type FederatedImplementingServices{"""The list of underlying subgraphs.""" services:[FederatedImplementingService!]!}"""Counts of changes at the field level, including objects, interfaces, and input fields.""" type FieldChangeSummaryCounts{"""Number of changes that are additions of fields to object, interface, and input types.""" additions:Int!"""Number of changes that are field edits. This includes fields changing type and any field +deprecation and description changes, but also includes any argument changes and any input object +field changes.""" edits:Int!"""Number of changes that are removals of fields from object, interface, and input types.""" removals:Int!}"""Columns of FieldExecutions.""" enum FieldExecutionsColumn{ERRORS_COUNT ESTIMATED_EXECUTION_COUNT FIELD_NAME OBSERVED_EXECUTION_COUNT PARENT_TYPE REFERENCING_OPERATION_COUNT REQUESTS_WITH_ERRORS_COUNT SCHEMA_TAG SERVICE_ID TIMESTAMP}type FieldExecutionsDimensions{fieldName:String parentType:String schemaTag:String serviceId:ID}"""Filter for data in FieldExecutions. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input FieldExecutionsFilter{and:[FieldExecutionsFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:FieldExecutionsFilterIn not:FieldExecutionsFilter or:[FieldExecutionsFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in FieldExecutions. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input FieldExecutionsFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type FieldExecutionsMetrics{errorsCount:Long!estimatedExecutionCount:Long!observedExecutionCount:Long!referencingOperationCount:Long!requestsWithErrorsCount:Long!}input FieldExecutionsOrderBySpec{column:FieldExecutionsColumn!direction:Ordering!}type FieldExecutionsRecord{"""Dimensions of FieldExecutions that can be grouped by.""" groupBy:FieldExecutionsDimensions!"""Metrics of FieldExecutions that can be aggregated over.""" metrics:FieldExecutionsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type FieldInsights{"""If the first or last seen timestamps are earlier than this timestamp, we can't tell the exact date that we saw this field since our data is bound by the retention period.""" earliestRetentionTime:Timestamp """The earliest time we saw references or executions for this field. Null if the field has never been seen or it is not in the schema.""" firstSeen:Timestamp """The most recent time we saw references or executions for this field. Null if the field has never been seen or it is not in the schema.""" lastSeen:Timestamp}input FieldInsightsListFilterInInput{clientName:[String]clientVersion:[String]}input FieldInsightsListFilterInput{clientName:String clientVersion:String in:FieldInsightsListFilterInInput isDeprecated:Boolean isUnused:Boolean or:[FieldInsightsListFilterInput!]search:String}type FieldInsightsListItem{description:String errorCount:Long!errorPercentage:Float!errorsPerMin:Long!executionCount:Long!isDeprecated:Boolean!isUnused:Boolean!name:String!parentType:String!requestCount:Long!requestsPerMin:Long!totalLatencyHistogram:DurationHistogram!}enum FieldInsightsListOrderByColumn{ERROR_COUNT ERROR_PERCENTAGE ERROR_RATE EXECUTION_COUNT P50 P75 P90 P95 P99 PMAX PMIN REQUEST_COUNT REQUEST_RATE}input FieldInsightsListOrderByInput{column:FieldInsightsListOrderByColumn!direction:Ordering!}"""Columns of FieldLatencies.""" enum FieldLatenciesColumn{FIELD_HISTOGRAM FIELD_NAME PARENT_TYPE SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type FieldLatenciesDimensions{field:String fieldName:String parentType:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in FieldLatencies. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input FieldLatenciesFilter{and:[FieldLatenciesFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:FieldLatenciesFilterIn not:FieldLatenciesFilter or:[FieldLatenciesFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in FieldLatencies. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input FieldLatenciesFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type FieldLatenciesMetrics{fieldHistogram:DurationHistogram!}input FieldLatenciesOrderBySpec{column:FieldLatenciesColumn!direction:Ordering!}type FieldLatenciesRecord{"""Dimensions of FieldLatencies that can be grouped by.""" groupBy:FieldLatenciesDimensions!"""Metrics of FieldLatencies that can be aggregated over.""" metrics:FieldLatenciesMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Federation type representing set of fields""" scalar FieldSet """Columns of FieldUsage.""" enum FieldUsageColumn{CLIENT_NAME CLIENT_VERSION ESTIMATED_EXECUTION_COUNT EXECUTION_COUNT FIELD_NAME OPERATION_SUBTYPE OPERATION_TYPE PARENT_TYPE QUERY_ID QUERY_NAME REFERENCING_OPERATION_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP}type FieldUsageDimensions{clientName:String clientVersion:String fieldName:String operationSubtype:String operationType:String parentType:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in FieldUsage. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input FieldUsageFilter{and:[FieldUsageFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:FieldUsageFilterIn not:FieldUsageFilter """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[FieldUsageFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in FieldUsage. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input FieldUsageFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type FieldUsageMetrics{estimatedExecutionCount:Long!executionCount:Long!referencingOperationCount:Long!}input FieldUsageOrderBySpec{column:FieldUsageColumn!direction:Ordering!}type FieldUsageRecord{"""Dimensions of FieldUsage that can be grouped by.""" groupBy:FieldUsageDimensions!"""Metrics of FieldUsage that can be aggregated over.""" metrics:FieldUsageMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type FilterBuildCheckFailed implements BuildCheckFailed&BuildCheckResult&FilterBuildCheckResult{buildInputs:FilterBuildInputs!buildPipelineTrack:BuildPipelineTrack!errors:[FilterBuildError!]!id:ID!passed:Boolean!workflowTask:FilterCheckTask!}type FilterBuildCheckPassed implements BuildCheckPassed&BuildCheckResult&FilterBuildCheckResult{buildInputs:FilterBuildInputs!buildPipelineTrack:BuildPipelineTrack!id:ID!passed:Boolean!supergraphSchemaHash:SHA256!workflowTask:FilterCheckTask!}interface FilterBuildCheckResult implements BuildCheckResult{buildInputs:FilterBuildInputs!buildPipelineTrack:BuildPipelineTrack!id:ID!passed:Boolean!workflowTask:FilterCheckTask!}type FilterBuildError implements BuildCheckError{""" +The step at which filtering failed. See https://www.apollographql.com/docs/studio/contracts/#contract-errors + for a list of existing steps.""" failedStep:String!message:String!}"""Inputs provided to the build for a contract variant, which filters types and fields from a source variant's schema.""" type FilterBuildInput{"""Schema filtering rules for the build, such as tags to include or exclude from the source variant schema.""" filterConfig:FilterConfig!"""The source variant schema document's SHA256 hash, represented as a hexadecimal string.""" schemaHash:String!}type FilterBuildInputs{"""The build pipeline track used for filtering. Note this is taken from upstream check workflow +or launch.""" buildPipelineTrack:BuildPipelineTrack!"""The exclude filters used for filtering.""" exclude:[String!]!"""Whether to hide unreachable objects, interfaces, unions, inputs, enums and scalars from +the resulting contract schema.""" hideUnreachableTypes:Boolean!"""The include filters used for filtering.""" include:[String!]!"""The SHA-256 of the supergraph schema document used for filtering.""" supergraphSchemaHash:SHA256!}input FilterCheckAsyncInput{config:HistoricQueryParametersInput!filterChanges:FilterCheckFilterChanges!gitContext:GitContextInput!}input FilterCheckFilterChanges{excludeAdditions:[String!]excludeRemovals:[String!]hideUnreachableTypesChange:Boolean includeAdditions:[String!]includeRemovals:[String!]}type FilterCheckTask implements BuildCheckTask&CheckWorkflowTask{"""The result of the filter build check. This will be null when the task is initializing or running.""" buildResult:FilterBuildCheckResult completedAt:Timestamp createdAt:Timestamp!id:ID!proposedBuildInputChanges:ProposedFilterBuildInputChanges!status:CheckWorkflowTaskStatus!targetURL:String workflow:CheckWorkflow!}"""The filter configuration used to build a contract schema. The configuration consists of lists of tags for schema elements to include or exclude in the resulting schema.""" type FilterConfig{"""Tags of schema elements to exclude from the contract schema.""" exclude:[String!]!"""Whether to hide unreachable objects, interfaces, unions, inputs, enums and scalars from the resulting contract schema.""" hideUnreachableTypes:Boolean!"""Tags of schema elements to include in the contract schema.""" include:[String!]!}input FilterConfigInput{"""A list of tags for schema elements to exclude from the resulting contract schema.""" exclude:[String!]!"""Whether to hide unreachable objects, interfaces, unions, inputs, enums and scalars from +the resulting contract schema. Defaults to `false`.""" hideUnreachableTypes:Boolean!=false """A list of tags for schema elements to include in the resulting contract schema.""" include:[String!]!}"""Experimental, this will likely be replaced by a nested diff.""" type FlatDiff{diff:[FlatDiffItem!]!id:ID!summary:FlatDiffSummary!}type FlatDiffAddArgument implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemValue{coordinate:String!type:FlatDiffType!value:String!}type FlatDiffAddDirective implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffAddDirectiveUsage implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemValue{coordinate:String!type:FlatDiffType!value:String!}type FlatDiffAddEnum implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffAddEnumValue implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffAddField implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemValue{coordinate:String!type:FlatDiffType!value:String!}type FlatDiffAddImplementation implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemValue{coordinate:String!type:FlatDiffType!value:String!}type FlatDiffAddInput implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffAddInterface implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffAddObject implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffAddScalar implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffAddSchemaDefinition implements FlatDiffItem{type:FlatDiffType!}type FlatDiffAddSchemaDirectiveUsage implements FlatDiffItem&FlatDiffItemValue{type:FlatDiffType!value:String!}type FlatDiffAddSchemaRootOperation implements FlatDiffItem&FlatDiffItemRootType&FlatDiffItemValue{rootType:String!type:FlatDiffType!value:String!}type FlatDiffAddUnion implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffAddUnionMember implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemValue{coordinate:String!type:FlatDiffType!value:String!}type FlatDiffAddValidLocation implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemValue{coordinate:String!type:FlatDiffType!value:String!}type FlatDiffChangeArgumentDefault implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemNullableValue{coordinate:String!type:FlatDiffType!value:String}type FlatDiffChangeDescription implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemNullableValue{coordinate:String!type:FlatDiffType!value:String}type FlatDiffChangeDirectiveRepeatable implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!value:Boolean!}type FlatDiffChangeInputFieldDefault implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemNullableValue{coordinate:String!type:FlatDiffType!value:String}type FlatDiffChangeSchemaDescription implements FlatDiffItem&FlatDiffItemNullableValue{type:FlatDiffType!value:String}interface FlatDiffItem{type:FlatDiffType!}interface FlatDiffItemCoordinate implements FlatDiffItem{coordinate:String!type:FlatDiffType!}interface FlatDiffItemNullableValue implements FlatDiffItem{type:FlatDiffType!value:String}interface FlatDiffItemRootType implements FlatDiffItem{rootType:String!type:FlatDiffType!}interface FlatDiffItemValue implements FlatDiffItem{type:FlatDiffType!value:String!}type FlatDiffRemoveArgument implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemValue{coordinate:String!type:FlatDiffType!value:String!}type FlatDiffRemoveDirective implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffRemoveDirectiveUsage implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemValue{coordinate:String!type:FlatDiffType!value:String!}type FlatDiffRemoveEnum implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffRemoveEnumValue implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffRemoveField implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemValue{coordinate:String!type:FlatDiffType!value:String!}type FlatDiffRemoveImplementation implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemValue{coordinate:String!type:FlatDiffType!value:String!}type FlatDiffRemoveInput implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffRemoveInterface implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffRemoveObject implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffRemoveScalar implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffRemoveSchemaDefinition implements FlatDiffItem{type:FlatDiffType!}type FlatDiffRemoveSchemaDirectiveUsage implements FlatDiffItem&FlatDiffItemValue{type:FlatDiffType!value:String!}type FlatDiffRemoveSchemaRootOperation implements FlatDiffItem&FlatDiffItemRootType{rootType:String!type:FlatDiffType!}type FlatDiffRemoveUnion implements FlatDiffItem&FlatDiffItemCoordinate{coordinate:String!type:FlatDiffType!}type FlatDiffRemoveUnionMember implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemValue{coordinate:String!type:FlatDiffType!value:String!}type FlatDiffRemoveValidLocation implements FlatDiffItem&FlatDiffItemCoordinate&FlatDiffItemValue{coordinate:String!type:FlatDiffType!value:String!}union FlatDiffResult=FlatDiff|NotFoundError|SchemaValidationError type FlatDiffSummary{directive:FlatDiffTypeSummary!enum:FlatDiffTypeSummary!input:FlatDiffTypeSummary!interface:FlatDiffTypeSummary!object:FlatDiffTypeSummary!scalar:FlatDiffTypeSummary!schema:FlatDiffTypeSummary!union:FlatDiffTypeSummary!}enum FlatDiffType{ADD_ARGUMENT ADD_DIRECTIVE ADD_DIRECTIVE_USAGE ADD_ENUM ADD_ENUM_VALUE ADD_FIELD ADD_IMPLEMENTATION ADD_INPUT ADD_INTERFACE ADD_OBJECT ADD_SCALAR ADD_SCHEMA_DEFINITION ADD_SCHEMA_DIRECTIVE_USAGE ADD_SCHEMA_ROOT_OPERATION ADD_UNION ADD_UNION_MEMBER ADD_VALID_LOCATION CHANGE_ARGUMENT_DEFAULT CHANGE_DESCRIPTION CHANGE_INPUT_FIELD_DEFAULT CHANGE_REPEATABLE CHANGE_SCHEMA_DESCRIPTION REMOVE_ARGUMENT REMOVE_DIRECTIVE REMOVE_DIRECTIVE_USAGE REMOVE_ENUM REMOVE_ENUM_VALUE REMOVE_FIELD REMOVE_IMPLEMENTATION REMOVE_INPUT REMOVE_INTERFACE REMOVE_OBJECT REMOVE_SCALAR REMOVE_SCHEMA_DEFINITION REMOVE_SCHEMA_DIRECTIVE_USAGE REMOVE_SCHEMA_ROOT_OPERATION REMOVE_UNION REMOVE_UNION_MEMBER REMOVE_VALID_LOCATION}type FlatDiffTypeSummary{add:Int!change:Int!remove:Int!typeCount:Int!}"""Error connecting to Fly""" type FlyClientError{"""Error message""" message:String!}"""Error triggering a rolling update""" type FlyForceRollingUpdateError{"""Concrete error for the flyForceRollingUpdate mutation""" error:FlyForceRollingUpdateErrorValue!}"""Concrete error for the flyForceRollingUpdate mutation""" union FlyForceRollingUpdateErrorValue=FlyClientError|InvalidRequest """Result of a flyForceRollingUpdate mutation""" union FlyForceRollingUpdateResult=FlyForceRollingUpdateError|FlyForceRollingUpdateSuccess """Success triggering a rolling update""" type FlyForceRollingUpdateSuccess{"""Whether the app was updated""" updated:Boolean!}type FlyRouterMutation{"""Force a rolling update""" forceRollingUpdate:FlyForceRollingUpdateResult!}type GQLBillingPlanFromGrpc{dbPlan:BillingPlan matchesDbPlan:Boolean rawProtoJson:String}type GitContext{branch:String commit:ID commitUrl:String committer:String message:String remoteHost:GitRemoteHost remoteUrl:String}"""This is stored with a schema when it is uploaded""" input GitContextInput{"""The Git repository branch used in the check.""" branch:String """The ID of the Git commit used in the check.""" commit:ID """The username of the user who created the Git commit used in the check.""" committer:String """The commit message of the Git commit used in the check.""" message:String """The Git repository's remote URL.""" remoteUrl:String}enum GitRemoteHost{BITBUCKET GITHUB GITLAB}"""Represents a graph API key, which has permissions scoped to a +user role for a single Apollo graph.""" type GraphApiKey implements ApiKey{"""The timestamp when the API key was created.""" createdAt:Timestamp!"""Details of the user or graph that created the API key.""" createdBy:Identity """The API key's ID.""" id:ID!"""The API key's name, for distinguishing it from other keys.""" keyName:String """The permission level assigned to the API key upon creation.""" role:UserPermission!"""The value of the API key. **This is a secret credential!**""" token:String!}type GraphCapabilities{""" False if this graph is a cloud supergraph.""" canPublishMonograph:Boolean!""" Currently, graph URL is not updatable for cloud supergraphs.""" canUpdateURL:Boolean!""" Minimum Federation Version track required for all variants of this graph.""" minimumBuildPipelineTrack:BuildPipelineTrack!}"""The timing details for the build step of a launch.""" type GraphCreationError{message:String!}union GraphCreationResult=GraphCreationError|Service """Filtering options for graph connections.""" input GraphFilter{"""Only include graphs in a certain state.""" state:GraphState """Only include graphs of certain types.""" type:[GraphType!]}"""A union of all containers that can comprise the components of a Studio graph""" union GraphImplementors=FederatedImplementingServices|NonFederatedImplementingService """The linter configuration for this graph.""" type GraphLinterConfiguration{"""The set of @tag names allowed in the schema.""" allowedTagNames:[String!]!"""Whether to ignore @deprecated elements from linting violations.""" ignoreDeprecated:Boolean!"""Whether to ignore @inaccessible elements from linting violations.""" ignoreInaccessible:Boolean!"""The set of lint rules configured for this graph.""" rules:[LinterRuleLevelConfiguration!]!}"""The changes to the linter configuration for this graph.""" input GraphLinterConfigurationChangesInput{"""A set of allowed @tag names to be added to the linting configuration for this graph or null if no changes should be made.""" allowedTagNameAdditions:[String!]"""A set of @tag names to be removed from the allowed @tag list for this graphs linting configuration or null if no changes should be made.""" allowedTagNameRemovals:[String!]"""Change whether @deprecated elements should be linted or null if no changes should be made.""" ignoreDeprecated:Boolean """Change whether @inaccessible elements should be linted or null if no changes should be made.""" ignoreInaccessible:Boolean """A set of rule changes or null if no changes should be made.""" rules:[LinterRuleLevelConfigurationChangesInput!]}type GraphQLDoc{graph:Service!hash:ID!source:GraphQLDocument!}"""A GraphQL document, such as the definition of an operation or schema.""" scalar GraphQLDocument """Various states a graph can be in.""" enum GraphState{"""The graph has not been configured with any variants.""" CONFIGURED """The graph has not been configured with any variants.""" NOT_CONFIGURED}enum GraphType{CLASSIC CLOUD_SUPERGRAPH SELF_HOSTED_SUPERGRAPH}"""A graph variant""" type GraphVariant{"""As new schema tags keep getting published, activeSchemaPublish refers to the latest.""" activeSchemaPublish:SchemaTag buildConfig:BuildConfig!checkConfiguration:VariantCheckConfiguration!"""Compose and filter preview contract schema built from this source variant.""" composeAndFilterPreview("""The filter configuration of a hypothetical contract variant on this variant. Null indicates that filtering should be skipped/not run, in which case ComposeAndFilterPreviewSuccess.filterResults will be null.""" filterConfig:FilterConfigInput """Any hypothetical changes desired for the subgraphs of this variant. Null is the same as the empty list.""" subgraphChanges:[ComposeAndFilterPreviewSubgraphChange!]):ComposeAndFilterPreviewResult """The version of composition currently in use, if applicable""" compositionVersion:String """The filter configuration used to build a contract schema. The configuration consists of lists of tags for schema elements to include or exclude in the resulting schema.""" contractFilterConfig:FilterConfig """A human-readable description of the filter configuration of this contract variant, or null if this isn't a contract +variant.""" contractFilterConfigDescription:String """Preview a Contract schema built from this source variant.""" contractPreview(filters:FilterConfigInput!):ContractPreview!"""Time the variant was created""" createdAt:Timestamp!derivedVariantCount:Int!"""Returns the list of variants derived from this variant. This currently includes contracts only.""" derivedVariants:[GraphVariant!]"""A list of the entities across all subgraphs, exposed to consumers & up. This value is null for non-federated variants.""" entities:EntitiesResponseOrError """Returns details about a field in the schema. Unless an error occurs, we will currently always return a non-null +response here, with the timestamps set to null if there is no usage of the field or if field doesn't exist in the +schema. However we are keeping the return type as nullable in case we want to update this later in a +backwards-compatible way to make null mean that the field doesn't exist in the schema at all.""" fieldInsights(fieldName:String!parentType:String!):FieldInsights """Returns a paginated list of field insights list items""" fieldInsightsList(after:String before:String filter:FieldInsightsListFilterInput first:Int from:Timestamp!last:Int orderBy:FieldInsightsListOrderByInput to:Timestamp!):GraphVariantFieldInsightsListItemConnection!"""The graph that this variant belongs to.""" graph:Service!"""Graph ID of the variant. Prefer using graph { id } when feasible.""" graphId:String!"""If the variant has managed subgraphs.""" hasManagedSubgraphs:Boolean """Represents whether this variant has a supergraph schema. Note that this can only be true for variants with build steps +(running e.g. federation composition or contracts filtering). This will be false for a variant with a build step if it +has never successfully published.""" hasSupergraphSchema:Boolean!"""The variant's global identifier in the form `graphID@variant`.""" id:ID!internalVariantUUID:String!"""Represents whether this variant is a Contract.""" isContract:Boolean """Is this variant one of the current user's favorite variants?""" isFavoriteOfCurrentUser:Boolean!"""If the variant has managed subgraphs.""" isFederated:Boolean@deprecated(reason:"Replaced by hasManagedSubgraphs")"""Represents whether this variant is a Proposal.""" isProposal:Boolean """If the variant is protected""" isProtected:Boolean!isPublic:Boolean!"""Represents whether this variant should be listed in the public variants directory. This can only be true if the variant is also public.""" isPubliclyListed:Boolean!"""Represents whether Apollo has verified the authenticity of this public variant. This can only be true if the variant is also public.""" isVerified:Boolean!"""Latest approved launch for the variant, and what is served through Uplink.""" latestApprovedLaunch:Launch """Latest launch for the variant, whether successful or not.""" latestLaunch:Launch """The details of the variant's most recent publication.""" latestPublication:SchemaTag launch(id:ID!):Launch """A list of launches ordered by date, asc or desc depending on orderBy. The maximum limit is 100.""" launchHistory(limit:Int!=100 offset:Int!=0 orderBy:LaunchHistoryOrder!=CREATED_DESC):[Launch!]!links:[LinkInfo!]lintResultById(taskId:ID!):LintResult """The variant's name (e.g., `staging`).""" name:String!"""A list of the saved [operation collections](https://www.apollographql.com/docs/studio/explorer/operation-collections/) associated with this variant.""" operationCollections:[OperationCollection!]!"""A list of the saved [operation collections](https://www.apollographql.com/docs/studio/explorer/operation-collections/) associated with this variant, paged.""" operationCollectionsConnection(after:String before:String first:Int last:Int):GraphVariantOperationCollectionConnection """The merged/computed/effective check configuration for the operations check task.""" operationsCheckConfiguration(overrides:OperationsCheckConfigurationOverridesInput):OperationsCheckConfiguration """If this is true tag directives in the core schema will also appear in the +api schema""" passTagDirectiveToApiSchema:Boolean!@deprecated(reason:"Use buildConfig.tagInApiSchema")"""Which permissions the current user has for interacting with this variant""" permissions:GraphVariantPermissions!"""The Persisted Query List linked to this variant, if any.""" persistedQueryList:PersistedQueryList """Generate a federated operation plan for a given operation""" plan(document:GraphQLDocument!operationName:String):QueryPlan """Explorer setting for preflight script to run before the actual GraphQL operations is run.""" preflightScript:String proposal:Proposal readme:Readme!"""Registry stats for this particular graph variant""" registryStatsWindow(from:Timestamp!resolution:Resolution to:Timestamp):RegistryStatsWindow """The total number of requests for this variant in the last 24 hours""" requestsInLastDay:Long """Router associated with this graph variant""" router:Router routerConfig:String """If the graphql endpoint is set up to accept cookies.""" sendCookies:Boolean """Explorer setting for shared headers for a graph""" sharedHeaders:String """The variant this variant is derived from. This property currently only exists on contract variants.""" sourceVariant:GraphVariant """Returns the details of the subgraph with the provided `name`, or null if this variant doesn't include a subgraph with that name.""" subgraph(name:ID!):FederatedImplementingService """A list of the subgraphs included in this variant. This value is null for non-federated variants. Set `includeDeleted` to `true` to include deleted subgraphs.""" subgraphs(includeDeleted:Boolean!=false):[FederatedImplementingService!]"""The URL of the variant's GraphQL endpoint for subscription operations.""" subscriptionUrl:String """A list of supported directives""" supportedDirectives:[DirectiveSupportStatus!]"""A list of the subgraphs that have been published to since the variant was created.""" updatedSubgraphs:[FederatedImplementingService!]"""The URL of the variant's GraphQL endpoint for query and mutation operations. For subscription operations, use `subscriptionUrl`.""" url:String """The last instant that usage information (e.g. operation stat, client stats) was reported for this variant""" usageLastReportedAt:Timestamp """Validate router configuration for this graph variant""" validateRouter(config:RouterConfigInput!):CloudValidationResult!}type GraphVariantFieldInsightsListItemConnection{"""A list of edges from the graph variant to its field insights list items.""" edges:[GraphVariantFieldInsightsListItemEdge!]"""A list of field insights list items that belong to a graph variant.""" nodes:[FieldInsightsListItem!]"""Information to aid in pagination.""" pageInfo:PageInfo!}"""An edge between a graph variant and a field insights list item.""" type GraphVariantFieldInsightsListItemEdge{"""A cursor for use in pagination.""" cursor:String!"""A field insights list item attached to the graph variant.""" node:FieldInsightsListItem}"""Ways to filter graph variants.""" enum GraphVariantFilter{"""All Variants""" ALL """Variants favorited by the current user""" FAVORITES}"""Result of looking up a variant by ref""" union GraphVariantLookup=GraphVariant|InvalidRefFormat """Modifies a variant of a graph, also called a schema tag in parts of our product.""" type GraphVariantMutation{addLinkToVariant(title:String type:LinkInfoType!url:String!):GraphVariant!buildConfig(tagInApiSchema:Boolean!=false version:BuildPipelineTrack!):GraphVariant createRouter(input:CreateRouterInput!):CreateRouterResult!"""Delete the variant.""" delete:DeleteSchemaTagResult!destroyRouter:DestroyRouterResult!"""Graph ID of the variant""" graphId:String!"""Global identifier for the graph variant, in the form `graph@variant`.""" id:ID!internalVariantUUID:String!linkPersistedQueryList(persistedQueryListId:ID!):LinkPersistedQueryListResultOrError!"""Name of the variant, like `variant`.""" name:String!passTagDirectiveToApiSchema(enable:Boolean!):GraphVariant """Runs composition on a graph variant with existing subgraphs and then publishes if successful.""" recomposeAndPublish(forcePublish:Boolean!=true):GraphVariant relaunch:RelaunchResult!removeLinkFromVariant(linkInfoId:ID!):GraphVariant!"""Gets the router attached to a graph variant""" router:RouterMutation runLintCheck(input:RunLintCheckInput!):CheckStepResult!service:Service!setIsFavoriteOfCurrentUser(favorite:Boolean!):GraphVariant!"""_Asynchronously_ kicks off operation checks for a proposed non-federated +schema change against its associated graph. + +Returns a `CheckRequestSuccess` object with a workflow ID that you can use +to check status, or an error object if the checks workflow failed to start.""" submitCheckSchemaAsync(input:CheckSchemaAsyncInput!):CheckRequestResult!"""Submit a request for a Filter Schema Check and receive a result with a workflow ID that can be used to check status, or an error message that explains what went wrong.""" submitFilterCheckAsync(input:FilterCheckAsyncInput!):CheckRequestResult!"""_Asynchronously_ kicks off composition and operation checks for a proposed subgraph schema change against its associated supergraph. + +Returns a `CheckRequestSuccess` object with a workflow ID that you can use +to check status, or an error object if the checks workflow failed to start.""" submitSubgraphCheckAsync(input:SubgraphCheckAsyncInput!):CheckRequestResult!unlinkPersistedQueryList:UnlinkPersistedQueryListResultOrError!updateCheckConfigurationDownstreamVariants("""During downstream checks, this variant's check workflow will wait for all downstream check +workflows for variants to complete, and if any of them fail, then +this variant's check workflow will fail. If this argument is null, the value is unchanged.""" blockingDownstreamVariants:[String!]):VariantCheckConfiguration!updateCheckConfigurationEnableOperationsCheck(enabled:Boolean!):VariantCheckConfiguration updateCheckConfigurationExcludedClients("""When this argument is true, indicates that graph-level configuration is appended to the +variant-level configuration.""" appendGraphSettings:Boolean!"""During operation checks, ignore clients matching any of the filters. If this +argument is null, the value is unchanged.""" excludedClients:[ClientFilterInput!]):VariantCheckConfiguration!updateCheckConfigurationExcludedOperations("""When this argument is true, indicates that graph-level configuration is appended to the +variant-level configuration.""" appendGraphSettings:Boolean!"""During operation checks, ignore operations matching any of the +filters. If this argument is null, the value is unchanged.""" excludedOperationNames:[OperationNameFilterInput!]"""During operation checks, ignore operations matching any of the filters. If +this argument is null, the value is unchanged.""" excludedOperations:[OperationInfoFilterInput!]):VariantCheckConfiguration!updateCheckConfigurationIncludedVariants("""During operation checks, fetch operations from the metrics data for +variants. If the useGraphSettings argument is true, this argument is ignored. If the +useGraphSettings argument is false and this argument is null, the value is unchanged (if +useGraphSettings was previously true, the default of a list containing just this variant is +used instead).""" includedVariants:[String!]"""When this argument is true, indicates that graph-level configuration is used for this variant +setting.""" useGraphSettings:Boolean!):VariantCheckConfiguration!updateCheckConfigurationTimeRange("""During operation checks, ignore operations that executed less than +times in the time range. If the useGraphSettings argument is true, this argument is ignored. If +the useGraphSettings argument is false and this argument is null, the value is unchanged (if +useGraphSettings was previously true, the default of 1 is used instead).""" operationCountThreshold:Int """Duration operation checks, ignore operations that constituted less than +% of the operations in the time range. Expected values are +between 0% and 5%. If the useGraphSettings argument is true, this argument is ignored. If the +useGraphSettings argument is false and this argument is null, the value is unchanged (if +useGraphSettings was previously true, the default of 0% is used instead).""" operationCountThresholdPercentage:Float """During operation checks, fetch operations from the last seconds. If the +useGraphSettings argument is true, this argument is ignored. If the useGraphSettings argument +is false and this argument is null, the value is unchanged (if useGraphSettings was previously +true, the default of 7 days is used instead).""" timeRangeSeconds:Long """When this argument is true, indicates that graph-level configuration is used for this variant +setting.""" useGraphSettings:Boolean!):VariantCheckConfiguration!updateIsProtected(isProtected:Boolean!):GraphVariant updatePreflightScript(preflightScript:String):GraphVariant updateRouter(input:UpdateRouterInput!):UpdateRouterResult!updateSendCookies(sendCookies:Boolean!):GraphVariant updateSharedHeaders(sharedHeaders:String):GraphVariant updateSubscriptionURL(subscriptionUrl:String):GraphVariant updateURL(url:String):GraphVariant updateVariantIsPublic(isPublic:Boolean!):GraphVariant updateVariantIsPubliclyListed(isPubliclyListed:Boolean!):GraphVariant updateVariantIsVerified(isVerified:Boolean!):GraphVariant """Updates the [README](https://www.apollographql.com/docs/studio/org/graphs/#the-readme-page) of this variant.""" updateVariantReadme("""The full new text of the README, as a Markdown-formatted string.""" readme:String!):GraphVariant upsertRouterConfig(configuration:String!):UpsertRouterResult}type GraphVariantOperationCollectionConnection{"""A list of edges from the graph variant to its operation collections.""" edges:[GraphVariantOperationCollectionEdge!]"""A list of operation collections attached to a graph variant.""" nodes:[OperationCollection!]"""Information to aid in pagination.""" pageInfo:PageInfo!totalCount:Int!}"""An edge between a graph variant and an operation collection.""" type GraphVariantOperationCollectionEdge{"""A cursor for use in pagination.""" cursor:String!"""An operation collection attached to a graph variant.""" node:OperationCollection}"""Individual permissions for the current user when interacting with a particular Studio graph variant.""" type GraphVariantPermissions{canCreateCollectionInVariant:Boolean!"""Whether the currently authenticated user is permitted to manage/update this variant's build configuration (e.g., build pipeline version).""" canManageBuildConfig:Boolean!"""Whether the currently authenticated user is permitted to manage/update cloud routers""" canManageCloudRouter:Boolean!"""Whether the currently authenticated user is permitted to update variant-level settings for the Apollo Studio Explorer.""" canManageExplorerSettings:Boolean!"""Whether the currently authenticated user is permitted to publish schemas to this variant.""" canPushSchemas:Boolean!"""Whether the currently authenticated user is permitted to view this variant's build configuration details (e.g., build pipeline version).""" canQueryBuildConfig:Boolean!"""Whether the currently authenticated user is permitted to view details regarding cloud routers""" canQueryCloudRouter:Boolean!"""Whether the currently authenticated user is permitted to view cloud router logs""" canQueryCloudRouterLogs:Boolean!"""Whether the currently authenticated user is permitted to download schemas associated to this variant.""" canQuerySchemas:Boolean!canShareCollectionInVariant:Boolean!canUpdateVariantLinkInfo:Boolean!"""Whether the currently authenticated user is permitted to update the README for this variant.""" canUpdateVariantReadme:Boolean!variantId:ID!}enum HTTPMethod{CONNECT DELETE GET HEAD OPTIONS PATCH POST PUT TRACE UNKNOWN UNRECOGNIZED}input HistoricQueryParameters{"""A list of clients to filter out during validation.""" excludedClients:[ClientInfoFilter!]=null """A list of operation names to filter out during validation.""" excludedOperationNames:[OperationNameFilterInput!]=null from:String="-86400" """A list of operation IDs to filter out during validation.""" ignoredOperations:[ID!]=null """A list of variants to include in the validation. If no variants are provided +then this defaults to the "current" variant along with the base variant. The +base variant indicates the schema that generates diff and marks the metrics that +are checked for broken queries. We union this base variant with the untagged values('', +same as null inside of `in`, and 'current') in this metrics fetch. This strategy +supports users who have not tagged their metrics or schema.""" includedVariants:[String!]=null """Minimum number of requests within the window for a query to be considered.""" queryCountThreshold:Int=1 """Number of requests within the window for a query to be considered, relative to +total request count. Expected values are between 0 and 0.05 (minimum 5% of total +request volume)""" queryCountThresholdPercentage:Float=0 to:String="0"}"""Input type to provide when specifying configuration details for schema checks.""" input HistoricQueryParametersInput{"""Clients to be excluded from check.""" excludedClients:[ClientInfoFilter!]"""Operations to be ignored in this schema check, specified by operation name.""" excludedOperationNames:[OperationNameFilterInput!]"""Start time for operations to be checked against. Specified as either a) an ISO formatted date/time string or b) a negative number of seconds relative to the time the check request was submitted.""" from:String """Operations to be ignored in this schema check, specified by ID.""" ignoredOperations:[ID!]"""Graph variants to be included in check.""" includedVariants:[String!]"""Maximum number of queries to be checked against the change.""" queryCountThreshold:Int """Only fail check if this percentage of operations would be negatively impacted.""" queryCountThresholdPercentage:Float """End time for operations to be checked against. Specified as either a) an ISO formatted date/time string or b) a negative number of seconds relative to the time the check request was submitted.""" to:String}"""An identity (such as a `User` or `Graph`) in Apollo Studio. See implementing types for details.""" interface Identity{"""Returns a representation of the identity as an `Actor` type.""" asActor:Actor!"""The identity's identifier, which is unique among objects of its type.""" id:ID!"""The identity's human-readable name.""" name:String!}"""An actor's identity and info about the client they used to perform the action""" type IdentityAndClientInfo{"""Client name provided when the actor performed the action""" clientName:String """Client version provided when the actor performed the action""" clientVersion:String """Identity info about the actor""" identity:Identity}union IdentityMutation=ServiceMutation|UserMutation type IgnoreOperationsInChecksResult{graph:Service!}type IgnoredRule{ignoredRule:LintRule!schemaCoordinate:String!subgraphName:String}input IgnoredRuleInput{ignoredRule:LintRule!schemaCoordinate:String!subgraphName:String}"""The location of the implementing service config file in storage""" type ImplementingServiceLocation{"""The name of the implementing service""" name:String!"""The path in storage to access the implementing service config file""" path:String!}type InternalAdminUser{role:InternalMdgAdminRole!userID:String!}type InternalIdentity implements Identity{accounts:[Account!]!asActor:Actor!email:String id:ID!name:String!}enum InternalMdgAdminRole{INTERNAL_MDG_READ_ONLY INTERNAL_MDG_SALES INTERNAL_MDG_SUPER_ADMIN INTERNAL_MDG_SUPPORT}"""Generic server error. This should only ever return 'internal server error' as a message""" type InternalServerError implements Error{"""Message related to the internal error""" message:String!}type IntrospectionDirective{args:[IntrospectionInputValue!]!description:String locations:[IntrospectionDirectiveLocation!]!name:String!}input IntrospectionDirectiveInput{args:[IntrospectionInputValueInput!]!description:String isRepeatable:Boolean locations:[IntrospectionDirectiveLocation!]!name:String!}"""__DirectiveLocation introspection type""" enum IntrospectionDirectiveLocation{"""Location adjacent to an argument definition.""" ARGUMENT_DEFINITION """Location adjacent to an enum definition.""" ENUM """Location adjacent to an enum value definition.""" ENUM_VALUE """Location adjacent to a field.""" FIELD """Location adjacent to a field definition.""" FIELD_DEFINITION """Location adjacent to a fragment definition.""" FRAGMENT_DEFINITION """Location adjacent to a fragment spread.""" FRAGMENT_SPREAD """Location adjacent to an inline fragment.""" INLINE_FRAGMENT """Location adjacent to an input object field definition.""" INPUT_FIELD_DEFINITION """Location adjacent to an input object type definition.""" INPUT_OBJECT """Location adjacent to an interface definition.""" INTERFACE """Location adjacent to a mutation operation.""" MUTATION """Location adjacent to an object type definition.""" OBJECT """Location adjacent to a query operation.""" QUERY """Location adjacent to a scalar definition.""" SCALAR """Location adjacent to a schema definition.""" SCHEMA """Location adjacent to a subscription operation.""" SUBSCRIPTION """Location adjacent to a union definition.""" UNION """Location adjacent to a variable definition.""" VARIABLE_DEFINITION}"""Values associated with introspection result for an enum value""" type IntrospectionEnumValue{depreactionReason:String@deprecated(reason:"Use deprecationReason instead")deprecationReason:String description:String isDeprecated:Boolean!name:String!}"""__EnumValue introspection type""" input IntrospectionEnumValueInput{deprecationReason:String description:String isDeprecated:Boolean!name:String!}"""Values associated with introspection result for field""" type IntrospectionField{args:[IntrospectionInputValue!]!deprecationReason:String description:String isDeprecated:Boolean!name:String!type:IntrospectionType!}"""__Field introspection type""" input IntrospectionFieldInput{args:[IntrospectionInputValueInput!]!deprecationReason:String description:String isDeprecated:Boolean!name:String!type:IntrospectionTypeInput!}"""Values associated with introspection result for an input field""" type IntrospectionInputValue{defaultValue:String description:String name:String!type:IntrospectionType!}"""__Value introspection type""" input IntrospectionInputValueInput{defaultValue:String deprecationReason:String description:String isDeprecated:Boolean name:String!type:IntrospectionTypeInput!}type IntrospectionSchema{directives:[IntrospectionDirective!]!mutationType:IntrospectionType queryType:IntrospectionType!subscriptionType:IntrospectionType types(filter:TypeFilterConfig={includeAbstractTypes:true includeBuiltInTypes:true includeIntrospectionTypes:true}):[IntrospectionType!]!}"""__Schema introspection type""" input IntrospectionSchemaInput{description:String directives:[IntrospectionDirectiveInput!]!mutationType:IntrospectionTypeRefInput queryType:IntrospectionTypeRefInput!subscriptionType:IntrospectionTypeRefInput types:[IntrospectionTypeInput!]}"""Object containing all possible values for an introspectionType""" type IntrospectionType{"""the base kind of the type this references, ignoring lists and nullability""" baseKind:IntrospectionTypeKind description:String enumValues(includeDeprecated:Boolean=false):[IntrospectionEnumValue!]fields:[IntrospectionField!]inputFields:[IntrospectionInputValue!]interfaces:[IntrospectionType!]kind:IntrospectionTypeKind name:String ofType:IntrospectionType possibleTypes:[IntrospectionType!]"""printed representation of type, including nested nullability and list ofTypes""" printed:String!}"""__Type introspection type""" input IntrospectionTypeInput{description:String enumValues:[IntrospectionEnumValueInput!]fields:[IntrospectionFieldInput!]inputFields:[IntrospectionInputValueInput!]interfaces:[IntrospectionTypeInput!]kind:IntrospectionTypeKind!name:String ofType:IntrospectionTypeInput possibleTypes:[IntrospectionTypeInput!]specifiedByUrl:String}enum IntrospectionTypeKind{"""Indicates this type is an enum. 'enumValues' is a valid field.""" ENUM """Indicates this type is an input object. 'inputFields' is a valid field.""" INPUT_OBJECT """Indicates this type is an interface. 'fields' and 'possibleTypes' are valid +fields""" INTERFACE """Indicates this type is a list. 'ofType' is a valid field.""" LIST """Indicates this type is a non-null. 'ofType' is a valid field.""" NON_NULL """Indicates this type is an object. 'fields' and 'interfaces' are valid fields.""" OBJECT """Indicates this type is a scalar.""" SCALAR """Indicates this type is a union. 'possibleTypes' is a valid field.""" UNION}"""Shallow __Type introspection type""" input IntrospectionTypeRefInput{kind:String name:String!}"""An error caused by providing invalid input for a task, such as schema checks.""" type InvalidInputError{"""The error message.""" message:String!}"""Generic input error""" type InvalidInputErrors implements Error{errors:[CloudInvalidInputError!]!message:String!}type InvalidOperation{errors:[OperationValidationError!]signature:ID!}"""This object is returned when a request to fetch a Studio graph variant provides an invalid graph ref.""" type InvalidRefFormat implements Error{message:String!}"""Invalid request""" type InvalidRequest{"""Error message""" message:String!}type InvalidTarget implements Error{message:String!}type Invoice{closedAt:Timestamp collectionMethod:String createdAt:Timestamp!id:ID!invoiceNumber:Int!invoiceNumberV2:String!state:InvoiceState!totalInCents:Int!updatedAt:Timestamp!uuid:ID!}type InvoiceLineItem{"""Line items may be grouped to help the customer better understand their charges""" groupKey:String """Line items may be grouped to help the customer better understand their charges""" groupValue:String name:String!"""The quantity of 'things' in this line item. (e.g. number of operations, seats, etc). +May be null for flat charges.""" quantity:Int """The amount this line item costs.""" totalInCents:Int!}enum InvoiceState{COLLECTED FAILED OPEN PAST_DUE UNKNOWN VOID}enum InvoiceStateV2{COLLECTED FAILED OPEN PAST_DUE UNKNOWN VOID}scalar JSON """Represents the complete process of making a set of updates to a deployed graph variant.""" type Launch{"""The timestamp when the launch was approved.""" approvedAt:Timestamp """The associated build for this launch (a build includes schema composition and contract filtering). This value is null until the build is initiated.""" build:Build """The inputs provided to this launch's associated build, including subgraph schemas and contract filters.""" buildInput:BuildInput!"""The timestamp when the launch completed. This value is null until the launch completes.""" completedAt:Timestamp """The timestamp when the launch was initiated.""" createdAt:Timestamp!"""Contract launches that were triggered by this launch.""" downstreamLaunches:[Launch!]!"""The ID of the launch's associated graph.""" graphId:String!"""The name of the launch's associated variant.""" graphVariant:String!"""The unique identifier for this launch.""" id:ID!isAvailable:Boolean """Whether the launch completed.""" isCompleted:Boolean """Whether the result of the launch has been published to the associated graph and variant. This is always false for a failed launch.""" isPublished:Boolean isTarget:Boolean """The most recent launch sequence step that has started but not necessarily completed.""" latestSequenceStep:LaunchSequenceStep """Cloud Router order for this launch ID""" order:OrderOrError!proposalSummary:ProposalSummary """A specific publication of a graph variant pertaining to this launch.""" publication:SchemaTag """A list of results from the completed launch. The items included in this list vary depending on whether the launch succeeded, failed, or was superseded.""" results:[LaunchResult!]!"""Cloud router configuration associated with this build event. It will be non-null for any cloud-router variant, and null for any not cloudy variant/graph.""" routerConfig:String schemaTag:SchemaTag """A list of all serial steps in the launch sequence. This list can change as the launch progresses. For example, a `LaunchCompletedStep` is appended after a launch completes.""" sequence:[LaunchSequenceStep!]!"""A shortened version of `Launch.id` that includes only the first 8 characters.""" shortenedID:String!"""The launch's status. If a launch is superseded, its status remains `LAUNCH_INITIATED`. To check for a superseded launch, use `supersededAt`.""" status:LaunchStatus!"""A list of subgraph changes that are included in this launch.""" subgraphChanges:[SubgraphChange!]"""The timestamp when this launch was superseded by another launch. If an active launch is superseded, it terminates.""" supersededAt:Timestamp """The launch that superseded this launch, if any. If an active launch is superseded, it terminates.""" supersededBy:Launch """The source variant launch that caused this launch to be initiated. This value is present only for contract variant launches. Otherwise, it's null.""" upstreamLaunch:Launch}enum LaunchHistoryOrder{CREATED_ASC CREATED_DESC}"""Types of results that can be associated with a `Launch`""" union LaunchResult=ChangelogLaunchResult """The timing details for the build step of a launch.""" type LaunchSequenceBuildStep{"""The timestamp when the step completed.""" completedAt:Timestamp """The timestamp when the step started.""" startedAt:Timestamp}"""The timing details for the completion step of a launch.""" type LaunchSequenceCompletedStep{"""The timestamp when the step (and therefore the launch) completed.""" completedAt:Timestamp}"""The timing details for the initiation step of a launch.""" type LaunchSequenceInitiatedStep{"""The timestamp when the step (and therefore the launch) started.""" startedAt:Timestamp}"""The timing details for the publish step of a launch.""" type LaunchSequencePublishStep{"""The timestamp when the step completed.""" completedAt:Timestamp """The timestamp when the step started.""" startedAt:Timestamp}"""Represents the various steps that occur in sequence during a single launch.""" union LaunchSequenceStep=LaunchSequenceBuildStep|LaunchSequenceCompletedStep|LaunchSequenceInitiatedStep|LaunchSequencePublishStep|LaunchSequenceSupersededStep """The timing details for the superseded step of a launch. This step occurs only if the launch is superseded by another launch.""" type LaunchSequenceSupersededStep{"""The timestamp when the step completed, thereby ending the execution of this launch in favor of the superseding launch.""" completedAt:Timestamp}enum LaunchStatus{LAUNCH_COMPLETED LAUNCH_FAILED LAUNCH_INITIATED}type LinkInfo{createdAt:Timestamp!id:ID!title:String type:LinkInfoType!url:String!}enum LinkInfoType{DEVELOPER_PORTAL OTHER REPOSITORY}type LinkPersistedQueryListResult{graphVariant:GraphVariant!persistedQueryList:PersistedQueryList!}union LinkPersistedQueryListResultOrError=LinkPersistedQueryListResult|ListNotFoundError|PermissionError|VariantAlreadyLinkedError type LintCheckTask implements CheckWorkflowTask{completedAt:Timestamp createdAt:Timestamp!graphID:ID!id:ID!result:LintResult results:LintResult@deprecated(reason:"Use LintCheckTask.result instead.")status:CheckWorkflowTaskStatus!targetURL:String workflow:CheckWorkflow!}"""A single rule violation.""" type LintDiagnostic{"""The schema coordinate of this diagnostic.""" coordinate:String!"""The graph's configured level for the rule.""" level:LintDiagnosticLevel!"""The message describing the rule violation.""" message:String!"""The lint rule being violated.""" rule:LintRule!"""The human readable position in the file of the rule violation.""" sourceLocations:[Location!]!}"""The severity level of an lint result.""" enum LintDiagnosticLevel{ERROR IGNORED WARNING}"""The result of linting a schema.""" type LintResult{"""The set of lint rule violations found in the schema.""" diagnostics:[LintDiagnostic!]!"""Stats generated from the resulting diagnostics.""" stats:LintStats!}enum LintRule{CONTACT_DIRECTIVE_MISSING DEPRECATED_DIRECTIVE_MISSING_REASON 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 INPUT_ARGUMENT_NAMES_SHOULD_BE_CAMEL_CASE INPUT_TYPE_SUFFIX INTERFACE_PREFIX INTERFACE_SUFFIX OBJECT_PREFIX OBJECT_SUFFIX QUERY_DOCUMENT_DECLARATION RESTY_FIELD_NAMES TAG_DIRECTIVE_USES_UNKNOWN_NAME TYPE_NAMES_SHOULD_BE_PASCAL_CASE TYPE_PREFIX TYPE_SUFFIX}"""Stats generated from linting a schema against the graph's linter configuration.""" type LintStats{"""Total number of lint errors.""" errorsCount:Int!"""Total number of lint rules ignored.""" ignoredCount:Int!"""Total number of lint rules violated.""" totalCount:Int!"""Total number of lint warnings.""" warningsCount:Int!}input LinterIgnoredRuleChangesInput{ruleViolationsToEnable:[IgnoredRuleInput!]!ruleViolationsToIgnore:[IgnoredRuleInput!]!}type LinterRuleLevelConfiguration{"""Illustrative code showcasing the potential violation of this rule.""" badExampleCode:String """A human readable description of the rule.""" description:String!"""Illustrative code showcasing the fix for the potential violation of this rule.""" goodExampleCode:String """The configured level for the rule.""" level:LintDiagnosticLevel!"""The name for this lint rule.""" rule:LintRule!}input LinterRuleLevelConfigurationChangesInput{level:LintDiagnosticLevel!rule:LintRule!}type ListNotFoundError implements Error{listId:ID!message:String!}type Location{end:Coordinate start:Coordinate subgraphName:String}"""Level of the log entry""" enum LogLevel{DEBUG ERROR INFO WARN}"""Order log message""" type LogMessage{"""Log level""" level:LogLevel!"""Log message contents""" message:String!"""Timestamp in UTC""" timestamp:DateTime!}"""Long type""" scalar Long type MarkChangesForOperationAsSafeResult{"""Nice to have for the frontend since the Apollo cache is already watching for AffectedQuery to update. +This might return null if no behavior changes were found for the affected operation ID. +This is a weird situation that should never happen.""" affectedOperation:AffectedQuery message:String!success:Boolean!}type MediaUploadInfo{csrfToken:String!maxContentLength:Int!url:String!}type Message{auditLog:[AuditLog!]!channels:[SlackCommunicationChannel!]!confirmations:[MessageConfirmation]!content:MessageContent!createdAt:Timestamp!id:ID!modifiedAt:Timestamp!state:State!user:RequesterUser!}type MessageConfirmation{channel:SlackCommunicationChannel createdAt:Timestamp!id:ID!modifiedAt:Timestamp!slackMessage:SlackMessageMeta!state:SlackPublishState!}type MessageContent{body:String!buttonText:String buttonURL:String header:String!}input MessageInput{body_text:String!button_text:String button_url:String channel_id:[ID!]!header_text:String!}union MessageMutationResult=CustomerSupportSlackError|Message type MetricStatWindow{timestamp:Timestamp!value:Long!windowSize:BillingUsageStatsWindowSize!}union MoveOperationCollectionEntryResult=InvalidTarget|MoveOperationCollectionEntrySuccess|PermissionError type MoveOperationCollectionEntrySuccess{operation:OperationCollectionEntry!originCollection:OperationCollection!targetCollection:OperationCollection!}"""GraphQL mutations""" type Mutation{account(id:ID!):AccountMutation approveMessage(messageId:ID!state:State!):MessageMutationResult!billing:BillingMutation """Cloud mutations""" cloud:CloudMutation!createMessage(message:MessageInput!):MessageMutationResult!"""Creates an [operation collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/) for a given variant, or creates a [sandbox collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/#sandbox-collections) without an associated variant.""" createOperationCollection("""The collection's description.""" description:String """Whether the collection is a [sandbox collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/#sandbox-collections).""" isSandbox:Boolean!"""Whether the collection is shared across its associated organization.""" isShared:Boolean!"""The minimum role a user needs to edit this collection. Valid values: null, CONSUMER, OBSERVER, DOCUMENTER, CONTRIBUTOR, GRAPH_ADMIN. This value is ignored if `isShared` is `false`. The default value is `GRAPH_ADMIN`.""" minEditRole:UserPermission """The collection's name.""" name:String!"""The [graph ref](https://www.apollographql.com/docs/rover/conventions/#graph-refs) of the graph variants to associate the collection with.""" variantRefs:[ID!]):CreateOperationCollectionResult!editMessage(messageId:ID!messageUpdates:MessageInput!):MessageMutationResult!"""Finalize a password reset with a token included in the E-mail link, +returns the corresponding login email when successful""" finalizePasswordReset(newPassword:String!resetToken:String!):String """Provides access to mutation fields for modifying a Studio graph with the provided ID.""" graph(id:ID!):ServiceMutation """Join an account with a token""" joinAccount(accountId:ID!joinToken:String!):Account me:IdentityMutation newAccount(companyUrl:String id:ID!organizationName:String planId:String):Account newService(accountId:ID!description:String hiddenFromUninvitedNonAdminAccountMembers:Boolean!=false id:ID!isDev:Boolean=false@deprecated name:String onboardingArchitecture:OnboardingArchitecture title:String):Service operationCollection(id:ID!):OperationCollectionMutation proposal(id:ID!):ProposalMutationResult!proposalByVariantRef(variantRef:ID!):ProposalMutationResult!publishSlackMessage(messageId:ID!):MessageMutationResult!publishSlackTest(messageId:ID!):MessageMutationResult!"""Push a lead to Marketo by program ID""" pushMarketoLead(input:PushMarketoLeadInput!"""Marketo program ID""" programId:ID!"""Marketo program status""" programStatus:String """Marketo lead source""" source:String):Boolean!recallMessage(slackChannelId:ID!slackMessageId:ID!):MessageMutationResult!"""Report a running GraphQL server's schema.""" reportSchema("""Only sent if previously requested i.e. received ReportSchemaResult with withCoreSchema = true. This is a GraphQL schema document as a string. Note that for a GraphQL server with a core schema, this should be the core schema, not the API schema.""" coreSchema:String """Information about server and its schema.""" report:SchemaReport!):ReportSchemaResult """Ask for a user's password to be reset by E-mail""" resetPassword(email:String!):Void resolveAllInternalCronExecutions(group:String name:String):Void resolveInternalCronExecution(id:ID!):CronExecution service(id:ID!):ServiceMutation """Set the subscriptions for a given email""" setSubscriptions(email:String!subscriptions:[EmailCategory!]!token:String!):EmailPreferences """Set the studio settings for the current user""" setUserSettings(newSettings:UserSettingsInput):UserSettings signUp(email:String!fullName:String!password:String!referrer:String trackingGoogleClientId:String trackingMarketoClientId:String userSegment:UserSegment utmCampaign:String utmMedium:String utmSource:String):User """This is called by the form shown to users after they delete their user or organization account.""" submitPostDeletionFeedback(feedback:String!targetIdentifier:ID!targetType:DeletionTargetType!):Void """Mutation for basic engagement tracking in studio""" track(event:EventEnum!graphID:String!graphVariant:String!="current"):Void """Router usage tracking. Reserved to https://router.apollo.dev/telemetry (https://github.com/apollographql/orbiter).""" trackRouterUsage("""If we think the router is being run on continuous integration then this will be populated""" ci:String """The OS that the router is running on""" os:String!"""A random ID that is generated on first startup of the Router. It is not persistent between restarts of the Router, but will be persistent for hot reloads""" sessionId:ID!"""A list of key count pairs that represents the a path into the config/arguments and the number of times that it occurred""" usage:[RouterUsageInput!]!"""The version of the Router""" version:String!):Void """Rover session tracking. Reserved to https://rover.apollo.dev/telemetry (https://github.com/apollographql/orbiter).""" trackRoverSession(anonymousId:ID!arguments:[RoverArgumentInput!]!ci:String command:String!cwdHash:SHA256!os:String!remoteUrlHash:SHA256 sessionId:ID!version:String!):Void transferOdysseyProgress(from:ID!to:ID!):Boolean!"""Unsubscribe a given email from all emails""" unsubscribeFromAll(email:String!token:String!):EmailPreferences """Provides access to mutation fields for modifying an Apollo user with the +provided ID.""" user(id:ID!):UserMutation}"""ISO 8601 combined date and time without timezone. # Examples -* `2015-07-01T08:59:60.123`, -""" -scalar NaiveDateTime - -type NamedIntrospectionArg { - name: String - description: String -} - -""" -The shared fields for a named introspection type. Currently this is returned for the +* `2015-07-01T08:59:60.123`,""" scalar NaiveDateTime type NamedIntrospectionArg{description:String name:String}type NamedIntrospectionArgNoDescription{name:String}"""The shared fields for a named introspection type. Currently this is returned for the top level value affected by a change. In the future, we may update this type to be an interface, which is extended by the more specific types: scalar, object, input object, union, interface, and enum For an in-depth look at where these types come from, see: -https://github.com/DefinitelyTyped/DefinitelyTyped/blob/659eb50d3/types/graphql/utilities/introspectionQuery.d.ts#L31-L37 -""" -type NamedIntrospectionType { - kind: IntrospectionTypeKind - name: String - description: String -} - -""" -Introspection values that can be children of other types for changes, such +https://github.com/DefinitelyTyped/DefinitelyTyped/blob/659eb50d3/types/graphql/utilities/introspectionQuery.d.ts#L31-L37""" type NamedIntrospectionType{description:String kind:IntrospectionTypeKind name:String}type NamedIntrospectionTypeNoDescription{name:String}"""Introspection values that can be children of other types for changes, such as input fields, objects in interfaces, enum values. In the future, this value could become an interface to allow fields specific to the types -returned. -""" -type NamedIntrospectionValue { - name: String - description: String - printedType: String -} - -"""An error that occurs when a requested object is not found.""" -type NotFoundError implements Error { - """The error message.""" - message: String! -} - -"""A list of saved GraphQL operations.""" -type OperationCollection { - """The timestamp when the collection was created.""" - createdAt: Timestamp! - """The user or other entity that created the collection.""" - createdBy: Identity - """The collection's description. A `null` description was never set, and empty string description was set to be empty string by a user, or other entity.""" - description: String - id: ID! - """Whether the current user has marked the collection as a favorite.""" - isFavorite: Boolean! - """Whether the collection is a [sandbox collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/#sandbox-collections).""" - isSandbox: Boolean! - """Whether the collection is shared across its associated organization.""" - isShared: Boolean! - """The timestamp when the collection was most recently updated.""" - lastUpdatedAt: Timestamp! - """The user or other entity that most recently updated the collection.""" - lastUpdatedBy: Identity - """The minimum role a user needs to edit this collection. Valid values: null, CONSUMER, OBSERVER, DOCUMENTER, CONTRIBUTOR, GRAPH_ADMIN. This value is always `null` if `isShared` is `false`. If `null` when `isShared` is `true`, the minimum role is `GRAPH_ADMIN`.""" - minEditRole: UserPermission - """The collection's name.""" - name: String! - """Returns the operation in the collection with the specified ID, if any.""" - operation(id: ID!): OperationCollectionEntryResult - """A list of the GraphQL operations that belong to the collection.""" - operations: [OperationCollectionEntry!]! - """The permissions that the current user has for the collection.""" - permissions: OperationCollectionPermissions! -} - -"""A saved operation entry within an Operation Collection.""" -type OperationCollectionEntry { - """The timestamp when the entry was created.""" - createdAt: Timestamp! - """The user or other entity that created the entry.""" - createdBy: Identity - """Details of the entry's associated operation, such as its `body` and `variables`.""" - currentOperationRevision: OperationCollectionEntryState! - id: ID! - """The timestamp when the entry was most recently updated.""" - lastUpdatedAt: Timestamp! - """The user or other entity that most recently updated the entry.""" - lastUpdatedBy: Identity - """The entry's name.""" - name: String! - """The entry's lexicographical ordering index within its containing collection.""" - orderingIndex: String! -} - -"""Provides fields for modifying an operation in a collection.""" -type OperationCollectionEntryMutation { - """Updates the name of an operation.""" - updateName(name: String!): UpdateOperationCollectionEntryResult - """Updates the body, headers, and/or variables of an operation.""" - updateValues(operationInput: OperationCollectionEntryStateInput!): UpdateOperationCollectionEntryResult -} - -union OperationCollectionEntryMutationResult = NotFoundError | OperationCollectionEntryMutation | PermissionError - -"""Possible return values when querying for an entry in an operation collection (either the entry object or an `Error` object).""" -union OperationCollectionEntryResult = NotFoundError | OperationCollectionEntry - -"""The most recent body, variable and header values of a saved operation entry.""" -type OperationCollectionEntryState { - """The raw body of the entry's GraphQL operation.""" - body: String! - """Headers for the entry's GraphQL operation.""" - headers: [OperationHeader!] - """Variables for the entry's GraphQL operation, as a JSON string.""" - variables: String -} - -"""Fields for creating or modifying an operation collection entry.""" -input OperationCollectionEntryStateInput { - """The operation's query body.""" - body: String! - """The operation's headers.""" - headers: [OperationHeaderInput!] - """The operation's variables.""" - variables: String -} - -"""Provides fields for modifying an [operation collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/).""" -type OperationCollectionMutation { - """Adds an operation to this collection.""" - addOperation(name: String!, operationInput: OperationCollectionEntryStateInput!): AddOperationCollectionEntryResult - """Adds operations to this collection.""" - addOperations(operations: [AddOperationInput!]!): AddOperationCollectionEntriesResult - """Deletes this operation collection. This also deletes all of the collection's associated operations.""" - delete: DeleteOperationCollectionResult - """Deletes an operation from this collection.""" - deleteOperation(id: ID!): RemoveOperationCollectionEntryResult - operation(id: ID!): OperationCollectionEntryMutationResult - """Updates the minimum role a user needs to be able to modify this collection.""" - setMinEditRole(editRole: UserPermission): UpdateOperationCollectionResult - """Updates this collection's description.""" - updateDescription(description: String): UpdateOperationCollectionResult - """Updates whether the current user has marked this collection as a favorite.""" - updateIsFavorite(isFavorite: Boolean!): UpdateOperationCollectionResult - """Updates whether this collection is shared across its associated organization.""" - updateIsShared(isShared: Boolean!): UpdateOperationCollectionResult - """Updates this operation collection's name.""" - updateName(name: String!): UpdateOperationCollectionResult -} - -"""Whether the current user can perform various actions on the associated collection.""" -type OperationCollectionPermissions { - """Whether the current user can edit operations in the associated collection.""" - canEditOperations: Boolean! - """Whether the current user can delete or update the associated collection's metadata, such as its name and description.""" - canManage: Boolean! - """Whether the current user can read operations in the associated collection.""" - canReadOperations: Boolean! -} - -union OperationCollectionResult = NotFoundError | OperationCollection | PermissionError | ValidationError - -"""Saved headers on a saved operation.""" -type OperationHeader { - """The header's name.""" - name: String! - """The header's value.""" - value: String! -} - -input OperationHeaderInput { - """The header's name.""" - name: String! - """The header's value.""" - value: String! -} - -"""Options to filter by operation name.""" -input OperationNameFilterInput { - """name of the operation set by the user and reported alongside metrics""" - name: String! - version: String -} - -type OperationsCheckResult { - id: ID! - """Indication of the success of the change, either failure, warning, or notice.""" - checkSeverity: ChangeSeverity! - """Number of operations that were validated during schema diff""" - numberOfCheckedOperations: Int! - """List of schema changes with associated affected clients and operations""" - changes: [Change!]! - """Summary/counts for all changes in diff""" - changeSummary: ChangeSummary! - """Operations affected by all changes in diff""" - affectedQueries: [AffectedQuery!] - """Number of affected query operations that are neither marked as SAFE or IGNORED""" - numberOfAffectedOperations: Int! - createdAt: Timestamp! -} - -type OperationsCheckTask implements CheckWorkflowTask { - completedAt: Timestamp - createdAt: Timestamp! - id: ID! - status: CheckWorkflowTaskStatus! - targetURL: String - workflow: CheckWorkflow! - """ - The result of the operations check. This will be null when the task is initializing or running, - or when the build task fails (which is a prerequisite task to this one). - """ - result: OperationsCheckResult -} - -type Order { - id: ID! - orderType: OrderType! - status: OrderStatus! - reason: String - logs(first: Int, offset: Int): [LogMessage!]! - router: Router! -} - -union OrderOrError = Order - -enum OrderStatus { - PENDING - COMPLETED - ROLLING_BACK - ERRORED - SUPERSEDED -} - -enum OrderType { - CREATE_ROUTER - DESTROY_ROUTER - UPDATE_ROUTER -} - -"""The schema for a single published subgraph in Studio.""" -type SubgraphSchema { - """The subgraph schema document as SDL.""" - sdl: String! -} - -""" -Input for registering a partial schema to an implementing service. +returned.""" type NamedIntrospectionValue{description:String name:String printedType:String}type NamedIntrospectionValueNoDescription{name:String printedType:String}"""A non-federated service for a monolithic graph.""" type NonFederatedImplementingService{"""Timestamp of when this implementing service was created.""" createdAt:Timestamp!"""Identifies which graph this non-implementing service belongs to. +Formerly known as "service_id".""" graphID:String!"""Specifies which variant of a graph this implementing service belongs to". +Formerly known as "tag".""" graphVariant:String!}"""An error that occurs when a requested object is not found.""" type NotFoundError implements Error{"""The error message.""" message:String!}"""An arbitrary JSON object.""" scalar Object type OdysseyAttempt{completedAt:Timestamp id:ID!pass:Boolean responses:[OdysseyResponse!]!startedAt:Timestamp!testId:String!}type OdysseyCertification{certificationId:String!earnedAt:Timestamp!id:ID!owner:OdysseyCertificationOwner source:String}type OdysseyCertificationOwner{fullName:String!id:ID!}type OdysseyCourse{completedAt:Timestamp enrolledAt:Timestamp id:ID!}input OdysseyCourseInput{completedAt:Timestamp courseId:String!isBeta:Boolean}type OdysseyResponse{correct:Boolean id:ID!questionId:String!values:[OdysseyValue!]!}input OdysseyResponseCorrectnessInput{correct:Boolean!id:ID!}input OdysseyResponseInput{attemptId:ID!correct:Boolean questionId:String!values:[String!]!}type OdysseyTask{completedAt:Timestamp id:ID!value:String}input OdysseyTaskInput{completedAt:Timestamp taskId:String!value:String}type OdysseyValue{id:ID!value:String!}enum OnboardingArchitecture{MONOLITH SUPERGRAPH}type Operation{id:ID!name:String signature:String truncated:Boolean!}type OperationAcceptedChange{acceptedAt:Timestamp!acceptedBy:Identity change:StoredApprovedChange!checkID:ID!graphID:ID!id:ID!operationID:String!}"""Columns of OperationCheckStats.""" enum OperationCheckStatsColumn{CACHED_REQUESTS_COUNT CLIENT_NAME CLIENT_VERSION OPERATION_SUBTYPE OPERATION_TYPE QUERY_ID QUERY_NAME SCHEMA_TAG SERVICE_ID TIMESTAMP UNCACHED_REQUESTS_COUNT}type OperationCheckStatsDimensions{clientName:String clientVersion:String operationSubtype:String operationType:String queryId:ID queryName:String schemaTag:String serviceId:ID}"""Filter for data in OperationCheckStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input OperationCheckStatsFilter{and:[OperationCheckStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:OperationCheckStatsFilterIn not:OperationCheckStatsFilter """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[OperationCheckStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in OperationCheckStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input OperationCheckStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type OperationCheckStatsMetrics{cachedRequestsCount:Long!uncachedRequestsCount:Long!}input OperationCheckStatsOrderBySpec{column:OperationCheckStatsColumn!direction:Ordering!}type OperationCheckStatsRecord{"""Dimensions of OperationCheckStats that can be grouped by.""" groupBy:OperationCheckStatsDimensions!"""Metrics of OperationCheckStats that can be aggregated over.""" metrics:OperationCheckStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""A list of saved GraphQL operations.""" type OperationCollection{"""The timestamp when the collection was created.""" createdAt:Timestamp!"""The user or other entity that created the collection.""" createdBy:Identity """The collection's description. A `null` description was never set, and empty string description was set to be empty string by a user, or other entity.""" description:String """If a user has any of these roles, they will be able to edit this +collection.""" editRoles:[UserPermission!]@deprecated(reason:"deprecated in favour of minEditRole")id:ID!"""Whether the current user has marked the collection as a favorite.""" isFavorite:Boolean!"""Whether the collection is a [sandbox collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/#sandbox-collections).""" isSandbox:Boolean!"""Whether the collection is shared across its associated organization.""" isShared:Boolean!"""The timestamp when the collection was most recently updated.""" lastUpdatedAt:Timestamp!"""The user or other entity that most recently updated the collection.""" lastUpdatedBy:Identity """The minimum role a user needs to edit this collection. Valid values: null, CONSUMER, OBSERVER, DOCUMENTER, CONTRIBUTOR, GRAPH_ADMIN. This value is always `null` if `isShared` is `false`. If `null` when `isShared` is `true`, the minimum role is `GRAPH_ADMIN`.""" minEditRole:UserPermission """The collection's name.""" name:String!"""Returns the operation in the collection with the specified ID, if any.""" operation(id:ID!):OperationCollectionEntryResult """A list of the GraphQL operations that belong to the collection.""" operations:[OperationCollectionEntry!]!"""The permissions that the current user has for the collection.""" permissions:OperationCollectionPermissions!variants:[GraphVariant!]!}"""A saved operation entry within an Operation Collection.""" type OperationCollectionEntry{collection:OperationCollection!"""The timestamp when the entry was created.""" createdAt:Timestamp!"""The user or other entity that created the entry.""" createdBy:Identity """Details of the entry's associated operation, such as its `body` and `variables`.""" currentOperationRevision:OperationCollectionEntryState!id:ID!"""The timestamp when the entry was most recently updated.""" lastUpdatedAt:Timestamp!"""The user or other entity that most recently updated the entry.""" lastUpdatedBy:Identity """The entry's name.""" name:String!"""The entry's lexicographical ordering index within its containing collection.""" orderingIndex:String!}"""Provides fields for modifying an operation in a collection.""" type OperationCollectionEntryMutation{moveToCollection(collectionId:ID!lowerOrderingBound:String upperOrderingBound:String):MoveOperationCollectionEntryResult!reorderEntry(lowerOrderingBound:String upperOrderingBound:String):UpdateOperationCollectionResult """Updates the name of an operation.""" updateName(name:String!):UpdateOperationCollectionEntryResult """Updates the body, headers, and/or variables of an operation.""" updateValues(operationInput:OperationCollectionEntryStateInput!):UpdateOperationCollectionEntryResult}union OperationCollectionEntryMutationResult=NotFoundError|OperationCollectionEntryMutation|PermissionError """Possible return values when querying for an entry in an operation collection (either the entry object or an `Error` object).""" union OperationCollectionEntryResult=NotFoundError|OperationCollectionEntry """The most recent body, variable and header values of a saved operation entry.""" type OperationCollectionEntryState{"""The raw body of the entry's GraphQL operation.""" body:String!"""The timestamp when the entry state was created.""" createdAt:Timestamp!"""The user or other entity that created this entry state.""" createdBy:Identity """Headers for the entry's GraphQL operation.""" headers:[OperationHeader!]"""The workflow automation script for this entry's GraphQL operation""" script:String """Variables for the entry's GraphQL operation, as a JSON string.""" variables:String}"""Fields for creating or modifying an operation collection entry.""" input OperationCollectionEntryStateInput{"""The operation's query body.""" body:String!"""The operation's headers.""" headers:[OperationHeaderInput!]"""The operation's workflow script""" script:String """The operation's variables.""" variables:String}"""Provides fields for modifying an [operation collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/).""" type OperationCollectionMutation{"""Adds an operation to this collection.""" addOperation(name:String!operationInput:OperationCollectionEntryStateInput!):AddOperationCollectionEntryResult """Adds operations to this collection.""" addOperations(operations:[AddOperationInput!]!):AddOperationCollectionEntriesResult addToVariant(variantRef:ID!):AddOperationCollectionToVariantResult!@deprecated(reason:"Will throw NotImplemented")"""Deletes this operation collection. This also deletes all of the collection's associated operations.""" delete:DeleteOperationCollectionResult """Deletes an operation from this collection.""" deleteOperation(id:ID!):RemoveOperationCollectionEntryResult duplicateCollection(description:String isSandbox:Boolean!isShared:Boolean!name:String!variantRef:ID):DuplicateOperationCollectionResult!operation(id:ID!):OperationCollectionEntryMutationResult removeFromVariant(variantRef:ID!):RemoveOperationCollectionFromVariantResult!@deprecated(reason:"Will throw NotImplemented")"""Updates the minimum role a user needs to be able to modify this collection.""" setMinEditRole(editRole:UserPermission):UpdateOperationCollectionResult """Updates this collection's description.""" updateDescription(description:String):UpdateOperationCollectionResult """Updates whether the current user has marked this collection as a favorite.""" updateIsFavorite(isFavorite:Boolean!):UpdateOperationCollectionResult """Updates whether this collection is shared across its associated organization.""" updateIsShared(isShared:Boolean!):UpdateOperationCollectionResult """Updates this operation collection's name.""" updateName(name:String!):UpdateOperationCollectionResult}"""Whether the current user can perform various actions on the associated collection.""" type OperationCollectionPermissions{"""Whether the current user can edit operations in the associated collection.""" canEditOperations:Boolean!"""Whether the current user can delete or update the associated collection's metadata, such as its name and description.""" canManage:Boolean!"""Whether the current user can read operations in the associated collection.""" canReadOperations:Boolean!}union OperationCollectionResult=NotFoundError|OperationCollection|PermissionError|ValidationError type OperationDocument{"""Operation document body""" body:String!"""Operation name""" name:String}input OperationDocumentInput{"""Operation document body""" body:String!"""Operation name""" name:String}"""Saved headers on a saved operation.""" type OperationHeader{"""The header's name.""" name:String!"""The header's value.""" value:String!}input OperationHeaderInput{"""The header's name.""" name:String!"""The header's value.""" value:String!}type OperationInfoFilter{id:String!}input OperationInfoFilterInput{id:String!}"""Operation name filter configuration for a graph.""" type OperationNameFilter{"""name of the operation by the user and reported alongside metrics""" name:String!version:String}"""Options to filter by operation name.""" input OperationNameFilterInput{"""name of the operation set by the user and reported alongside metrics""" name:String!version:String}enum OperationType{MUTATION QUERY SUBSCRIPTION}type OperationValidationError{message:String!}type OperationsCheckConfiguration{"""During the operations check, ignore clients matching any of the filters.""" excludedClients:[ClientFilter!]!"""During the operations check, ignore operations matching any of the filters.""" excludedOperationNames:[OperationNameFilter!]!"""During the operations check, ignore operations matching any of the filters.""" excludedOperations:[OperationInfoFilter!]!"""The start of the time range for the operations check, expressed as an offset from the time the +check request was received (in seconds) or an ISO-8601 timestamp. This was either provided by the +user or computed from variant- or graph-level settings.""" from:String!@deprecated(reason:"Use fromNormalized instead")"""The start of the time range for the operations check.""" fromNormalized:Timestamp!"""During the operations check, fetch operations from the metrics data for +variants.""" includedVariants:[String!]!"""During the operations check, ignore operations that executed less than +times in the time range.""" operationCountThreshold:Int!"""Duration the operations check, ignore operations that constituted less than +% of the operations in the time range.""" operationCountThresholdPercentage:Float!"""The end of the time range for the operations check, expressed as an offset from the time the +check request was received (in seconds) or an ISO-8601 timestamp. This was either provided by the +user or computed from variant- or graph-level settings.""" to:String!@deprecated(reason:"Use toNormalized instead")"""The end of the time range for the operations check.""" toNormalized:Timestamp!}input OperationsCheckConfigurationOverridesInput{"""During the operations check, ignore clients matching any of the filters. +Providing null will use variant- or graph-level settings instead.""" excludedClients:[ClientFilterInput!]"""During the operations check, ignore operations matching any of the +filters. Providing null will use variant- or graph-level settings instead.""" excludedOperationNames:[OperationNameFilterInput!]"""During the operations check, ignore operations matching any of the filters. +Providing null will use variant- or graph-level settings instead.""" excludedOperations:[OperationInfoFilterInput!]"""The start of the time range for the operations check, expressed as an offset from the time the +check request is received (in seconds) or an ISO-8601 timestamp. Providing null here and +useMaxRetention as false will use variant- or graph-level settings instead. It is an error to +provide a non-null value here and useMaxRetention as true.""" from:String """During the operations check, fetch operations from the metrics data for +variants. Providing null will use variant- or graph-level settings instead.""" includedVariants:[String!]"""During the operations check, ignore operations that executed less than +times in the time range. Providing null will use variant- or graph-level settings instead.""" operationCountThreshold:Int """During the operations check, ignore operations that executed less than +times in the time range. Expected values are between 0% and 5%. Providing null will use variant- +or graph-level settings instead.""" operationCountThresholdPercentage:Float """The end of the time range for the operations check, expressed as an offset from the time the +check request is received (in seconds) or an ISO-8601 timestamp. Providing null here and +useMaxRetention as false will use variant- or graph-level settings instead. It is an error to +provide a non-null value here and useMaxRetention as true.""" to:String """During the operations check, use the maximum time range allowed by the graph's plan's retention. +Providing false here and from/to as null will use variant- or graph-level settings instead. It is +an error to provide true here and from/to as non-null.""" useMaxRetention:Boolean!=false}type OperationsCheckResult{"""Operations affected by all changes in diff""" affectedQueries:[AffectedQuery!]"""Summary/counts for all changes in diff""" changeSummary:ChangeSummary!"""List of schema changes with associated affected clients and operations""" changes:[Change!]!"""Indication of the success of the change, either failure, warning, or notice.""" checkSeverity:ChangeSeverity!"""The variant that was used as a base to check against""" checkedVariant:GraphVariant!createdAt:Timestamp!"""The threshold that was crossed; null if the threshold was not exceeded""" crossedOperationThreshold:Int id:ID!"""Number of affected query operations that are neither marked as SAFE or IGNORED""" numberOfAffectedOperations:Int!"""Number of operations that were validated during schema diff""" numberOfCheckedOperations:Int!workflowTask:OperationsCheckTask!}type OperationsCheckTask implements CheckWorkflowTask{completedAt:Timestamp createdAt:Timestamp!graphID:ID!id:ID!"""The result of the operations check. This will be null when the task is initializing or running, +or when the build task fails (which is a prerequisite task to this one).""" result:OperationsCheckResult status:CheckWorkflowTaskStatus!targetURL:String workflow:CheckWorkflow!}"""Cloud Router order""" type Order{"""Order identifier""" id:ID!"""Introspect why call to `ready` failed""" introspectReady:String!logs:[LogMessage!]!"""Order type""" orderType:OrderType!"""Checks if machines are ready to serve requests""" ready:Boolean!"""Checks if we can serve requests through the external endpoint""" readyExternal:Boolean!"""Reason for ERRORED or ROLLING_BACK orders""" reason:String """Router associated with this Order""" router:Router!"""Shard associated with this Order""" shard:Shard!"""Order status""" status:OrderStatus!}"""The order does not exist""" type OrderDoesNotExistError{tryAgainSeconds:Int!}"""Catch-all failure result of a failed order mutation.""" type OrderError{"""Error message""" message:String!}type OrderMutation{"""Create a new app""" createApp:OrderResult!"""Create CNAME record""" createCname:OrderResult!"""Create machines""" createMachines:OrderResult!"""Delete API key""" deleteApiKey:OrderResult!"""Delete application""" deleteApp:OrderResult!"""Delete CNAME""" deleteCname:OrderResult!"""Delete machines""" deleteMachines:OrderResult!"""Force rollback of the order""" forceRollback:OrderResult!"""Rollback application""" rollbackApp:OrderResult!"""Rollback CNAME record""" rollbackCname:OrderResult!"""Rollback etcd data""" rollbackEtcd:OrderResult!"""Rollback router information""" rollbackInfo:OrderResult!"""Rollback machines""" rollbackMachines:OrderResult!"""Set default environment variables""" setDefaultVars:OrderResult!"""Update Etcd cluster""" updateEtcd:OrderResult!"""Update router information""" updateInfo:OrderResult!"""Update order status""" updateStatus(status:OrderStatus!):OrderResult!"""Update order status with a reason and cause""" updateStatusWithReason(cause:ReasonCause!reason:String!status:OrderStatus!):OrderResult!}"""Return an Order or an error""" union OrderOrError=Order|OrderDoesNotExistError """Represents the possible outcomes of an order mutation""" union OrderResult=InvalidInputErrors|Order|OrderError """Represents the different status for an order""" enum OrderStatus{COMPLETED ERRORED PENDING ROLLING_BACK SUPERSEDED}"""Represents the different types of order""" enum OrderType{CREATE_ROUTER DESTROY_ROUTER UPDATE_ROUTER}enum Ordering{ASCENDING DESCENDING}type OrgCustomerTraits{healthScore:Float nextRenewalDate:Int tier:String usersCount:Int}"""A reusable invite link for an organization.""" type OrganizationInviteLink{createdAt:Timestamp!"""A joinToken that can be passed to Mutation.joinAccount to join the organization.""" joinToken:String!"""The role that the user will receive if they join the organization with this link.""" role:UserPermission!}type OrganizationSSO{defaultRole:UserPermission!idpid:ID!provider:OrganizationSSOProvider!}enum OrganizationSSOProvider{PINGONE}"""Information about pagination in a connection.""" type PageInfo{"""When paginating forwards, the cursor to continue.""" endCursor:String """When paginating forwards, are there more items?""" hasNextPage:Boolean!"""When paginating backwards, are there more items?""" hasPreviousPage:Boolean!"""When paginating backwards, the cursor to continue.""" startCursor:String}"""PagerDuty notification channel""" type PagerDutyChannel implements Channel{id:ID!name:String!routingKey:String!subscriptions:[ChannelSubscription!]!}"""PagerDuty notification channel parameters""" input PagerDutyChannelInput{name:String routingKey:String!}"""The schema for a single published subgraph in Studio.""" type PartialSchema{"""Timestamp for when the partial schema was created""" createdAt:Timestamp!"""If this sdl is currently actively composed in the gateway, this is true""" isLive:Boolean!"""The subgraph schema document as SDL.""" sdl:String!}"""Input for registering a partial schema to an implementing service. One of the fields must be specified (validated server-side). If a new partialSchemaSDL is passed in, this operation will store it before @@ -1452,529 +188,151 @@ creating the association. If both the sdl and hash are specified, an error will be thrown if the provided hash doesn't match our hash of the sdl contents. If the sdl field is specified, -the hash does not need to be and will be computed server-side. -""" -input PartialSchemaInput { - """ - Contents of the partial schema in SDL syntax, but may reference types - that aren't defined in this document - """ - sdl: String - """ - Hash of the partial schema to associate; error is thrown if only the hash is - specified and the hash has not been seen before - """ - hash: String -} - -"""An error that occurs when the current user doesn't have sufficient permissions to perform an action.""" -type PermissionError implements Error { - """The error message.""" - message: String! -} - -"""An error related to an organization's Apollo Studio plan.""" -type PlanError { - """The error message.""" - message: String! -} - -type Query { - """Returns the root URL of the Apollo Studio frontend.""" - frontendUrlRoot: String! - """Returns details of the graph with the provided ID.""" - graph(id: ID!): Graph - """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.""" - me: Identity - """Returns details of the Studio organization with the provided ID.""" - organization(id: ID!): Organization - """Returns details of the Apollo user with the provided ID.""" - user(id: ID!): User - """Returns details of a Studio graph variant with the provided graph ref. A graph ref has the format `graphID@variantName` (or just `graphID` for the default variant `current`). Returns null if the graph or variant doesn't exist, or if the graph isn't accessible by the current actor.""" - variant(ref: ID!): GraphVariantLookup - """Returns the [operation collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/) for the provided ID.""" - operationCollection(id: ID!): OperationCollectionResult! -} - -"""The README documentation for a graph variant, which is displayed in Studio.""" -type Readme { - """The contents of the README in plaintext.""" - content: String! - """The README's unique ID. `a15177c0-b003-4837-952a-dbfe76062eb1` for the default README""" - id: ID! - """The actor that most recently updated the README (usually a `User`). `null` for the default README, or if the `User` was deleted.""" - lastUpdatedBy: Identity - """The timestamp when the README was most recently updated. `null` for the default README""" - lastUpdatedTime: Timestamp -} - -union RemoveOperationCollectionEntryResult = OperationCollection | PermissionError - -type Router { - """ - Last time when the Cloud Router was updated - - If the Cloud Router was never updated, this value will be null - """ - updatedAt: NaiveDateTime - """Current status of the Cloud Router""" - status: RouterStatus! - """Current version of the Cloud Router""" - routerVersion: RouterVersion! - """ - URL where the Cloud Router can be found - - This will be null if the Cloud Router is in a deleted status - """ - routerUrl: String - """Retrieves a specific Order related to this Cloud Router""" - order(orderId: ID!): Order - """Retrieves all Orders related to this Cloud Router""" - orders(first: Int, offset: Int): [Order!]! - """Return the list of secrets for this Cloud Router with their hash values""" - secrets: [Secret!]! -} - -enum RouterStatus { - CREATING - UPDATING - DELETING - ROLLING_BACK - RUNNING - DELETED -} - -type RouterVersion { - version: String! - core: String! - build: String! - status: Status! - configVersion: String! - configSchema: String! -} - -"""A GraphQL schema document and associated metadata.""" -type Schema { - """The GraphQL schema document's SHA256 hash, represented as a hexadecimal string.""" - hash: ID! - """The GraphQL schema document.""" - document: GraphQLDocument! -} - -"""An error that occurred while running schema composition on a set of subgraph schemas.""" -type SchemaCompositionError { - """A human-readable message describing the error.""" - message: String! - """Source locations related to the error.""" - locations: [SourceLocation]! - """A machine-readable error code.""" - code: String -} - -"""The result of computing the difference between two schemas, usually as part of schema checks.""" -type SchemaDiff { - """Indicates the overall safety of the changes included in the diff, based on operation history (e.g., `FAILURE` or `NOTICE`).""" - severity: ChangeSeverity! - """A list of all schema changes in the diff, including their severity.""" - changes: [Change!]! - """Numeric summaries for each type of change in the diff.""" - changeSummary: ChangeSummary! - """Operations affected by all changes in the diff.""" - affectedQueries: [AffectedQuery!] - """The number of GraphQL operations that were validated during the check.""" - numberOfCheckedOperations: Int - """The number of GraphQL operations affected by the diff's changes that are neither marked as safe nor ignored.""" - numberOfAffectedOperations: Int! -} - -"""Contains details for an individual publication of an individual graph variant.""" -type SchemaPublication { - """ - The variant that was published to." - """ - variant: GraphVariant! - """The schema that was published to the variant.""" - schema: Schema! - """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.""" - compositionResult: CompositionResult - """The timestamp when the variant was published to.""" - publishedAt: Timestamp! - """A schema diff comparing against the schema from the most recent previous successful publication.""" - diffToPrevious: SchemaDiff -} - -type Secret { - createdAt: DateTime! - name: String! - hash: String! -} - -type SemanticChange { - """Semantic metadata about the type of change""" - definition: ChangeDefinition! - """Top level node affected by the change""" - parentNode: NamedIntrospectionType - """ - Node related to the top level node that was changed, such as a field in an object, - a value in an enum or the object of an interface - """ - childNode: NamedIntrospectionValue - """Target arg of change made.""" - argNode: NamedIntrospectionArg -} - -""" -A graph in Apollo Studio represents a graph in your organization. +the hash does not need to be and will be computed server-side.""" input PartialSchemaInput{"""Hash of the partial schema to associate; error is thrown if only the hash is +specified and the hash has not been seen before""" hash:String """Contents of the partial schema in SDL syntax, but may reference types +that aren't defined in this document""" sdl:String}type Permission{csAdmin:String sudo:Boolean!}"""An error that's returned when the current user doesn't have sufficient permissions to perform an action.""" type PermissionError implements Error{"""The error message.""" message:String!}"""Information about the act of publishing operations to the list""" type PersistedQueriesPublish{operationCounts:PersistedQueriesPublishOperationCounts!publishedAt:Timestamp!}type PersistedQueriesPublishOperationCounts{"""The number of new operations added to the list by this publish.""" added:Int!"""The number of operations included in this publish whose metadata and body were unchanged from the previous list revision.""" identical:Int!"""The number of operations removed from the list by this publish.""" removed:Int!"""The number of operations in this list that were not mentioned by this publish.""" unaffected:Int!"""The number of operations whose metadata or body were changed by this publish.""" updated:Int!}type PersistedQuery{body:GraphQLDocument!firstPublishedAt:Timestamp!id:ID!lastPublishedAt:Timestamp!name:String!type:OperationType!}type PersistedQueryConnection{edges:[PersistedQueryEdge!]!pageInfo:PageInfo!}type PersistedQueryEdge{cursor:String!node:PersistedQuery!}"""Operations to be published to the Persisted Query List.""" input PersistedQueryInput{"""The GraphQL document for this operation, including all necessary fragment definitions.""" body:GraphQLDocument!"""An opaque identifier for this operation. This should map uniquely to an operation body; editing the body should generally result in a new ID. Apollo's tools generally use the lowercase hex SHA256 of the operation body.""" id:ID!"""A name for the operation. Typically this is the name of the actual GraphQL operation in the body. This does not need to be unique within a Persisted Query List; as a client project evolves and its operations change, multiple operations with the same name (but different body and id) can be published.""" name:String!"""The operation's type.""" type:OperationType!}"""TODO""" type PersistedQueryList{builds(after:String before:String first:Int last:Int):PersistedQueryListBuildConnection!createdAt:Timestamp!createdBy:User currentBuild:PersistedQueryListBuild!description:String!graph:Service!"""The immutable ID for this Persisted Query List.""" id:ID!lastUpdatedAt:Timestamp!"""All variants linked to this Persisted Query List, if any.""" linkedVariants:[GraphVariant!]!"""The list's name; can be changed and does not need to be unique.""" name:String!operation(id:ID!):PersistedQuery operations(after:String before:String first:Int last:Int):PersistedQueryConnection!}"""Information about a particular revision of the list, as produced by a particular publish.""" type PersistedQueryListBuild{"""The persisted query list that this build built.""" list:PersistedQueryList!"""The chunks that made up this build. We do not commit to keeping the full contents of older revisions indefinitely, so this may be null for suitably old revisions.""" manifestChunks:[PersistedQueryListManifestChunk!]"""Information about the publish operation that created this build.""" publish:PersistedQueriesPublish!"""The revision of this Persisted Query List. Revision 0 is the initial empty list; each publish increments the revision by 1.""" revision:Int!"""The total number of operations in the list after this build. Compare to PersistedQueriesPublish.operationCounts.""" totalOperationsInList:Int!}type PersistedQueryListBuildConnection{edges:[PersistedQueryListBuildEdge!]!pageInfo:PageInfo!}type PersistedQueryListBuildEdge{cursor:String!node:PersistedQueryListBuild!}type PersistedQueryListManifestChunk{id:ID!json:String!list:PersistedQueryList!}type PersistedQueryListMutation{delete:DeletePersistedQueryListResultOrError!id:ID!"""Updates this Persisted Query List by publishing a set of operations and removing other operations. Operations not mentioned remain in the list unchanged.""" publishOperations(operations:[PersistedQueryInput!]removeOperations:[ID!]):PublishOperationsResultOrError!updateMetadata(description:String name:String):UpdatePersistedQueryListMetadataResultOrError!}"""An error related to an organization's Apollo Studio plan.""" type PlanError{"""The error message.""" message:String!}type PromoteSchemaError{code:PromoteSchemaErrorCode!message:String!}enum PromoteSchemaErrorCode{CANNOT_PROMOTE_SCHEMA_FOR_FEDERATED_GRAPH}type PromoteSchemaResponse{code:PromoteSchemaResponseCode!tag:SchemaTag!}enum PromoteSchemaResponseCode{NO_CHANGES_DETECTED PROMOTION_SUCCESS}union PromoteSchemaResponseOrError=PromoteSchemaError|PromoteSchemaResponse type Proposal{"""The variant this Proposal is under the hood.""" backingVariant:GraphVariant!createdAt:Timestamp!"""null if user is deleted, or if user removed from org +and others in the org no longer have access to this user's info""" createdBy:Identity displayName:String!id:ID!"""The variant this Proposal was cloned/sourced from.""" sourceVariant:GraphVariant!status:ProposalStatus!updatedAt:Timestamp!updatedBy:Identity}type ProposalMutation{"""Publish to a subgraph. This will write the summary to proposals, and call registry's publishSubgraph. If composition is successful, this will update running routers.""" publishSubgraph(input:PublishProposalSubgraphInput!):PublishProposalSubgraphResult!updateDisplayName(displayName:String!):UpdateProposalResult!updateStatus(status:ProposalStatus!):UpdateProposalResult!updateUpdatedByInfo(timestamp:Timestamp!):UpdateProposalResult!}union ProposalMutationResult=NotFoundError|PermissionError|ProposalMutation|ValidationError type ProposalRoles{create:UserPermission!edit:UserPermission!}enum ProposalStatus{APPROVED CLOSED DRAFT OPEN}type ProposalSummary{createdBy:Identity id:ID!summary:String!}type ProposalVariantCreationErrors{"""A list of all errors that occurred when attempting to create a proposal variant.""" errorMessages:[String!]!}union ProposalVariantCreationResult=GraphVariant|ProposalVariantCreationErrors """Filtering options for graph connections.""" input ProposalVariantsFilter{"""Only include proposals that have updated these subgraph names""" subgraphs:[String!]!}"""Proposal variants, limited & offset based on Service.proposalVariants & the total count""" type ProposalVariantsResult{"""The total number of proposal variants on this graph""" totalCount:Int!variants:[GraphVariant!]!}union ProposedBuildInputChanges=ProposedCompositionBuildInputChanges|ProposedFilterBuildInputChanges type ProposedCompositionBuildInputChanges{"""The proposed new build pipeline track, or null if no such change was proposed.""" buildPipelineTrackChange:BuildPipelineTrack """Any proposed upserts to subgraphs, or the empty list if no such changes were proposed.""" subgraphUpserts:[ProposedCompositionBuildInputSubgraphUpsert!]!}type ProposedCompositionBuildInputSubgraphUpsert{"""The name of the subgraph changed in this subgraph upsert.""" name:String!"""The SHA-256 of the schema document in this subgraph upsert.""" schemaHash:SHA256}type ProposedFilterBuildInputChanges{"""The proposed new build pipeline track, or null if no such change was proposed.""" buildPipelineTrackChange:BuildPipelineTrack """Any proposed additions to exclude filters, or the empty list if no such changes were proposed.""" excludeAdditions:[String!]!"""Any proposed removals to exclude filters, or the empty list if no such changes were proposed.""" excludeRemovals:[String!]!"""The proposed value for whether to hide unreachable schema elements, or null if no such change was proposed.""" hideUnreachableTypesChange:Boolean """Any proposed additions to include filters, or the empty list if no such changes were proposed.""" includeAdditions:[String!]!"""Any proposed removals to include filters, or the empty list if no such changes were proposed.""" includeRemovals:[String!]!"""The proposed new build pipeline track, or null if no such change was proposed.""" supergraphSchemaHashChange:SHA256}type Protobuf{json:String!object:Object!raw:Blob!text:String!}"""The result of a successful call to PersistedQueryListMutation.publishOperations.""" type PublishOperationsResult{"""The build created by this publish operation.""" build:PersistedQueryListBuild!"""Returns `true` if no changes were made by this publish (and no new revision was created). Otherwise, returns `false`.""" unchanged:Boolean!}"""The interface returned by PersistedQueryListMutation.publishOperations.""" union PublishOperationsResultOrError=PermissionError|PublishOperationsResult input PublishProposalSubgraphInput{activePartialSchema:PartialSchemaInput!gitContext:GitContextInput revision:String!subgraphName:String!summary:String!url:String}union PublishProposalSubgraphResult=NotFoundError|PermissionError|Proposal|ValidationError input PushMarketoLeadInput{"""Clearbit enriched LinkedIn URL""" Clearbit_LinkedIn_URL__c:String """Company domain""" Company_Domain__c:String """GraphQL Production Stage""" GraphQL_Production_Stage__c:String """Job Function""" Job_Function__c:String """Lead Message""" Lead_Message__c:String """Lead Source Detail""" Lead_Source_Detail__c:String """Lead Source Most Recent Detail""" Lead_Source_Most_Recent_Detail__c:String """Lead Source Most Recent""" Lead_Source_Most_Recent__c:String """Referrer""" Referrer__c:String """Studio User Id""" Studio_User_Id__c:String """UTM Campaign First Touch""" UTM_Campaign_First_Touch__c:String """UTM Campaign""" UTM_Campaign__c:String """UTM ICID""" UTM_ICID__c:String """UTM Medium First Touch""" UTM_Medium_First_Touch__c:String """UTM Medium""" UTM_Medium__c:String """UTM Source First Touch""" UTM_Source_First_Touch__c:String """UTM Source""" UTM_Source__c:String """UTM Term""" UTM_Term__c:String """Company name""" company:String """Country""" country:String """Email address""" email:String """First name""" firstName:String """Last name""" lastName:String """Phone number""" phone:String}"""Queries defined by this subgraph""" type Query{"""Account by ID""" account(id:ID!):Account """Retrieve account by billing provider identifier""" accountByBillingCode(id:ID!):Account """Retrieve account by internal id""" accountByInternalID(id:ID!):Account """Whether an account ID is available for mutation{newAccount(id:)}""" accountIDAvailable(id:ID!):Boolean!"""All accounts""" allAccounts(search:String tier:BillingPlanTier):[Account!]"""All accounts on team billable plans with active subscriptions""" allActiveTeamBillingAccounts:[Account!]"""All available plans""" allBillingPlans:[BillingPlan!]!allPublicVariants:[GraphVariant!]"""All auto-renewing team accounts on active annual plans""" allRenewingNonEnterpriseAnnualAccounts:[Account!]allSelfHostedCommercialRuntimeEntitlements:[RouterEntitlement]!"""All services""" allServices(search:String):[Service!]"""All timezones with their offsets from UTC""" allTimezoneOffsets:[TimezoneOffset!]!"""All users""" allUsers(search:String):[User!]auditLog(messageId:ID!):[AuditLog]!billingAdmin:BillingAdminQuery """Retrieves all past and current subscriptions for an account, even if the account has been deleted""" billingSubscriptionHistory(id:ID):[BillingSubscription]!billingTier(tier:BillingPlanTier!):BillingTier """If this is true, the user is an Apollo administrator who can ignore restrictions based purely on billing plan.""" canBypassPlanRestrictions:Boolean!"""Cloud queries""" cloud:Cloud!"""Escaped JSON string of the public key used for verifying entitlement JWTs""" commercialRuntimePublicKey:String!csCommunicationChannel(id:ID!):CommunicationChannel csCommunicationChannels:[CommunicationChannel]!customerOrg(id:ID!):CustomerOrg customerOrgs(nextHash:String):[CustomerOrg]!diffSchemas(baseSchema:String!nextSchema:String!):[Change!]!"""Get the unsubscribe settings for a given email.""" emailPreferences(email:String!token:String!):EmailPreferences """Past and current enterprise trial accounts""" enterpriseTrialAccounts:[Account!]"""Returns the root URL of the Apollo Studio frontend.""" frontendUrlRoot:String!getAdminUsers:[AdminUser!]!getAllMessages:[Message]!getMessage(messageId:ID!):Message getRecallLog(messageId:ID!):[AuditLog]!"""Returns details of the graph with the provided ID.""" graph(id:ID!):Service identitySubgraphStatus:String!internalActiveCronJobs:[CronJob!]!internalAdminUsers:[InternalAdminUser!]internalUnresolvedCronExecutionFailures:[CronExecution!]!"""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.""" me:Identity myPermissions:Permission!odysseyCertification(id:ID!):OdysseyCertification """Returns the [operation collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/) for the provided ID.""" operationCollection(id:ID!):OperationCollectionResult!operationCollectionEntries(collectionEntryIds:[ID!]!):[OperationCollectionEntry!]!"""Returns details of the Studio organization with the provided ID.""" organization(id:ID!):Account """Look up a plan by ID""" plan(id:ID):BillingPlan proposal(id:ID!):String """A list of public variants that have been selected to be shown on our Graph Directory.""" publiclyListedVariants:[GraphVariant!]"""Accounts with enterprise subscriptions that have expired in the past 45 days""" recentlyExpiredEnterpriseAccounts:[Account!]"""Search all accounts""" searchAccounts(search:String):[Account!]!"""Service by ID""" service(id:ID!):Service """Accounts with enterprise subscriptions that will expire within the next 30 days""" soonToExpireEnterpriseAccounts:[Account!]"""Query statistics across all services. For admins only; normal users must go through AccountsStatsWindow or ServiceStatsWindow.""" stats(from:Timestamp!"""Granularity of buckets. Defaults to the entire range (aggregate all data into a single durationBucket) when null.""" resolution:Resolution """Defaults to the current time when null.""" to:Timestamp):StatsWindow!"""Get the studio settings for the current user""" studioSettings:UserSettings """Schema transformation for the Apollo platform API. Renames types. Internal to Apollo.""" transformSchemaForPlatformApi(baseSchema:GraphQLDocument!):GraphQLDocument """Returns details of the Apollo user with the provided ID.""" user(id:ID!):User """Returns details of a Studio graph variant with the provided graph ref. A graph ref has the format `graphID@variantName` (or just `graphID` for the default variant `current`). Returns null if the graph or variant doesn't exist, or if the graph isn't accessible by the current actor.""" variant(ref:ID!):GraphVariantLookup}"""query documents to validate against""" input QueryDocumentInput{document:String}type QueryPlan{json:String!object:Object!text:String!}"""Columns of QueryStats.""" enum QueryStatsColumn{ACCOUNT_ID CACHED_HISTOGRAM CACHED_REQUESTS_COUNT CACHE_TTL_HISTOGRAM CLIENT_NAME CLIENT_VERSION FORBIDDEN_OPERATION_COUNT FROM_ENGINEPROXY OPERATION_SUBTYPE OPERATION_TYPE QUERY_ID QUERY_NAME REGISTERED_OPERATION_COUNT REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP UNCACHED_HISTOGRAM UNCACHED_REQUESTS_COUNT}type QueryStatsDimensions{accountId:ID clientName:String clientVersion:String fromEngineproxy:String operationSubtype:String operationType:String queryId:ID queryName:String querySignature:String querySignatureLength:Int schemaHash:String schemaTag:String serviceId:ID}"""Filter for data in QueryStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input QueryStatsFilter{"""Selects rows whose accountId dimension equals the given value if not null. To query for the null value, use {in: {accountId: [null]}} instead.""" accountId:ID and:[QueryStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fromEngineproxy dimension equals the given value if not null. To query for the null value, use {in: {fromEngineproxy: [null]}} instead.""" fromEngineproxy:String in:QueryStatsFilterIn not:QueryStatsFilter """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[QueryStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID}"""Filter for data in QueryStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input QueryStatsFilterIn{"""Selects rows whose accountId dimension is in the given list. A null value in the list means a row with null for that dimension.""" accountId:[ID]"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fromEngineproxy dimension is in the given list. A null value in the list means a row with null for that dimension.""" fromEngineproxy:[String]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]}type QueryStatsMetrics{cacheTtlHistogram:DurationHistogram!cachedHistogram:DurationHistogram!cachedRequestsCount:Long!forbiddenOperationCount:Long!registeredOperationCount:Long!requestsWithErrorsCount:Long!totalLatencyHistogram:DurationHistogram!totalRequestCount:Long!uncachedHistogram:DurationHistogram!uncachedRequestsCount:Long!}input QueryStatsOrderBySpec{column:QueryStatsColumn!direction:Ordering!}type QueryStatsRecord{"""Dimensions of QueryStats that can be grouped by.""" groupBy:QueryStatsDimensions!"""Metrics of QueryStats that can be aggregated over.""" metrics:QueryStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Query Trigger""" type QueryTrigger implements ChannelSubscription{channels:[Channel!]!comparisonOperator:ComparisonOperator!enabled:Boolean!excludedOperationNames:[String!]!id:ID!metric:QueryTriggerMetric!operationNames:[String!]!percentile:Float scope:QueryTriggerScope!serviceId:String!state:QueryTriggerState!threshold:Float!variant:String window:QueryTriggerWindow!}"""Query trigger""" input QueryTriggerInput{channelIds:[String!]comparisonOperator:ComparisonOperator!enabled:Boolean excludedOperationNames:[String!]metric:QueryTriggerMetric!operationNames:[String!]percentile:Float scope:QueryTriggerScope threshold:Float!variant:String window:QueryTriggerWindow!}enum QueryTriggerMetric{"""Number of requests within the window that resulted in an error. Ignores `percentile`.""" ERROR_COUNT """Number of error requests divided by total number of requests. Ignores `percentile`.""" ERROR_PERCENTAGE """Number of requests within the window. Ignores `percentile`.""" REQUEST_COUNT """Request latency in ms. Requires `percentile`.""" REQUEST_SERVICE_TIME}enum QueryTriggerScope{ALL ANY UNRECOGNIZED}"""Query trigger state""" type QueryTriggerState{evaluatedAt:Timestamp!lastTriggeredAt:Timestamp operations:[QueryTriggerStateOperation!]!triggered:Boolean!}type QueryTriggerStateOperation{count:Long!operation:String!triggered:Boolean!value:Float!}enum QueryTriggerWindow{FIFTEEN_MINUTES FIVE_MINUTES ONE_MINUTE UNRECOGNIZED}"""The README documentation for a graph variant, which is displayed in Studio.""" type Readme{"""The contents of the README in plaintext.""" content:String!"""The README's unique ID. `a15177c0-b003-4837-952a-dbfe76062eb1` for the default README""" id:ID!"""The timestamp when the README was most recently updated. `1970-01-01T00:00:00Z` for the default README""" lastUpdatedAt:Timestamp!@deprecated(reason:"Deprecated in favour of lastUpdatedTime")"""The actor that most recently updated the README (usually a `User`). `null` for the default README, or if the `User` was deleted.""" lastUpdatedBy:Identity """The timestamp when the README was most recently updated. `null` for the default README""" lastUpdatedTime:Timestamp}"""Responsibility for an errored order""" enum ReasonCause{INTERNAL USER}"""Region where a Cloud Router is deployed""" enum Region{AMERICA}"""Description for a Cloud Router region""" type RegionDescription{"""Region identifier""" code:String!"""Full name of the region""" name:String!"""Cloud Provider related to this region""" provider:CloudProvider!}type RegisterOperationsMutationResponse{invalidOperations:[InvalidOperation!]newOperations:[RegisteredOperation!]registrationSuccess:Boolean!}input RegisteredClientIdentityInput{identifier:String!name:String!version:String}type RegisteredOperation{signature:ID!}input RegisteredOperationInput{document:String metadata:RegisteredOperationMetadataInput signature:ID!}input RegisteredOperationMetadataInput{"""This will be used to link existing records in Engine to a new ID.""" engineSignature:String}type RegistryStatsWindow{schemaCheckStats:[AccountChecksStatsRecord!]!schemaPublishStats:[AccountPublishesStatsRecord!]!}type RegistrySubscription implements ChannelSubscription{channel:Channel channels:[Channel!]!@deprecated(reason:"Use channels list instead")createdAt:Timestamp!enabled:Boolean!id:ID!lastUpdatedAt:Timestamp!options:SubscriptionOptions!variant:String}type RelaunchComplete{latestLaunch:Launch!updated:Boolean!}type RelaunchError{message:String!}union RelaunchResult=RelaunchComplete|RelaunchError union RemoveOperationCollectionEntryResult=OperationCollection|PermissionError union RemoveOperationCollectionFromVariantResult=GraphVariant|NotFoundError|PermissionError|ValidationError union ReorderOperationCollectionResult=OperationCollection|PermissionError type ReportSchemaError implements ReportSchemaResult{code:ReportSchemaErrorCode!inSeconds:Int!message:String!withCoreSchema:Boolean!}enum ReportSchemaErrorCode{BOOT_ID_IS_NOT_VALID_UUID BOOT_ID_IS_REQUIRED CORE_SCHEMA_HASH_IS_NOT_SCHEMA_SHA256 CORE_SCHEMA_HASH_IS_REQUIRED CORE_SCHEMA_HASH_IS_TOO_LONG EXECUTABLE_SCHEMA_ID_IS_NOT_SCHEMA_SHA256 EXECUTABLE_SCHEMA_ID_IS_REQUIRED EXECUTABLE_SCHEMA_ID_IS_TOO_LONG GRAPH_REF_INVALID_FORMAT GRAPH_REF_IS_REQUIRED GRAPH_VARIANT_DOES_NOT_MATCH_REGEX GRAPH_VARIANT_IS_REQUIRED LIBRARY_VERSION_IS_TOO_LONG PLATFORM_IS_TOO_LONG RUNTIME_VERSION_IS_TOO_LONG SCHEMA_IS_NOT_PARSABLE SCHEMA_IS_NOT_VALID SERVER_ID_IS_TOO_LONG USER_VERSION_IS_TOO_LONG}type ReportSchemaResponse implements ReportSchemaResult{inSeconds:Int!withCoreSchema:Boolean!}interface ReportSchemaResult{inSeconds:Int!withCoreSchema:Boolean!}type ReportServerInfoError implements ReportServerInfoResult{code:ReportSchemaErrorCode!inSeconds:Int!message:String!withExecutableSchema:Boolean!}type ReportServerInfoResponse implements ReportServerInfoResult{inSeconds:Int!withExecutableSchema:Boolean!}interface ReportServerInfoResult{inSeconds:Int!withExecutableSchema:Boolean!}type RequestCountsPerGraphVariant{cachedRequestsCount:Long!graphID:String!uncachedRequestsCount:Long!variant:String}type RequesterUser{email:String!id:ID!name:String!}enum Resolution{R1D R1H R1M R5M R6H R15M}enum ResponseHints{NONE SAMPLE_RESPONSES SUBGRAPHS TIMINGS TRACE_TIMINGS}type RoleOverride{graph:Service!lastUpdatedAt:Timestamp!role:UserPermission!user:User!}type Router{"""graphRef representing the Cloud Router""" id:ID!"""Retrieves a specific Order related to this Cloud Router""" order(orderId:ID!):Order """Retrieves all Orders related to this Cloud Router""" orders(first:Int offset:Int):[Order!]!"""URL where the Cloud Router can be found + +This will be null if the Cloud Router is in a deleted status""" routerUrl:String """Current version of the Cloud Router""" routerVersion:RouterVersion!"""Return the list of secrets for this Cloud Router with their hash values""" secrets:[Secret!]!"""Shard associated with this Cloud Router""" shard:Shard """Current status of the Cloud Router""" status:RouterStatus!"""Last time when the Cloud Router was updated + +If the Cloud Router was never updated, this value will be null""" updatedAt:NaiveDateTime}"""Router configuration input""" input RouterConfigInput{"""Number of GCUs allocated for the Cloud Router + +This is ignored for serverless Cloud Routers""" gcus:Int """Graph composition ID, also known as launch ID""" graphCompositionId:String """Configuration for the Cloud Router""" routerConfig:String """URL for the Cloud Router""" routerUrl:String """Router version for the Cloud Router""" routerVersion:String}type RouterEntitlement{"""The internal id of the account this entitlement was generated for.""" accountId:String!"""Which audiences this entitlement applies to. Cloud and on-premise routers each require the presence of their own audience.""" audience:[RouterEntitlementAudience!]!"""Router should stop serving requests after this time if commercial features are in use.""" haltAt:Timestamp """RFC 8037 Ed25519 JWT signed representation of sibling fields. Restricted to internal services only.""" jwt:String!"""Organization this entitlement applies to.""" subject:String!"""Router should warn users after this time if commercial features are in use.""" warnAt:Timestamp}enum RouterEntitlementAudience{CLOUD SELF_HOSTED}type RouterMutation{"""Router mutations for Cloud Routers hosted on Fly""" fly:FlyRouterMutation """Set the version used for the next update for this Cloud Router""" setNextVersion(version:String!):SetNextVersionResult!"""Set secrets for this Cloud Router""" setSecrets(input:RouterSecretsInput!):RouterSecretsResult!}"""User input for a RouterSecrets mutation""" input RouterSecretsInput{"""Secrets to create or update""" secrets:[SecretInput!]"""Secrets to remove""" unsetSecrets:[String!]}"""Represents the possible outcomes of a RouterSecrets mutation""" union RouterSecretsResult=InternalServerError|InvalidInputErrors|RouterSecretsSuccess """Success branch of a RouterSecrets mutation.""" type RouterSecretsSuccess{order:Order!secrets:[Secret!]!}"""Current status of Cloud Routers""" enum RouterStatus{CREATING DELETED DELETING ROLLING_BACK RUNNING UPDATING}type RouterUpsertFailure{message:String!}"""A generic key→count type so that router usage metrics can be added to without modifying the `trackRouterUsage` mutation""" input RouterUsageInput{count:Int!key:String!}"""Router Version""" type RouterVersion{"""Build number""" build:String!"""JSON schema for validating the router configuration for this router version""" configSchema:String!"""Config version for this router version""" configVersion:String!"""Core version identifier""" core:String!"""Status of a router version""" status:Status!"""Version identifier""" version:String!}"""Input to create a new router version""" input RouterVersionCreateInput{"""JSON schema for allowed properties""" configSchema:String!"""Version of the configuration""" configVersion:String!"""Version status""" status:Status!"""Version identifier""" version:String!}"""Input for deleting a router version""" input RouterVersionDeleteInput{"""Version identifier""" version:String!}"""Result of a router version query""" union RouterVersionResult=InternalServerError|InvalidInputErrors|RouterVersion """Input for updating a router version""" input RouterVersionUpdateInput{"""JSON schema for allowed properties""" configSchema:String """Version of the configuration""" configVersion:String """Version status""" status:Status """Version identifier""" version:String!}"""List of router versions""" type RouterVersions{versions:[RouterVersion!]!}"""Input for filtering router versions""" input RouterVersionsInput{"""Name of the branch""" branch:String """Maximum number of versions to return""" limit:Int """Status of the version""" status:Status}"""Result of a router versions query""" union RouterVersionsResult=InternalServerError|InvalidInputErrors|RouterVersions input RoverArgumentInput{key:String!value:Object}input RunLintCheckInput{baseSchema:SchemaHashInput!checkStep:CheckStepInput!proposedSchema:SchemaHashInput!}"""A SHA-256 hash, represented as a lowercase hexadecimal string.""" scalar SHA256 type ScheduledSummary implements ChannelSubscription{channel:Channel@deprecated(reason:"Use channels list instead")channels:[Channel!]!enabled:Boolean!id:ID!timezone:String!variant:String!}"""A GraphQL schema document and associated metadata.""" type Schema{createTemporaryURL(expiresInSeconds:Int!=86400):TemporaryURL """The timestamp of initial ingestion of a schema to a graph.""" createdAt:Timestamp!"""The GraphQL schema document.""" document:GraphQLDocument!"""The number of fields; this includes user defined fields only, excluding built-in types and fields""" fieldCount:Int!gitContext:GitContext """The GraphQL schema document's SHA256 hash, represented as a hexadecimal string.""" hash:ID!introspection:IntrospectionSchema!"""The number of types; this includes user defined types only, excluding built-in types""" typeCount:Int!}"""An error that occurred while running schema composition on a set of subgraph schemas.""" type SchemaCompositionError{"""A machine-readable error code.""" code:String """Source locations related to the error.""" locations:[SourceLocation]!"""A human-readable message describing the error.""" message:String!}"""The result of computing the difference between two schemas, usually as part of schema checks.""" type SchemaDiff{"""Clients affected by all changes in the diff.""" affectedClients:[AffectedClient!]@deprecated(reason:"Unsupported.")"""Operations affected by all changes in the diff.""" affectedQueries:[AffectedQuery!]"""Numeric summaries for each type of change in the diff.""" changeSummary:ChangeSummary!"""A list of all schema changes in the diff, including their severity.""" changes:[Change!]!"""The number of GraphQL operations affected by the diff's changes that are neither marked as safe nor ignored.""" numberOfAffectedOperations:Int!"""The number of GraphQL operations that were validated during the check.""" numberOfCheckedOperations:Int """Indicates the overall safety of the changes included in the diff, based on operation history (e.g., `FAILURE` or `NOTICE`).""" severity:ChangeSeverity!"""The tag against which this diff was created""" tag:String type:ChangeType!@deprecated(reason:"use severity instead")"""Configuration of validation""" validationConfig:SchemaDiffValidationConfig}type SchemaDiffValidationConfig{"""Clients to ignore during validation.""" excludedClients:[ClientInfoFilterOutput!]"""Operation names to ignore during validation.""" excludedOperationNames:[OperationNameFilter]"""delta in seconds from current time that determines the start of the window +for reported metrics included in a schema diff. A day window from the present +day would have a `from` value of -86400. In rare cases, this could be an ISO +timestamp if the user passed one in on diff creation""" from:Timestamp """Operation IDs to ignore during validation.""" ignoredOperations:[ID!]"""Variants to include during validation.""" includedVariants:[String!]"""Minimum number of requests within the window for a query to be considered.""" queryCountThreshold:Int """Number of requests within the window for a query to be considered, relative to +total request count. Expected values are between 0 and 0.05 (minimum 5% of +total request volume)""" queryCountThresholdPercentage:Float """delta in seconds from current time that determines the end of the +window for reported metrics included in a schema diff. A day window +from the present day would have a `to` value of -0. In rare +cases, this could be an ISO timestamp if the user passed one in on diff +creation""" to:Timestamp}input SchemaHashInput{"""SHA256 of the schema sdl.""" hash:String!subgraphs:[SubgraphHashInput!]}type SchemaPublishSubscription implements ChannelSubscription{channels:[Channel!]!createdAt:Timestamp!enabled:Boolean!id:ID!lastUpdatedAt:Timestamp!variant:String}input SchemaReport{"""A randomly generated UUID, immutable for the lifetime of the edge server runtime.""" bootId:String!"""The hex SHA256 hash of the schema being reported. Note that for a GraphQL server with a core schema, this should be the core schema, not the API schema.""" coreSchemaHash:String!"""The graph ref (eg, 'id@variant')""" graphRef:String!"""The version of the edge server reporting agent, e.g. apollo-server-2.8, graphql-java-3.1, etc. length must be <= 256 characters.""" libraryVersion:String """The infra environment in which this edge server is running, e.g. localhost, Kubernetes, AWS Lambda, Google CloudRun, AWS ECS, etc. length must be <= 256 characters.""" platform:String """The runtime in which the edge server is running, e.g. node 12.03, zulu8.46.0.19-ca-jdk8.0.252-macosx_x64, etc. length must be <= 256 characters.""" runtimeVersion:String """If available, an identifier for the edge server instance, such that when restarting this instance it will have the same serverId, with a different bootId. For example, in Kubernetes this might be the pod name. Length must be <= 256 characters.""" serverId:String """An identifier used to distinguish the version (from the user's perspective) of the edge server's code itself. For instance, the git sha of the server's repository or the docker sha of the associated image this server runs with. Length must be <= 256 characters.""" userVersion:String}"""Contains details for an individual publication of an individual graph variant.""" type SchemaTag{"""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.""" compositionResult:CompositionResult createdAt:Timestamp!"""A schema diff comparing against the schema from the most recent previous successful publication.""" diffToPrevious:SchemaDiff gitContext:GitContext """List of previously uploaded SchemaTags under the same tag name, starting with +the selected published schema record. Sorted in reverse chronological order +by creation date (newest publish first). + +Note: This does not include the history of checked schemas""" history(includeUnchanged:Boolean!=true limit:Int!=3 offset:Int=0):[SchemaTag!]!"""Number of tagged schemas created under the same tag name. +Also represents the maximum size of the history's limit argument.""" historyLength:Int!"""Number of schemas tagged prior to this one under the same tag name, its position +in the tag history.""" historyOrder:Int!"""The identifier for this specific publication.""" id:ID!"""The launch for this publication. This value is non-null for contract variants, and sometimes null +for composition variants (specifically for older publications). This value is null for other +variants.""" launch:Launch """The timestamp when the variant was published to.""" publishedAt:Timestamp!"""The Identity that published this schema and their client info, or null if this isn't +a publish. Sub-fields may be null if they weren't recorded.""" publishedBy:IdentityAndClientInfo """The schema that was published to the variant.""" schema:Schema!slackNotificationBody(graphDisplayName:String!):String tag:String!@deprecated(reason:"Please use variant { name } instead")"""The variant that was published to." +""" variant:GraphVariant!webhookNotificationBody:String!}"""An error that occurs when an invalid schema is passed in as user input""" type SchemaValidationError implements Error{issues:[SchemaValidationIssue!]!"""The error's details.""" message:String!}"""An error that occurs when an invalid schema is passed in as user input""" type SchemaValidationIssue{message:String!}"""How many seats of the given types does an organization have (regardless of plan type)?""" type Seats{"""How many members that are free in this organization.""" free:Int!"""How many members that are not free in this organization.""" fullPrice:Int!}"""Cloud Router secret""" type Secret{"""When the secret was created""" createdAt:DateTime!"""Hash of the secret""" hash:String!"""Name of the secret""" name:String!}"""Input for creating or updating secrets""" input SecretInput{"""Name of the secret""" name:String!"""Value for that secret + +This can only be used for input, as it is not possible to retrieve the value of secrets.""" value:String!}type SemanticChange{"""Target arg of change made.""" argNode:NamedIntrospectionArg """Node related to the top level node that was changed, such as a field in an object, +a value in an enum or the object of an interface""" childNode:NamedIntrospectionValue """Semantic metadata about the type of change""" definition:ChangeDefinition!"""Top level node affected by the change""" parentNode:NamedIntrospectionType}"""A graph in Apollo Studio represents a graph in your organization. Each graph has one or more variants, which correspond to the different environments where that graph runs (such as staging and production). -Each variant has its own GraphQL schema, which means schemas can differ between environments. -""" -type Graph implements Identity { - """The organization that this graph belongs to.""" - account: Organization - """A list of the graph API keys that are active for this graph.""" - apiKeys: [GraphApiKey!] - """Provides a view of the graph as an `Actor` type.""" - asActor: Actor! - """Get a check workflow for this graph by its ID""" - checkWorkflow(id: ID!): CheckWorkflow - """The graph's globally unique identifier.""" - id: ID! - """Permissions of the current user in this graph.""" - myRole: UserPermission - name: String! - """Describes the permissions that the active user has for this graph.""" - roles: GraphRoles - """The graph's name.""" - title: String! - """ - Provides details of the graph variant with the provided `name`, if a variant - with that name exists for this graph. Otherwise, returns null. - - For a list of _all_ variants associated with a graph, use `Graph.variants` instead. - """ - variant(name: String!): GraphVariant - """A list of the variants for this graph.""" - variants: [GraphVariant!]! - """Get a GraphQL document by hash""" - document(hash: SHA256): GraphQLDocument - """Get check workflows for this graph ordered by creation time, most recent first.""" - checkWorkflows(limit: Int! = 100, filter: CheckFilterInput): [CheckWorkflow!]! -} - -"""Provides access to mutation fields for managing Studio graphs and subgraphs.""" -type GraphMutation { - """Generates a new graph API key for this graph with the specified permission level.""" - newKey(keyName: String, role: UserPermission! = GRAPH_ADMIN): GraphApiKey! - """Deletes the existing graph API key with the provided ID, if any.""" - removeKey( - """API key ID""" - id: ID! - ): Void - """Sets a new name for the graph API key with the provided ID, if any. This does not invalidate the key or change its value.""" - renameKey(id: ID!, newKeyName: String): GraphApiKey - """Creates a contract schema from a source variant and a set of filter configurations""" - upsertContractVariant( - """The name of the contract variant, e.g. `public-api`. Once set, this value cannot be changed.""" - contractVariantName: String! - """The filter configuration used to build a contract schema. The configuration consists of lists of tags for schema elements to include or exclude in the resulting schema.""" - filterConfig: FilterConfigInput! - """Whether a launch and schema publish should be initiated after updating configuration. Defaults to `true`.""" - initiateLaunch: Boolean! = true - """The graphRef of the variant the contract will be derived from, e.g. `my-graph@production`. Once set, this value cannot be changed.""" - sourceVariant: String - ): ContractVariantUpsertResult! - """Make changes to a graph variant.""" - variant(name: String!): GraphVariantMutation - """Publish a schema to this variant, either via a document or an introspection query result.""" - uploadSchema(schema: IntrospectionSchemaInput, schemaDocument: String, tag: String!, historicParameters: HistoricQueryParameters, overrideComposedSchema: Boolean! = false, errorOnBadRequest: Boolean! = true, gitContext: GitContextInput): SchemaPublicationResult - """ - Checks a proposed schema against the schema that has been published to - a particular variant, using metrics corresponding to `historicParameters`. - Callers can set `historicParameters` directly or rely on defaults set in the - graph's check configuration (7 days by default). - If they do not set `historicParameters` but set `useMaximumRetention`, - validation will use the maximum retention the graph has access to. - """ - checkSchema( - """ - Only one of proposedSchema, proposedSchemaDocument, and proposedSchemaHash - may be specified - """ - proposedSchema: IntrospectionSchemaInput - proposedSchemaDocument: String - proposedSchemaHash: String - baseSchemaTag: String = "current" - gitContext: GitContextInput - historicParameters: HistoricQueryParameters - useMaximumRetention: Boolean - isSandboxCheck: Boolean! = false - """If this check is triggered for an sdl fetched using introspection, this is the endpoint where that schema was being served.""" - introspectionEndpoint: String - """Deprecated and ignored.""" - frontend: String - ): CheckSchemaResult! - """Publish to a subgraph. If composition is successful, this will update running routers.""" - publishSubgraph(graphVariant: String!, name: String!, url: String, revision: String!, activePartialSchema: PartialSchemaInput!, gitContext: GitContextInput): SubgraphPublicationResult - """Removes a subgraph. If composition is successful, this will update running routers.""" - removeImplementingServiceAndTriggerComposition( - graphVariant: String! - name: String! - """Do not remove the service, but recompose without it and report any errors.""" - dryRun: Boolean! = false - ): SubgraphRemovalResult! - """ - Checks a proposed subgraph schema change against a published subgraph. - If the proposal composes successfully, perform a usage check for the resulting supergraph schema. - """ - checkPartialSchema( - """The name of the graph variant to run the check against.""" - graphVariant: String! - """Name of the implementing service to validate the partial schema against""" - implementingServiceName: String! - """The partial schema to validate against an implementing service""" - partialSchema: PartialSchemaInput! - gitContext: GitContextInput - historicParameters: HistoricQueryParameters - """Deprecated and ignored.""" - frontend: String - """ - Whether to use the maximum retention for historical validation. This only takes - effect if historicParameters is null. - """ - useMaximumRetention: Boolean - isSandboxCheck: Boolean! = false - """If this check is triggered for an sdl fetched using introspection, this is the endpoint where that schema was being served.""" - introspectionEndpoint: String - ): CheckPartialSchemaResult! -} - -"""Individual permissions for the current user when interacting with a particular Studio graph.""" -type GraphRoles { - """Whether the currently authenticated user is permitted to perform schema checks (i.e., run `rover (sub)graph check`).""" - canCheckSchemas: Boolean! - """Whether the currently authenticated user is permitted to create new graph variants.""" - canCreateVariants: Boolean! - """Whether the currently authenticated user is permitted to delete the graph in question""" - canDelete: Boolean! - """Whether the currently authenticated user is permitted to manage user access to the graph in question.""" - canManageAccess: Boolean! - """Whether the currently authenticated user is permitted to manage the build configuration (e.g., build pipeline version).""" - canManageBuildConfig: Boolean! - """Whether the currently authenticated user is permitted to manage third-party integrations (e.g., Datadog forwarding).""" - canManageIntegrations: Boolean! - """Whether the currently authenticated user is permitted to manage graph-level API keys.""" - canManageKeys: Boolean! - """Whether the currently authenticated user is permitted to perform basic administration of variants (e.g., make a variant public).""" - canManageVariants: Boolean! - """Whether the currently authenticated user is permitted to view details about the build configuration (e.g. build pipeline version).""" - canQueryBuildConfig: Boolean! - """Whether the currently authenticated user is permitted to view details of the check configuration for this graph.""" - canQueryCheckConfiguration: Boolean! - """Whether the currently authenticated user is permitted to view which subgraphs the graph is composed of.""" - canQueryImplementingServices: Boolean! - """Whether the currently authenticated user is permitted to download schemas owned by this graph.""" - canQuerySchemas: Boolean! - """Whether the currently authenticated user is permitted to register operations (i.e. `apollo client:push`) for this graph.""" - canRegisterOperations: Boolean! - """Whether the currently authenticated user is permitted to make updates to the check configuration for this graph.""" - canWriteCheckConfiguration: Boolean! -} - -"""A SHA-256 hash, represented as a lowercase hexadecimal string.""" -scalar SHA256 - -"""A location in a source code file.""" -type SourceLocation { - """Column number.""" - column: Int! - """Line number.""" - line: Int! -} - -enum Status { - STABLE - NEXT - DEPRECATED -} - -"""A subgraph in a federated Studio supergraph.""" -type Subgraph { - """The subgraph schema document's SHA256 hash, represented as a hexadecimal string.""" - hash: String! - """The subgraph's registered name.""" - name: String! - """The number of fields in this subgraph""" - numberOfFields: Int - """The number of types in this subgraph""" - numberOfTypes: Int - """The subgraph's routing URL, provided to gateways that use managed federation.""" - routingURL: String! - """Timestamp of when the subgraph was published.""" - updatedAt: Timestamp -} - -"""A change made to a subgraph as part of a launch.""" -type SubgraphChange { - """The subgraph's name.""" - name: ID! - """The type of change that was made.""" - type: SubgraphChangeType! -} - -enum SubgraphChangeType { - ADDITION - DELETION - MODIFICATION -} - -"""Input type to provide when running schema checks asynchronously for a federated supergraph.""" -input SubgraphCheckAsyncInput { - """Configuration options for the check execution.""" - config: HistoricQueryParametersInput! - """The GitHub context to associate with the check.""" - gitContext: GitContextInput! - """The graph ref of the Studio graph and variant to run checks against (such as `my-graph@current`).""" - graphRef: ID - """The URL of the GraphQL endpoint that Apollo Sandbox introspected to obtain the proposed schema. Required if `isSandbox` is `true`.""" - introspectionEndpoint: String - """If `true`, the check was initiated by Apollo Sandbox.""" - isSandbox: Boolean! - """The proposed subgraph schema to perform checks with.""" - proposedSchema: GraphQLDocument! - """The name of the subgraph to check schema changes for.""" - subgraphName: String! -} - -"""ISO 8601, extended format with nanoseconds, Zulu (or "[+-]seconds" as a string or number relative to now)""" -scalar Timestamp - -"""Counts of changes.""" -type TotalChangeSummaryCounts { - """ - Number of changes that are additions. This includes adding types, adding fields to object, input - object, and interface types, adding values to enums, adding members to interfaces and unions, and - adding arguments. - """ - additions: Int! - """ - Number of changes that are removals. This includes removing types, removing fields from object, - input object, and interface types, removing values from enums, removing members from interfaces - and unions, and removing arguments. This also includes removing @deprecated usages. - """ - removals: Int! - """ - Number of changes that are edits. This includes types changing kind, fields and arguments - changing type, arguments changing default value, and any description changes. This also includes - edits to @deprecated reason strings. - """ - edits: Int! - """Number of changes that are new usages of the @deprecated directive.""" - deprecations: Int! -} - -"""Counts of changes at the type level, including interfaces, unions, enums, scalars, input objects, etc.""" -type TypeChangeSummaryCounts { - """Number of changes that are additions of types.""" - additions: Int! - """Number of changes that are removals of types.""" - removals: Int! - """ - Number of changes that are edits. This includes types changing kind and any type description - changes, but also includes adding/removing values from enums, adding/removing members from - interfaces and unions, and any enum value deprecation and description changes. - """ - edits: Int! -} - -union UpdateOperationCollectionEntryResult = OperationCollectionEntry | PermissionError | ValidationError - -union UpdateOperationCollectionResult = OperationCollection | PermissionError | ValidationError - -"""Describes the result of publishing a schema to a graph variant.""" -type SchemaPublicationResult { - """A machine-readable response code that indicates the type of result (e.g., `UPLOAD_SUCCESS` or `NO_CHANGES`)""" - code: String! - """Whether the schema publish operation succeeded (`true`) or encountered errors (`false`).""" - success: Boolean! - """A Human-readable message describing the type of result.""" - message: String! - """If the publish operation succeeded, this contains its details. Otherwise, this is null.""" - publication: SchemaPublication -} - -"""A registered Apollo Studio user.""" -type User implements Identity { - """Returns a list of all active user API keys for the user.""" - apiKeys(includeCookies: Boolean = false): [UserApiKey!]! - """Returns a representation of this user as an `Actor` type. Useful when determining which actor (usually a `User` or `Graph`) performed a particular action in Studio.""" - asActor: Actor! - """The user's unique ID.""" - id: ID! - """A list of the user's memberships in Apollo Studio organizations.""" - memberships: [UserMembership!]! - """The user's first and last name.""" - name: String! -} - -""" -Represents a user API key, which has permissions identical to -its associated Apollo user. -""" -type UserApiKey implements ApiKey { - """The API key's ID.""" - id: ID! - """The API key's name, for distinguishing it from other keys.""" - keyName: String - """The value of the API key. **This is a secret credential!**""" - token: String! -} - -"""A single user's membership in a single Apollo Studio organization.""" -type UserMembership { - """The organization that the user belongs to.""" - account: Organization! - """The timestamp when the user was added to the organization.""" - createdAt: Timestamp! - """The user's permission level within the organization.""" - permission: UserPermission! - """The user that belongs to the organization.""" - user: User! -} - -type UserMutation { - """Creates a new user API key for this user.""" - newKey(keyName: String!): UserApiKey! - """ - If this user has no active user API keys, this creates one for the user. - - If this user has at least one active user API key, this returns one of those keys at random and does _not_ create a new key. - """ - provisionKey(keyName: String! = "add-a-name"): ApiKeyProvision - """Deletes the user API key with the provided ID, if any.""" - removeKey( - """API key ID""" - id: ID! - ): Void - """Sets a new name for the user API key with the provided ID, if any. This does not invalidate the key or change its value.""" - renameKey(id: ID!, newKeyName: String): UserApiKey -} - -enum UserPermission { - BILLING_MANAGER - CONSUMER - CONTRIBUTOR - DOCUMENTER - GRAPH_ADMIN - LEGACY_GRAPH_KEY - OBSERVER - ORG_ADMIN -} - -"""An error that occurs when an operation contains invalid user input.""" -type ValidationError implements Error { - """The error's details.""" - message: String! -} - -"""Always null""" -scalar Void +Each variant has its own GraphQL schema, which means schemas can differ between environments.""" type Service implements Identity{"""The organization that this graph belongs to.""" account:Account accountId:ID """A list of the graph API keys that are active for this graph.""" apiKeys:[GraphApiKey!]"""Provides a view of the graph as an `Actor` type.""" asActor:Actor!"""Get an URL to which an avatar image can be uploaded. Client uploads by sending a PUT request +with the image data to MediaUploadInfo.url. Client SHOULD set the "Content-Type" header to the +browser-inferred MIME type, and SHOULD set the "x-apollo-content-filename" header to the +filename, if such information is available. Client MUST set the "x-apollo-csrf-token" header to +MediaUploadInfo.csrfToken.""" avatarUpload:AvatarUploadResult """Get an image URL for the service's avatar. Note that CORS is not enabled for these URLs. The size +argument is used for bandwidth reduction, and should be the size of the image as displayed in the +application. Apollo's media server will downscale larger images to at least the requested size, +but this will not happen for third-party media servers.""" avatarUrl(size:Int!=40):String """Get available notification endpoints""" channels(channelIds:[ID!]):[Channel!]"""Get check configuration for this graph.""" checkConfiguration:CheckConfiguration """Get a check workflow for this graph by its ID""" checkWorkflow(id:ID!):CheckWorkflow """Get a check workflow task for this graph by its ID""" checkWorkflowTask(id:ID!):CheckWorkflowTask """Get check workflows for this graph ordered by creation time, most recent first.""" checkWorkflows(filter:CheckFilterInput limit:Int!=100):[CheckWorkflow!]!"""List of options available for filtering checks for this graph by author. +If a filter is passed, constrains results to match the filter.""" checksAuthorOptions(filter:CheckFilterInput):[String!]!"""List of options available for filtering checks for this graph by branch. +If a filter is passed, constrains results to match the filter.""" checksBranchOptions(filter:CheckFilterInput):[String!]!"""List of options available for filtering checks for this graph by subgraph name. +If a filter is passed, constrains results to match the filter.""" checksSubgraphOptions(filter:CheckFilterInput):[String!]!"""Get a composition build check result for this graph by its ID""" compositionBuildCheckResult(id:ID!):CompositionBuildCheckResult """Given a graphCompositionID, return the results of composition. This can represent either a validation or a publish.""" compositionResultById(id:ID!):CompositionResult createdAt:Timestamp!createdBy:Identity datadogMetricsConfig:DatadogMetricsConfig defaultBuildPipelineTrack:String deletedAt:Timestamp description:String devGraphOwner:User@deprecated """Get a GraphQL document by hash""" doc(hash:SHA256):GraphQLDoc """Get a GraphQL document by hash""" document(hash:SHA256):GraphQLDocument@deprecated(reason:"Use doc instead")flatDiff(newSdlHash:SHA256 oldSdlHash:SHA256):FlatDiffResult!"""The capabilities that are supported for this graph""" graphCapabilities:GraphCapabilities!graphType:GraphType!"""When this is true, this graph will be hidden from non-admin members of the org who haven't been explicitly assigned a +role on this graph.""" hiddenFromUninvitedNonAdminAccountMembers:Boolean!"""The graph's globally unique identifier.""" id:ID!"""List of ignored rule violations for the linter""" ignoredLinterViolations:[IgnoredRule!]!"""List of subgraphs that comprise a graph. A non-federated graph should have a single implementing service. +Set includeDeleted to see deleted subgraphs.""" implementingServices(graphVariant:String!includeDeleted:Boolean):GraphImplementors lastReportedAt(graphVariant:String):Timestamp """Linter configuration for this graph.""" linterConfiguration:GraphLinterConfiguration!"""Current identity, null if not authenticated.""" me:Identity minProposalRoles:ProposalRoles!"""The composition result that was most recently published to a graph variant.""" mostRecentCompositionPublish(graphVariant:String!):CompositionPublishResult """Permissions of the current user in this graph.""" myRole:UserPermission name:String!onboardingArchitecture:OnboardingArchitecture operation(id:ID!):Operation """Get request counts by variant for operation checks""" operationCheckRequestsByVariant(from:Timestamp!):[RequestCountsPerGraphVariant!]!"""Gets the operations and their approved changes for this graph, checkID, and operationID.""" operationsAcceptedChanges(checkID:ID!operationID:String!):[OperationAcceptedChange!]!"""Get an operations check result for a specific check ID""" operationsCheck(checkID:ID!):OperationsCheckResult persistedQueryList(id:ID!):PersistedQueryList persistedQueryLists:[PersistedQueryList!]!"""A list of the proposal variants for this graph sorted by created at date. +limit defaults to Int.MAX_VALUE, offset defaults to 0""" proposalVariants(filterBy:ProposalVariantsFilter limit:Int offset:Int):ProposalVariantsResult!"""Get query triggers for a given variant. If variant is null all the triggers for this service will be gotten.""" queryTriggers(graphVariant:String operationNames:[String!]):[QueryTrigger!]readme:Readme """Registry specific stats for this graph.""" registryStatsWindow(from:Timestamp!resolution:Resolution to:Timestamp):RegistryStatsWindow """Whether registry subscriptions (with any options) are enabled. If variant is not passed, returns true if configuration is present for any variant""" registrySubscriptionsEnabled(graphVariant:String):Boolean!@deprecated(reason:"This field will be removed")reportingEnabled:Boolean!"""The list of members that can access this graph, accounting for graph role overrides""" roleOverrides:[RoleOverride!]"""Describes the permissions that the active user has for this graph.""" roles:ServiceRoles scheduledSummaries:[ScheduledSummary!]!"""Get a schema by hash or current tag""" schema(hash:ID tag:String):Schema """The current publish associated to a given variant (with 'tag' as the variant name).""" schemaTag(tag:String!):SchemaTag schemaTagById(id:ID!):SchemaTag """Get schema tags, with optional filtering to a set of tags. Always sorted by creation +date in reverse chronological order.""" schemaTags(tags:[String!]):[SchemaTag!]stats(from:Timestamp!"""Granularity of buckets. Defaults to the entire range (aggregate all data into a single durationBucket) when null.""" resolution:Resolution """Defaults to the current time when null.""" to:Timestamp):ServiceStatsWindow!@deprecated(reason:"use Service.statsWindow instead")statsWindow(from:Timestamp!"""Granularity of buckets. Defaults to the entire range (aggregate all data into a single durationBucket) when null.""" resolution:Resolution """Defaults to the current time when null.""" to:Timestamp):ServiceStatsWindow """Generate a test schema publish notification body""" testSchemaPublishBody(variant:String!):String!"""The graph's name.""" title:String!trace(id:ID!):Trace traceStorageEnabled:Boolean!"""Provides details of the graph variant with the provided `name`, if a variant +with that name exists for this graph. Otherwise, returns null. + + For a list of _all_ variants associated with a graph, use `Graph.variants` instead.""" variant(name:String!):GraphVariant """A list of the variants for this graph.""" variants:[GraphVariant!]!}"""Columns of ServiceBillingUsageStats.""" enum ServiceBillingUsageStatsColumn{AGENT_VERSION GRAPH_DEPLOYMENT_TYPE OPERATION_COUNT OPERATION_COUNT_PROVIDED_EXPLICITLY OPERATION_SUBTYPE OPERATION_TYPE SCHEMA_TAG TIMESTAMP}type ServiceBillingUsageStatsDimensions{agentVersion:String graphDeploymentType:String operationCountProvidedExplicitly:String operationSubtype:String operationType:String schemaTag:String}"""Filter for data in ServiceBillingUsageStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceBillingUsageStatsFilter{"""Selects rows whose agentVersion dimension equals the given value if not null. To query for the null value, use {in: {agentVersion: [null]}} instead.""" agentVersion:String and:[ServiceBillingUsageStatsFilter!]"""Selects rows whose graphDeploymentType dimension equals the given value if not null. To query for the null value, use {in: {graphDeploymentType: [null]}} instead.""" graphDeploymentType:String in:ServiceBillingUsageStatsFilterIn not:ServiceBillingUsageStatsFilter """Selects rows whose operationCountProvidedExplicitly dimension equals the given value if not null. To query for the null value, use {in: {operationCountProvidedExplicitly: [null]}} instead.""" operationCountProvidedExplicitly:String """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[ServiceBillingUsageStatsFilter!]"""Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceBillingUsageStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceBillingUsageStatsFilterIn{"""Selects rows whose agentVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" agentVersion:[String]"""Selects rows whose graphDeploymentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" graphDeploymentType:[String]"""Selects rows whose operationCountProvidedExplicitly dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationCountProvidedExplicitly:[String]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceBillingUsageStatsMetrics{operationCount:Long!}input ServiceBillingUsageStatsOrderBySpec{column:ServiceBillingUsageStatsColumn!direction:Ordering!}type ServiceBillingUsageStatsRecord{"""Dimensions of ServiceBillingUsageStats that can be grouped by.""" groupBy:ServiceBillingUsageStatsDimensions!"""Metrics of ServiceBillingUsageStats that can be aggregated over.""" metrics:ServiceBillingUsageStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceEdgeServerInfos.""" enum ServiceEdgeServerInfosColumn{BOOT_ID EXECUTABLE_SCHEMA_ID LIBRARY_VERSION PLATFORM RUNTIME_VERSION SCHEMA_TAG SERVER_ID TIMESTAMP USER_VERSION}type ServiceEdgeServerInfosDimensions{bootId:ID executableSchemaId:ID libraryVersion:String platform:String runtimeVersion:String schemaTag:String serverId:ID userVersion:String}"""Filter for data in ServiceEdgeServerInfos. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceEdgeServerInfosFilter{and:[ServiceEdgeServerInfosFilter!]"""Selects rows whose bootId dimension equals the given value if not null. To query for the null value, use {in: {bootId: [null]}} instead.""" bootId:ID """Selects rows whose executableSchemaId dimension equals the given value if not null. To query for the null value, use {in: {executableSchemaId: [null]}} instead.""" executableSchemaId:ID in:ServiceEdgeServerInfosFilterIn """Selects rows whose libraryVersion dimension equals the given value if not null. To query for the null value, use {in: {libraryVersion: [null]}} instead.""" libraryVersion:String not:ServiceEdgeServerInfosFilter or:[ServiceEdgeServerInfosFilter!]"""Selects rows whose platform dimension equals the given value if not null. To query for the null value, use {in: {platform: [null]}} instead.""" platform:String """Selects rows whose runtimeVersion dimension equals the given value if not null. To query for the null value, use {in: {runtimeVersion: [null]}} instead.""" runtimeVersion:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serverId dimension equals the given value if not null. To query for the null value, use {in: {serverId: [null]}} instead.""" serverId:ID """Selects rows whose userVersion dimension equals the given value if not null. To query for the null value, use {in: {userVersion: [null]}} instead.""" userVersion:String}"""Filter for data in ServiceEdgeServerInfos. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceEdgeServerInfosFilterIn{"""Selects rows whose bootId dimension is in the given list. A null value in the list means a row with null for that dimension.""" bootId:[ID]"""Selects rows whose executableSchemaId dimension is in the given list. A null value in the list means a row with null for that dimension.""" executableSchemaId:[ID]"""Selects rows whose libraryVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" libraryVersion:[String]"""Selects rows whose platform dimension is in the given list. A null value in the list means a row with null for that dimension.""" platform:[String]"""Selects rows whose runtimeVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" runtimeVersion:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serverId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serverId:[ID]"""Selects rows whose userVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" userVersion:[String]}input ServiceEdgeServerInfosOrderBySpec{column:ServiceEdgeServerInfosColumn!direction:Ordering!}type ServiceEdgeServerInfosRecord{"""Dimensions of ServiceEdgeServerInfos that can be grouped by.""" groupBy:ServiceEdgeServerInfosDimensions!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceErrorStats.""" enum ServiceErrorStatsColumn{CLIENT_NAME CLIENT_VERSION ERRORS_COUNT PATH QUERY_ID QUERY_NAME REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG TIMESTAMP}type ServiceErrorStatsDimensions{clientName:String clientVersion:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String}"""Filter for data in ServiceErrorStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceErrorStatsFilter{and:[ServiceErrorStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:ServiceErrorStatsFilterIn not:ServiceErrorStatsFilter or:[ServiceErrorStatsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceErrorStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceErrorStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceErrorStatsMetrics{errorsCount:Long!requestsWithErrorsCount:Long!}input ServiceErrorStatsOrderBySpec{column:ServiceErrorStatsColumn!direction:Ordering!}type ServiceErrorStatsRecord{"""Dimensions of ServiceErrorStats that can be grouped by.""" groupBy:ServiceErrorStatsDimensions!"""Metrics of ServiceErrorStats that can be aggregated over.""" metrics:ServiceErrorStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceFieldExecutions.""" enum ServiceFieldExecutionsColumn{ERRORS_COUNT ESTIMATED_EXECUTION_COUNT FIELD_NAME OBSERVED_EXECUTION_COUNT PARENT_TYPE REFERENCING_OPERATION_COUNT REQUESTS_WITH_ERRORS_COUNT SCHEMA_TAG TIMESTAMP}type ServiceFieldExecutionsDimensions{fieldName:String parentType:String schemaTag:String}"""Filter for data in ServiceFieldExecutions. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceFieldExecutionsFilter{and:[ServiceFieldExecutionsFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:ServiceFieldExecutionsFilterIn not:ServiceFieldExecutionsFilter or:[ServiceFieldExecutionsFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceFieldExecutions. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceFieldExecutionsFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceFieldExecutionsMetrics{errorsCount:Long!estimatedExecutionCount:Long!observedExecutionCount:Long!referencingOperationCount:Long!requestsWithErrorsCount:Long!}input ServiceFieldExecutionsOrderBySpec{column:ServiceFieldExecutionsColumn!direction:Ordering!}type ServiceFieldExecutionsRecord{"""Dimensions of ServiceFieldExecutions that can be grouped by.""" groupBy:ServiceFieldExecutionsDimensions!"""Metrics of ServiceFieldExecutions that can be aggregated over.""" metrics:ServiceFieldExecutionsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceFieldLatencies.""" enum ServiceFieldLatenciesColumn{FIELD_HISTOGRAM FIELD_NAME PARENT_TYPE SCHEMA_HASH SCHEMA_TAG TIMESTAMP}type ServiceFieldLatenciesDimensions{field:String fieldName:String parentType:String schemaHash:String schemaTag:String}"""Filter for data in ServiceFieldLatencies. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceFieldLatenciesFilter{and:[ServiceFieldLatenciesFilter!]"""Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:ServiceFieldLatenciesFilterIn not:ServiceFieldLatenciesFilter or:[ServiceFieldLatenciesFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceFieldLatencies. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceFieldLatenciesFilterIn{"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceFieldLatenciesMetrics{fieldHistogram:DurationHistogram!}input ServiceFieldLatenciesOrderBySpec{column:ServiceFieldLatenciesColumn!direction:Ordering!}type ServiceFieldLatenciesRecord{"""Dimensions of ServiceFieldLatencies that can be grouped by.""" groupBy:ServiceFieldLatenciesDimensions!"""Metrics of ServiceFieldLatencies that can be aggregated over.""" metrics:ServiceFieldLatenciesMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceFieldUsage.""" enum ServiceFieldUsageColumn{CLIENT_NAME CLIENT_VERSION ESTIMATED_EXECUTION_COUNT EXECUTION_COUNT FIELD_NAME OPERATION_SUBTYPE OPERATION_TYPE PARENT_TYPE QUERY_ID QUERY_NAME REFERENCING_OPERATION_COUNT SCHEMA_HASH SCHEMA_TAG TIMESTAMP}type ServiceFieldUsageDimensions{clientName:String clientVersion:String fieldName:String operationSubtype:String operationType:String parentType:String queryId:ID queryName:String schemaHash:String schemaTag:String}"""Filter for data in ServiceFieldUsage. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceFieldUsageFilter{and:[ServiceFieldUsageFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fieldName dimension equals the given value if not null. To query for the null value, use {in: {fieldName: [null]}} instead.""" fieldName:String in:ServiceFieldUsageFilterIn not:ServiceFieldUsageFilter """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[ServiceFieldUsageFilter!]"""Selects rows whose parentType dimension equals the given value if not null. To query for the null value, use {in: {parentType: [null]}} instead.""" parentType:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceFieldUsage. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceFieldUsageFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fieldName dimension is in the given list. A null value in the list means a row with null for that dimension.""" fieldName:[String]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose parentType dimension is in the given list. A null value in the list means a row with null for that dimension.""" parentType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceFieldUsageMetrics{estimatedExecutionCount:Long!executionCount:Long!referencingOperationCount:Long!}input ServiceFieldUsageOrderBySpec{column:ServiceFieldUsageColumn!direction:Ordering!}type ServiceFieldUsageRecord{"""Dimensions of ServiceFieldUsage that can be grouped by.""" groupBy:ServiceFieldUsageDimensions!"""Metrics of ServiceFieldUsage that can be aggregated over.""" metrics:ServiceFieldUsageMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Provides access to mutation fields for managing Studio graphs and subgraphs.""" type ServiceMutation{"""Checks a proposed subgraph schema change against a published subgraph. +If the proposal composes successfully, perform a usage check for the resulting supergraph schema.""" checkPartialSchema("""Deprecated and ignored.""" frontend:String gitContext:GitContextInput """The name of the graph variant to run the check against.""" graphVariant:String!historicParameters:HistoricQueryParameters """Name of the implementing service to validate the partial schema against""" implementingServiceName:String!"""If this check is triggered for an sdl fetched using introspection, this is the endpoint where that schema was being served.""" introspectionEndpoint:String isSandboxCheck:Boolean!=false """The partial schema to validate against an implementing service""" partialSchema:PartialSchemaInput!"""Whether to use the maximum retention for historical validation. This only takes +effect if historicParameters is null.""" useMaximumRetention:Boolean):CheckPartialSchemaResult!"""Checks a proposed schema against the schema that has been published to +a particular variant, using metrics corresponding to `historicParameters`. +Callers can set `historicParameters` directly or rely on defaults set in the +graph's check configuration (7 days by default). +If they do not set `historicParameters` but set `useMaximumRetention`, +validation will use the maximum retention the graph has access to.""" checkSchema(baseSchemaTag:String="current" """Deprecated and ignored.""" frontend:String gitContext:GitContextInput historicParameters:HistoricQueryParameters """If this check is triggered for an sdl fetched using introspection, this is the endpoint where that schema was being served.""" introspectionEndpoint:String isSandboxCheck:Boolean!=false """Only one of proposedSchema, proposedSchemaDocument, and proposedSchemaHash +may be specified""" proposedSchema:IntrospectionSchemaInput proposedSchemaDocument:String proposedSchemaHash:String useMaximumRetention:Boolean):CheckSchemaResult!"""Make changes to a check workflow.""" checkWorkflow(id:ID!):CheckWorkflowMutation createCompositionStatusSubscription("""ID of Slack channel for registry notification.""" channelID:ID!"""Variant to notify on.""" variant:String!):SchemaPublishSubscription!createPersistedQueryList(description:String linkedVariants:[String!]name:String!):CreatePersistedQueryListResultOrError!createProposal(input:CreateProposalInput!):CreateProposalResult!"""Creates a proposal variant from a source variant and a name, description. Do not call this from any clients, this resolver is exclusively for inter-service proposal -> kotlin registry communication.""" createProposalVariant("""Description for the proposal, used to pre fill a readme""" description:String """Name of the base variant, used to port over all subgraphs or monograph sdl to the new proposal as a base revision.""" sourceVariantName:ID!):ProposalVariantCreationResult!createSchemaPublishSubscription("""ID of Slack channel for registry notification.""" channelID:ID!"""Variant to notify on.""" variant:String!):SchemaPublishSubscription!"""Soft delete a graph. Data associated with the graph is not permanently deleted; Apollo support can undo.""" delete:Void """Delete the service's avatar. Requires Service.roles.canUpdateAvatar to be true.""" deleteAvatar:AvatarDeleteError """Delete an existing channel""" deleteChannel(id:ID!):Boolean!"""Delete an existing query trigger""" deleteQueryTrigger(id:ID!):Boolean!"""Deletes this service's current subscriptions specific to the ID, returns true if it existed""" deleteRegistrySubscription(id:ID!):Boolean!"""Deletes this service's current registry subscription(s) specific to its graph variant, +returns a list of subscription IDs that were deleted.""" deleteRegistrySubscriptions(variant:String!):[ID!]!deleteScheduledSummary(id:ID!):Boolean!"""Delete a variant by name.""" deleteSchemaTag(tag:String!):DeleteSchemaTagResult!"""Given a UTC timestamp, delete all traces associated with this Service, on that corresponding day. If a timestamp to is provided, deletes all days inclusive.""" deleteTraces(from:Timestamp!to:Timestamp):Void disableDatadogForwardingLegacyMetricNames:Service """Hard delete a graph and all data associated with it. Its ID cannot be reused.""" hardDelete:Void id:ID!@deprecated(reason:"Use service.id")"""Ignore an operation in future checks; +changes affecting it will be tracked, +but won't affect the outcome of the check. +Returns true if the operation is newly ignored, +false if it already was.""" ignoreOperationsInChecks(ids:[ID!]!):IgnoreOperationsInChecksResult """Lint a single schema using the graph's linter configuration.""" lintSchema("""The schema to diff rule violations against, if not provided the full set of rule violations will be returned for the proposed sdl.""" baseSdl:String """The schema to lint.""" sdl:String!):LintResult!"""Mark the changeset that affects an operation in a given check instance as safe. +Note that only operations marked as behavior changes are allowed to be marked as safe.""" markChangesForOperationAsSafe("""ID of the schema check.""" checkID:ID!"""ID of the operation to accept changes for.""" operationID:ID!):MarkChangesForOperationAsSafeResult!"""Generates a new graph API key for this graph with the specified permission level.""" newKey(keyName:String role:UserPermission!=GRAPH_ADMIN):GraphApiKey!"""Adds an override to the given users permission for this graph""" overrideUserPermission(permission:UserPermission userID:ID!):Service """Provides access to mutation fields for modifying a Persisted Query List with the provided ID.""" persistedQueryList(id:ID!):PersistedQueryListMutation!"""Promote the schema with the given SHA-256 hash to active for the given variant/tag.""" promoteSchema(graphVariant:String!historicParameters:HistoricQueryParameters overrideComposedSchema:Boolean!=false sha256:SHA256!):PromoteSchemaResponseOrError!"""Publish to a subgraph. If composition is successful, this will update running routers.""" publishSubgraph(activePartialSchema:PartialSchemaInput!gitContext:GitContextInput graphVariant:String!name:String!revision:String!url:String):CompositionAndUpsertResult registerOperationsWithResponse(clientIdentity:RegisteredClientIdentityInput gitContext:GitContextInput """Specifies which variant of a graph these operations belong to. +Formerly known as "tag" +Defaults to "current" +""" graphVariant:String!="current" manifestVersion:Int operations:[RegisteredOperationInput!]!):RegisterOperationsMutationResponse """Removes a subgraph. If composition is successful, this will update running routers.""" removeImplementingServiceAndTriggerComposition("""Do not remove the service, but recompose without it and report any errors.""" dryRun:Boolean!=false graphVariant:String!name:String!):CompositionAndRemoveResult!"""Deletes the existing graph API key with the provided ID, if any.""" removeKey("""API key ID""" id:ID!):Void """Sets a new name for the graph API key with the provided ID, if any. This does not invalidate the key or change its value.""" renameKey(id:ID!newKeyName:String):GraphApiKey reportServerInfo("""Only sent if previously requested i.e. received ReportServerInfoResult with withExecutableSchema = true. An executable schema is a schema document that describes the full GraphQL schema that an external client could execute queries against. This must be a valid GraphQL schema document, as per the GraphQL specification: https://spec.graphql.org/""" executableSchema:String """Information about the edge server, see descriptions for individual fields.""" info:EdgeServerInfo!):ReportServerInfoResult@deprecated(reason:"use Mutation.reportSchema instead")service:Service!setDefaultBuildPipelineTrack(version:String!):String setMinProposalRoles(input:SetProposalRolesInput!):SetProposalRolesResult!"""Store a given schema document. This schema will be attached to the graph but +not be associated with any variant. On success, returns the schema hash.""" storeSchemaDocument(schemaDocument:String!):StoreSchemaResponseOrError!"""Test Slack notification channel""" testSlackChannel(id:ID!notification:SlackNotificationInput!):Void testSubscriptionForChannel(channelID:ID!subscriptionID:ID!):String!transfer(to:String!):Service triggerRepublish(graphVariant:String!):Void undelete:Service """Revert the effects of ignoreOperation. +Returns true if the operation is no longer ignored, +false if it wasn't.""" unignoreOperationsInChecks(ids:[ID!]!):UnignoreOperationsInChecksResult """Unmark changes for an operation as safe.""" unmarkChangesForOperationAsSafe("""ID of the schema check.""" checkID:ID!"""ID of the operation to unmark changes for.""" operationID:ID!):MarkChangesForOperationAsSafeResult!"""Update schema check configuration for a graph.""" updateCheckConfiguration("""Whether to run Linting during schema checks.""" enableLintChecks:Boolean """Clients to ignore during validation.""" excludedClients:[ClientFilterInput!]"""Operation names to ignore during validation.""" excludedOperationNames:[OperationNameFilterInput!]"""Operations to ignore during validation.""" excludedOperations:[ExcludedOperationInput!]"""Default configuration to include operations on the base variant.""" includeBaseVariant:Boolean """Variant overrides for validation.""" includedVariants:[String!]"""Minimum number of requests within the window for a query to be considered.""" operationCountThreshold:Int """Number of requests within the window for a query to be considered, relative to +total request count. Expected values are between 0 and 0.05 (minimum 5% of +total request volume)""" operationCountThresholdPercentage:Float """Only check operations from the last seconds. The default is 7 days (604,800 seconds).""" timeRangeSeconds:Long):CheckConfiguration!updateDatadogMetricsConfig(apiKey:String apiRegion:DatadogApiRegion enabled:Boolean):DatadogMetricsConfig updateDescription(description:String!):Service """Update hiddenFromUninvitedNonAdminAccountMembers""" updateHiddenFromUninvitedNonAdminAccountMembers(hiddenFromUninvitedNonAdminAccountMembers:Boolean!):Service """Update rule violations to ignore for this graph.""" updateIgnoredRuleViolations(changes:LinterIgnoredRuleChangesInput!):[IgnoredRule!]!"""Update the linter configuration for this graph.""" updateLinterConfiguration(changes:GraphLinterConfigurationChangesInput!):GraphLinterConfiguration!updateReadme(readme:String!):Service updateTitle(title:String!):Service """Publish a schema to this variant, either via a document or an introspection query result.""" uploadSchema(errorOnBadRequest:Boolean!=true gitContext:GitContextInput historicParameters:HistoricQueryParameters overrideComposedSchema:Boolean!=false schema:IntrospectionSchemaInput schemaDocument:String tag:String!):UploadSchemaMutationResponse upsertChannel(id:ID pagerDutyChannel:PagerDutyChannelInput slackChannel:SlackChannelInput webhookChannel:WebhookChannelInput):Channel """Creates a contract schema from a source variant and a set of filter configurations""" upsertContractVariant("""The name of the contract variant, e.g. `public-api`. Once set, this value cannot be changed.""" contractVariantName:String!"""The filter configuration used to build a contract schema. The configuration consists of lists of tags for schema elements to include or exclude in the resulting schema.""" filterConfig:FilterConfigInput!"""Whether a launch and schema publish should be initiated after updating configuration. Defaults to `true`.""" initiateLaunch:Boolean!=true """The graphRef of the variant the contract will be derived from, e.g. `my-graph@production`. Once set, this value cannot be changed.""" sourceVariant:String):ContractVariantUpsertResult!"""Publish to a subgraph. If composition is successful, this will update running routers.""" upsertImplementingServiceAndTriggerComposition(activePartialSchema:PartialSchemaInput!gitContext:GitContextInput graphVariant:String!name:String!revision:String!url:String):CompositionAndUpsertResult """Create/update PagerDuty notification channel""" upsertPagerDutyChannel(channel:PagerDutyChannelInput!id:ID):PagerDutyChannel upsertQueryTrigger(id:ID trigger:QueryTriggerInput!):QueryTrigger """Create or update a subscription for a service.""" upsertRegistrySubscription("""ID of Slack channel for registry notification.""" channelID:ID """ID of registry subscription""" id:ID """Set of options/customization for notification.""" options:SubscriptionOptionsInput """Variant to notify on.""" variant:String):RegistrySubscription!upsertScheduledSummary(channelID:ID enabled:Boolean id:ID """Deprecated, use the 'variant' argument instead""" tag:String timezone:String variant:String):ScheduledSummary """Create/update Slack notification channel""" upsertSlackChannel(channel:SlackChannelInput!id:ID):SlackChannel upsertWebhookChannel(id:ID name:String secretToken:String url:String!):WebhookChannel validateOperations(gitContext:GitContextInput operations:[OperationDocumentInput!]!tag:String="current"):ValidateOperationsResult!"""This mutation will not result in any changes to the implementing service +Run composition with the Implementing Service's partial schema replaced with the one provided +in the mutation's input. Store the composed schema, return the hash of the composed schema, +and any warnings and errors pertaining to composition. +This mutation will not run validation against operations.""" validatePartialSchemaOfImplementingServiceAgainstGraph(graphVariant:String!implementingServiceName:String!partialSchema:PartialSchemaInput!):CompositionValidationResult!@deprecated(reason:"Use GraphVariant.submitSubgraphCheckAsync instead")"""Make changes to a graph variant.""" variant(name:String!):GraphVariantMutation}"""Columns of ServiceOperationCheckStats.""" enum ServiceOperationCheckStatsColumn{CACHED_REQUESTS_COUNT CLIENT_NAME CLIENT_VERSION OPERATION_SUBTYPE OPERATION_TYPE QUERY_ID QUERY_NAME SCHEMA_TAG TIMESTAMP UNCACHED_REQUESTS_COUNT}type ServiceOperationCheckStatsDimensions{clientName:String clientVersion:String operationSubtype:String operationType:String queryId:ID queryName:String schemaTag:String}"""Filter for data in ServiceOperationCheckStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceOperationCheckStatsFilter{and:[ServiceOperationCheckStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String in:ServiceOperationCheckStatsFilterIn not:ServiceOperationCheckStatsFilter """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[ServiceOperationCheckStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceOperationCheckStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceOperationCheckStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceOperationCheckStatsMetrics{cachedRequestsCount:Long!uncachedRequestsCount:Long!}input ServiceOperationCheckStatsOrderBySpec{column:ServiceOperationCheckStatsColumn!direction:Ordering!}type ServiceOperationCheckStatsRecord{"""Dimensions of ServiceOperationCheckStats that can be grouped by.""" groupBy:ServiceOperationCheckStatsDimensions!"""Metrics of ServiceOperationCheckStats that can be aggregated over.""" metrics:ServiceOperationCheckStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceQueryStats.""" enum ServiceQueryStatsColumn{CACHED_HISTOGRAM CACHED_REQUESTS_COUNT CACHE_TTL_HISTOGRAM CLIENT_NAME CLIENT_VERSION FORBIDDEN_OPERATION_COUNT FROM_ENGINEPROXY OPERATION_SUBTYPE OPERATION_TYPE QUERY_ID QUERY_NAME REGISTERED_OPERATION_COUNT REQUESTS_WITH_ERRORS_COUNT SCHEMA_HASH SCHEMA_TAG TIMESTAMP UNCACHED_HISTOGRAM UNCACHED_REQUESTS_COUNT}type ServiceQueryStatsDimensions{clientName:String clientVersion:String fromEngineproxy:String operationSubtype:String operationType:String queryId:ID queryName:String querySignature:String querySignatureLength:Int schemaHash:String schemaTag:String}"""Filter for data in ServiceQueryStats. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceQueryStatsFilter{and:[ServiceQueryStatsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose fromEngineproxy dimension equals the given value if not null. To query for the null value, use {in: {fromEngineproxy: [null]}} instead.""" fromEngineproxy:String in:ServiceQueryStatsFilterIn not:ServiceQueryStatsFilter """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[ServiceQueryStatsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String}"""Filter for data in ServiceQueryStats. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceQueryStatsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose fromEngineproxy dimension is in the given list. A null value in the list means a row with null for that dimension.""" fromEngineproxy:[String]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]}type ServiceQueryStatsMetrics{cacheTtlHistogram:DurationHistogram!cachedHistogram:DurationHistogram!cachedRequestsCount:Long!forbiddenOperationCount:Long!registeredOperationCount:Long!requestsWithErrorsCount:Long!totalLatencyHistogram:DurationHistogram!totalRequestCount:Long!uncachedHistogram:DurationHistogram!uncachedRequestsCount:Long!}input ServiceQueryStatsOrderBySpec{column:ServiceQueryStatsColumn!direction:Ordering!}type ServiceQueryStatsRecord{"""Dimensions of ServiceQueryStats that can be grouped by.""" groupBy:ServiceQueryStatsDimensions!"""Metrics of ServiceQueryStats that can be aggregated over.""" metrics:ServiceQueryStatsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Individual permissions for the current user when interacting with a particular Studio graph.""" type ServiceRoles{"""Whether the currently authenticated user is permitted to perform schema checks (i.e., run `rover (sub)graph check`).""" canCheckSchemas:Boolean!canCreateProposal:Boolean!"""Whether the currently authenticated user is permitted to create new graph variants.""" canCreateVariants:Boolean!"""Whether the currently authenticated user is permitted to delete the graph in question""" canDelete:Boolean!canEditProposal:Boolean!"""Whether the currently authenticated user is permitted to manage user access to the graph in question.""" canManageAccess:Boolean!"""Whether the currently authenticated user is permitted to manage the build configuration (e.g., build pipeline version).""" canManageBuildConfig:Boolean!"""Whether the currently authenticated user is permitted to manage third-party integrations (e.g., Datadog forwarding).""" canManageIntegrations:Boolean!"""Whether the currently authenticated user is permitted to manage graph-level API keys.""" canManageKeys:Boolean!canManagePersistedQueryLists:Boolean!"""Whether the currently authenticated user is permitted to perform basic administration of variants (e.g., make a variant public).""" canManageVariants:Boolean!"""Whether the currently authenticated user is permitted to view details about the build configuration (e.g. build pipeline version).""" canQueryBuildConfig:Boolean!"""Whether the currently authenticated user is permitted to view details of the check configuration for this graph.""" canQueryCheckConfiguration:Boolean!canQueryDeletedImplementingServices:Boolean!"""Whether the currently authenticated user is permitted to view which subgraphs the graph is composed of.""" canQueryImplementingServices:Boolean!canQueryIntegrations:Boolean!canQueryPersistedQueryLists:Boolean!canQueryPrivateInfo:Boolean!canQueryPublicInfo:Boolean!canQueryReadmeAuthor:Boolean!canQueryRoleOverrides:Boolean!"""Whether the currently authenticated user is permitted to download schemas owned by this graph.""" canQuerySchemas:Boolean!canQueryStats:Boolean!canQueryTokens:Boolean!canQueryTraces:Boolean!"""Whether the currently authenticated user is permitted to register operations (i.e. `apollo client:push`) for this graph.""" canRegisterOperations:Boolean!canStoreSchemasWithoutVariant:Boolean!canUndelete:Boolean!canUpdateAvatar:Boolean!canUpdateDescription:Boolean!canUpdateTitle:Boolean!"""Whether the currently authenticated user is permitted to make updates to the check configuration for this graph.""" canWriteCheckConfiguration:Boolean!service:Service!}"""A time window with a specified granularity over a given service.""" type ServiceStatsWindow{billingUsageStats("""Filter to select what rows to return.""" filter:ServiceBillingUsageStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceBillingUsageStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceBillingUsageStatsOrderBySpec!]):[ServiceBillingUsageStatsRecord!]!edgeServerInfos("""Filter to select what rows to return.""" filter:ServiceEdgeServerInfosFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceEdgeServerInfos by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceEdgeServerInfosOrderBySpec!]):[ServiceEdgeServerInfosRecord!]!errorStats("""Filter to select what rows to return.""" filter:ServiceErrorStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceErrorStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceErrorStatsOrderBySpec!]):[ServiceErrorStatsRecord!]!fieldExecutions("""Filter to select what rows to return.""" filter:ServiceFieldExecutionsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceFieldExecutions by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceFieldExecutionsOrderBySpec!]):[ServiceFieldExecutionsRecord!]!fieldLatencies("""Filter to select what rows to return.""" filter:ServiceFieldLatenciesFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceFieldLatencies by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceFieldLatenciesOrderBySpec!]):[ServiceFieldLatenciesRecord!]!fieldStats("""Filter to select what rows to return.""" filter:ServiceFieldLatenciesFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceFieldLatencies by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceFieldLatenciesOrderBySpec!]):[ServiceFieldLatenciesRecord!]!fieldUsage("""Filter to select what rows to return.""" filter:ServiceFieldUsageFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceFieldUsage by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceFieldUsageOrderBySpec!]):[ServiceFieldUsageRecord!]!operationCheckStats("""Filter to select what rows to return.""" filter:ServiceOperationCheckStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceOperationCheckStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceOperationCheckStatsOrderBySpec!]):[ServiceOperationCheckStatsRecord!]!queryStats("""Filter to select what rows to return.""" filter:ServiceQueryStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceQueryStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceQueryStatsOrderBySpec!]):[ServiceQueryStatsRecord!]!"""From field rounded down to the nearest resolution.""" roundedDownFrom:Timestamp!"""To field rounded up to the nearest resolution.""" roundedUpTo:Timestamp!tracePathErrorsRefs("""Filter to select what rows to return.""" filter:ServiceTracePathErrorsRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceTracePathErrorsRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceTracePathErrorsRefsOrderBySpec!]):[ServiceTracePathErrorsRefsRecord!]!traceRefs("""Filter to select what rows to return.""" filter:ServiceTraceRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ServiceTraceRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ServiceTraceRefsOrderBySpec!]):[ServiceTraceRefsRecord!]!}"""Columns of ServiceTracePathErrorsRefs.""" enum ServiceTracePathErrorsRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET ERRORS_COUNT_IN_PATH ERRORS_COUNT_IN_TRACE ERROR_MESSAGE PATH QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG TIMESTAMP TRACE_HTTP_STATUS_CODE TRACE_ID TRACE_SIZE_BYTES TRACE_STARTS_AT}type ServiceTracePathErrorsRefsDimensions{clientName:String clientVersion:String durationBucket:Int errorMessage:String path:String queryId:ID queryName:String schemaHash:String schemaTag:String traceHttpStatusCode:Int traceId:ID traceStartsAt:Timestamp}"""Filter for data in ServiceTracePathErrorsRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceTracePathErrorsRefsFilter{and:[ServiceTracePathErrorsRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int """Selects rows whose errorMessage dimension equals the given value if not null. To query for the null value, use {in: {errorMessage: [null]}} instead.""" errorMessage:String in:ServiceTracePathErrorsRefsFilterIn not:ServiceTracePathErrorsRefsFilter or:[ServiceTracePathErrorsRefsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose traceHttpStatusCode dimension equals the given value if not null. To query for the null value, use {in: {traceHttpStatusCode: [null]}} instead.""" traceHttpStatusCode:Int """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in ServiceTracePathErrorsRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceTracePathErrorsRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose errorMessage dimension is in the given list. A null value in the list means a row with null for that dimension.""" errorMessage:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose traceHttpStatusCode dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceHttpStatusCode:[Int]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type ServiceTracePathErrorsRefsMetrics{errorsCountInPath:Long!errorsCountInTrace:Long!traceSizeBytes:Long!}input ServiceTracePathErrorsRefsOrderBySpec{column:ServiceTracePathErrorsRefsColumn!direction:Ordering!}type ServiceTracePathErrorsRefsRecord{"""Dimensions of ServiceTracePathErrorsRefs that can be grouped by.""" groupBy:ServiceTracePathErrorsRefsDimensions!"""Metrics of ServiceTracePathErrorsRefs that can be aggregated over.""" metrics:ServiceTracePathErrorsRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of ServiceTraceRefs.""" enum ServiceTraceRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET OPERATION_SUBTYPE OPERATION_TYPE QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG TIMESTAMP TRACE_COUNT TRACE_ID}type ServiceTraceRefsDimensions{clientName:String clientVersion:String durationBucket:Int generatedTraceId:String operationSubtype:String operationType:String queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String traceId:ID}"""Filter for data in ServiceTraceRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input ServiceTraceRefsFilter{and:[ServiceTraceRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int in:ServiceTraceRefsFilterIn not:ServiceTraceRefsFilter """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[ServiceTraceRefsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in ServiceTraceRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input ServiceTraceRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type ServiceTraceRefsMetrics{traceCount:Long!}input ServiceTraceRefsOrderBySpec{column:ServiceTraceRefsColumn!direction:Ordering!}type ServiceTraceRefsRecord{"""Dimensions of ServiceTraceRefs that can be grouped by.""" groupBy:ServiceTraceRefsDimensions!"""Metrics of ServiceTraceRefs that can be aggregated over.""" metrics:ServiceTraceRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Represents the possible outcomes of a setNextVersion mutation""" union SetNextVersionResult=InternalServerError|InvalidInputErrors|RouterVersion input SetProposalRolesInput{create:UserPermission edit:UserPermission}union SetProposalRolesResult=PermissionError|Service|ValidationError union SetupIntentResult=NotFoundError|PermissionError|SetupIntentSuccess type SetupIntentSuccess{clientSecret:String!}"""Shard for Cloud Routers + +This represents a specific shard where a Cloud Router can run""" type Shard{id:ID!provider:CloudProvider!region:RegionDescription!routers(first:Int offset:Int):[Router!]!}"""Slack notification channel""" type SlackChannel implements Channel{id:ID!name:String!subscriptions:[ChannelSubscription!]!url:String!}"""Slack notification channel parameters""" input SlackChannelInput{name:String url:String!}type SlackCommunicationChannel implements CommunicationChannel{id:ID!name:String!purpose:String topic:String}type SlackMessageMeta{id:ID!}input SlackNotificationField{key:String!value:String!}"""Slack notification message""" input SlackNotificationInput{color:String fallback:String!fields:[SlackNotificationField!]iconUrl:String text:String timestamp:Timestamp title:String titleLink:String username:String}enum SlackPublishState{errored published recalled}"""A location in a source code file.""" type SourceLocation{"""Column number.""" column:Int!"""Line number.""" line:Int!}union StartUsageBasedPlanResult=Account|NotFoundError|PermissionError|StartUsageBasedPlanSuccess|ValidationError type StartUsageBasedPlanSuccess{customerPlanId:String!}enum State{approved denied errored pending published}"""A time window with a specified granularity.""" type StatsWindow{billingUsageStats("""Filter to select what rows to return.""" filter:BillingUsageStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order BillingUsageStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[BillingUsageStatsOrderBySpec!]):[BillingUsageStatsRecord!]!edgeServerInfos("""Filter to select what rows to return.""" filter:EdgeServerInfosFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order EdgeServerInfos by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[EdgeServerInfosOrderBySpec!]):[EdgeServerInfosRecord!]!errorStats("""Filter to select what rows to return.""" filter:ErrorStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order ErrorStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[ErrorStatsOrderBySpec!]):[ErrorStatsRecord!]!fieldExecutions("""Filter to select what rows to return.""" filter:FieldExecutionsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order FieldExecutions by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[FieldExecutionsOrderBySpec!]):[FieldExecutionsRecord!]!fieldLatencies("""Filter to select what rows to return.""" filter:FieldLatenciesFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order FieldLatencies by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[FieldLatenciesOrderBySpec!]):[FieldLatenciesRecord!]!fieldUsage("""Filter to select what rows to return.""" filter:FieldUsageFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order FieldUsage by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[FieldUsageOrderBySpec!]):[FieldUsageRecord!]!operationCheckStats("""Filter to select what rows to return.""" filter:OperationCheckStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order OperationCheckStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[OperationCheckStatsOrderBySpec!]):[OperationCheckStatsRecord!]!queryStats("""Filter to select what rows to return.""" filter:QueryStatsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order QueryStats by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[QueryStatsOrderBySpec!]):[QueryStatsRecord!]!"""From field rounded down to the nearest resolution.""" roundedDownFrom:Timestamp!"""To field rounded up to the nearest resolution.""" roundedUpTo:Timestamp!tracePathErrorsRefs("""Filter to select what rows to return.""" filter:TracePathErrorsRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order TracePathErrorsRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[TracePathErrorsRefsOrderBySpec!]):[TracePathErrorsRefsRecord!]!traceRefs("""Filter to select what rows to return.""" filter:TraceRefsFilter """The maximum number of entries to return, cannot be more than 15000.""" limit:Int=10000 """A list of OrderBySpecs to order TraceRefs by. The earlier an OrderBySpec appears in the list, the higher priority it has in the final ordering. When empty or null, defaults to sorting by ascending timestamp.""" orderBy:[TraceRefsOrderBySpec!]):[TraceRefsRecord!]!}"""Possible status of a Cloud Router version""" enum Status{DEPRECATED NEXT STABLE}type StoreSchemaError{code:StoreSchemaErrorCode!message:String!}enum StoreSchemaErrorCode{SCHEMA_IS_NOT_PARSABLE SCHEMA_IS_NOT_VALID}type StoreSchemaResponse{sha256:SHA256!}union StoreSchemaResponseOrError=StoreSchemaError|StoreSchemaResponse type StoredApprovedChange{argNode:NamedIntrospectionArgNoDescription childNode:NamedIntrospectionValueNoDescription code:ChangeCode!parentNode:NamedIntrospectionTypeNoDescription}scalar StringOrInt type StringToString{key:String!value:String!}input StringToStringInput{key:String!value:String!}"""A subgraph in a federated Studio supergraph.""" type Subgraph{"""The subgraph schema document's SHA256 hash, represented as a hexadecimal string.""" hash:String!"""The subgraph's registered name.""" name:String!"""The number of fields in this subgraph""" numberOfFields:Int """The number of types in this subgraph""" numberOfTypes:Int """The subgraph's routing URL, provided to gateways that use managed federation.""" routingURL:String!"""Timestamp of when the subgraph was published.""" updatedAt:Timestamp}"""A change made to a subgraph as part of a launch.""" type SubgraphChange{"""The subgraph's name.""" name:ID!"""The type of change that was made.""" type:SubgraphChangeType!}enum SubgraphChangeType{ADDITION DELETION MODIFICATION}"""Input type to provide when running schema checks asynchronously for a federated supergraph.""" input SubgraphCheckAsyncInput{"""Configuration options for the check execution.""" config:HistoricQueryParametersInput!"""The GitHub context to associate with the check.""" gitContext:GitContextInput!"""The graph ref of the Studio graph and variant to run checks against (such as `my-graph@current`).""" graphRef:ID """The URL of the GraphQL endpoint that Apollo Sandbox introspected to obtain the proposed schema. Required if `isSandbox` is `true`.""" introspectionEndpoint:String """If `true`, the check was initiated by Apollo Sandbox.""" isSandbox:Boolean!"""The proposed subgraph schema to perform checks with.""" proposedSchema:GraphQLDocument!"""The name of the subgraph to check schema changes for.""" subgraphName:String!}type SubgraphConfig{id:ID!name:String!schemaHash:String!sdl:String!url:String!}input SubgraphHashInput{"""SHA256 of the subgraph schema sdl.""" hash:String!name:String!}input SubgraphInput{"""We are either going to pass in a document or a schema reference""" document:String name:String!routingURL:String!"""Reference to a schema in studio. +If this is a mutable ref i.e. graphRef then it will link (tbd) +If it is a stable ref i.e. hash then it""" schemaRef:String}type SubgraphKeyMap{keys:[String!]!subgraphName:String!}type SubscriptionOptions{"""Enables notifications for schema updates""" schemaUpdates:Boolean!}input SubscriptionOptionsInput{"""Enables notifications for schema updates""" schemaUpdates:Boolean!}enum SubscriptionState{ACTIVE CANCELED EXPIRED FUTURE PAST_DUE PAUSED PENDING UNKNOWN}enum SubscriptionStateV2{ACTIVE CANCELED EXPIRED FUTURE PAST_DUE PAUSED PENDING UNKNOWN}union SyncBillingAccountResult=PermissionError|SyncBillingAccountSuccess type SyncBillingAccountSuccess{message:String!}type TemporaryURL{url:String!}enum ThemeName{DARK LIGHT}enum TicketPriority{P0 P1 P2 P3}enum TicketStatus{CLOSED HOLD NEW OPEN PENDING SOLVED}"""ISO 8601, extended format with nanoseconds, Zulu (or "[+-]seconds" as a string or number relative to now)""" scalar Timestamp type TimezoneOffset{minutesOffsetFromUTC:Int!zoneID:String!}"""Counts of changes.""" type TotalChangeSummaryCounts{"""Number of changes that are additions. This includes adding types, adding fields to object, input +object, and interface types, adding values to enums, adding members to interfaces and unions, and +adding arguments.""" additions:Int!"""Number of changes that are new usages of the @deprecated directive.""" deprecations:Int!"""Number of changes that are edits. This includes types changing kind, fields and arguments +changing type, arguments changing default value, and any description changes. This also includes +edits to @deprecated reason strings.""" edits:Int!"""Number of changes that are removals. This includes removing types, removing fields from object, +input object, and interface types, removing values from enums, removing members from interfaces +and unions, and removing arguments. This also includes removing @deprecated usages.""" removals:Int!}type Trace{agentVersion:String cacheMaxAgeMs:Float cacheScope:CacheScope clientName:String clientVersion:String durationMs:Float!endTime:Timestamp!http:TraceHTTP id:ID!"""True if the report containing the trace was submitted as potentially incomplete, which can happen if the Router's +trace buffer fills up while constructing the trace. If this is true, the trace might be missing some nodes.""" isIncomplete:Boolean!operationName:String protobuf:Protobuf!root:TraceNode!signature:String!startTime:Timestamp!unexecutedOperationBody:String unexecutedOperationName:String variablesJSON:[StringToString!]!}type TraceError{json:String!locations:[TraceSourceLocation!]!message:String!timestamp:Timestamp}type TraceHTTP{method:HTTPMethod!requestHeaders:[StringToString!]!responseHeaders:[StringToString!]!statusCode:Int!}type TraceNode{cacheMaxAgeMs:Float cacheScope:CacheScope """The total number of children, including the ones that were truncated.""" childCount:Int!"""The immediate children of the node. There is a maximum number of children we will return so +this might be truncated, but childCount will always have the total count.""" children:[TraceNode!]!"""Whether the children of this node have been truncated because the number of children is over the max.""" childrenAreTruncated:Boolean!"""The IDs of the immediate children of the node. There is a maximum number of children we will +return so this might be truncated, but childCount will always have the total count.""" childrenIds:[ID!]!"""All children, and the children of those children, and so on. Children that have been truncated +are not included.""" descendants:[TraceNode!]!"""All IDs of children, and the IDs of the children of those children, and so on. Children that +have been truncated are not included.""" descendantsIds:[ID!]!"""The end time of the node. If this is a fetch node (meaning isFetch is true), this will be the +time that the gateway/router received the response from the subgraph server in the +gateway/routers clock time.""" endTime:Timestamp!errors:[TraceError!]!id:ID!"""Whether the fetch node in question is a descendent of a Deferred node in the trace's query plan. The nodes +in query plans can be complicated and nested, so this is a fairly simple representation of the structure.""" isDeferredFetch:Boolean!"""Whether the node in question represents a fetch node within a query plan. If so, this will contain +children with timestamps that are calculated by the router/gateway rather than subgraph and the +fields subgraphStartTime and subgraphEndTime will be non-null.""" isFetch:Boolean!key:StringOrInt originalFieldName:String parent:ID!parentId:ID path:[String!]!"""The start time of the node. If this is a fetch node (meaning isFetch is true), this will be the +time that the gateway/router sent the request to the subgraph server in the gateway/router's clock +time.""" startTime:Timestamp!"""Only present when the node in question is a fetch node, this will indicate the timestamp at which +the subgraph server returned a response to the gateway/router. This timestamp is based on the +subgraph server's clock, so if there is a clock skew between the subgraph and the gateway/router, +this and endTime will not be in sync. If this is a fetch node but we don't receive subgraph traces +(e.g. if the subgraph doesn't support federated traces), this value will be null.""" subgraphEndTime:Timestamp """Only present when the node in question is a fetch node, this will indicate the timestamp at which +the fetch was received by the subgraph server. This timestamp is based on the subgraph server's +clock, so if there is a clock skew between the subgraph and the gateway/router, this and startTime +will not be in sync. If this is a fetch node but we don't receive subgraph traces (e.g. if the +subgraph doesn't support federated traces), this value will be null.""" subgraphStartTime:Timestamp type:String}"""Columns of TracePathErrorsRefs.""" enum TracePathErrorsRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET ERRORS_COUNT_IN_PATH ERRORS_COUNT_IN_TRACE ERROR_MESSAGE PATH QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP TRACE_HTTP_STATUS_CODE TRACE_ID TRACE_SIZE_BYTES TRACE_STARTS_AT}type TracePathErrorsRefsDimensions{clientName:String clientVersion:String durationBucket:Int errorMessage:String """If metrics were collected from a federated service, this field will be prefixed with `service:.`""" path:String queryId:ID queryName:String schemaHash:String schemaTag:String serviceId:ID traceHttpStatusCode:Int traceId:ID traceStartsAt:Timestamp}"""Filter for data in TracePathErrorsRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input TracePathErrorsRefsFilter{and:[TracePathErrorsRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int """Selects rows whose errorMessage dimension equals the given value if not null. To query for the null value, use {in: {errorMessage: [null]}} instead.""" errorMessage:String in:TracePathErrorsRefsFilterIn not:TracePathErrorsRefsFilter or:[TracePathErrorsRefsFilter!]"""Selects rows whose path dimension equals the given value if not null. To query for the null value, use {in: {path: [null]}} instead.""" path:String """Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose traceHttpStatusCode dimension equals the given value if not null. To query for the null value, use {in: {traceHttpStatusCode: [null]}} instead.""" traceHttpStatusCode:Int """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in TracePathErrorsRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input TracePathErrorsRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose errorMessage dimension is in the given list. A null value in the list means a row with null for that dimension.""" errorMessage:[String]"""Selects rows whose path dimension is in the given list. A null value in the list means a row with null for that dimension.""" path:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose traceHttpStatusCode dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceHttpStatusCode:[Int]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type TracePathErrorsRefsMetrics{errorsCountInPath:Long!errorsCountInTrace:Long!traceSizeBytes:Long!}input TracePathErrorsRefsOrderBySpec{column:TracePathErrorsRefsColumn!direction:Ordering!}type TracePathErrorsRefsRecord{"""Dimensions of TracePathErrorsRefs that can be grouped by.""" groupBy:TracePathErrorsRefsDimensions!"""Metrics of TracePathErrorsRefs that can be aggregated over.""" metrics:TracePathErrorsRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}"""Columns of TraceRefs.""" enum TraceRefsColumn{CLIENT_NAME CLIENT_VERSION DURATION_BUCKET OPERATION_SUBTYPE OPERATION_TYPE QUERY_ID QUERY_NAME SCHEMA_HASH SCHEMA_TAG SERVICE_ID TIMESTAMP TRACE_COUNT TRACE_ID}type TraceRefsDimensions{clientName:String clientVersion:String durationBucket:Int generatedTraceId:String operationSubtype:String operationType:String queryId:ID queryName:String querySignature:String schemaHash:String schemaTag:String serviceId:ID traceId:ID}"""Filter for data in TraceRefs. Fields with dimension names represent equality checks. All fields are implicitly ANDed together.""" input TraceRefsFilter{and:[TraceRefsFilter!]"""Selects rows whose clientName dimension equals the given value if not null. To query for the null value, use {in: {clientName: [null]}} instead.""" clientName:String """Selects rows whose clientVersion dimension equals the given value if not null. To query for the null value, use {in: {clientVersion: [null]}} instead.""" clientVersion:String """Selects rows whose durationBucket dimension equals the given value if not null. To query for the null value, use {in: {durationBucket: [null]}} instead.""" durationBucket:Int in:TraceRefsFilterIn not:TraceRefsFilter """Selects rows whose operationSubtype dimension equals the given value if not null. To query for the null value, use {in: {operationSubtype: [null]}} instead.""" operationSubtype:String """Selects rows whose operationType dimension equals the given value if not null. To query for the null value, use {in: {operationType: [null]}} instead.""" operationType:String or:[TraceRefsFilter!]"""Selects rows whose queryId dimension equals the given value if not null. To query for the null value, use {in: {queryId: [null]}} instead.""" queryId:ID """Selects rows whose queryName dimension equals the given value if not null. To query for the null value, use {in: {queryName: [null]}} instead.""" queryName:String """Selects rows whose schemaHash dimension equals the given value if not null. To query for the null value, use {in: {schemaHash: [null]}} instead.""" schemaHash:String """Selects rows whose schemaTag dimension equals the given value if not null. To query for the null value, use {in: {schemaTag: [null]}} instead.""" schemaTag:String """Selects rows whose serviceId dimension equals the given value if not null. To query for the null value, use {in: {serviceId: [null]}} instead.""" serviceId:ID """Selects rows whose traceId dimension equals the given value if not null. To query for the null value, use {in: {traceId: [null]}} instead.""" traceId:ID}"""Filter for data in TraceRefs. Fields match if the corresponding dimension's value is in the given list. All fields are implicitly ANDed together.""" input TraceRefsFilterIn{"""Selects rows whose clientName dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientName:[String]"""Selects rows whose clientVersion dimension is in the given list. A null value in the list means a row with null for that dimension.""" clientVersion:[String]"""Selects rows whose durationBucket dimension is in the given list. A null value in the list means a row with null for that dimension.""" durationBucket:[Int]"""Selects rows whose operationSubtype dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationSubtype:[String]"""Selects rows whose operationType dimension is in the given list. A null value in the list means a row with null for that dimension.""" operationType:[String]"""Selects rows whose queryId dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryId:[ID]"""Selects rows whose queryName dimension is in the given list. A null value in the list means a row with null for that dimension.""" queryName:[String]"""Selects rows whose schemaHash dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaHash:[String]"""Selects rows whose schemaTag dimension is in the given list. A null value in the list means a row with null for that dimension.""" schemaTag:[String]"""Selects rows whose serviceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" serviceId:[ID]"""Selects rows whose traceId dimension is in the given list. A null value in the list means a row with null for that dimension.""" traceId:[ID]}type TraceRefsMetrics{traceCount:Long!}input TraceRefsOrderBySpec{column:TraceRefsColumn!direction:Ordering!}type TraceRefsRecord{"""Dimensions of TraceRefs that can be grouped by.""" groupBy:TraceRefsDimensions!"""Metrics of TraceRefs that can be aggregated over.""" metrics:TraceRefsMetrics!"""Starting segment timestamp.""" timestamp:Timestamp!}type TraceSourceLocation{column:Int!line:Int!}"""Counts of changes at the type level, including interfaces, unions, enums, scalars, input objects, etc.""" type TypeChangeSummaryCounts{"""Number of changes that are additions of types.""" additions:Int!"""Number of changes that are edits. This includes types changing kind and any type description +changes, but also includes adding/removing values from enums, adding/removing members from +interfaces and unions, and any enum value deprecation and description changes.""" edits:Int!"""Number of changes that are removals of types.""" removals:Int!}"""the TypeFilterConfig is used to isolate +types, and subsequent fields, through +various configuration settings. + +It defaults to filter towards user defined +types only""" input TypeFilterConfig{"""include abstract types (interfaces and unions)""" includeAbstractTypes:Boolean=true """include built in scalars (i.e. Boolean, Int, etc)""" includeBuiltInTypes:Boolean=false """include reserved introspection types (i.e. __Type)""" includeIntrospectionTypes:Boolean=false}type URI{"""A GCS URI""" gcs:String!}type UnignoreOperationsInChecksResult{graph:Service!}type UnlinkPersistedQueryListResult{graphVariant:GraphVariant!unlinkedPersistedQueryList:PersistedQueryList!}union UnlinkPersistedQueryListResultOrError=PermissionError|UnlinkPersistedQueryListResult|VariantAlreadyUnlinkedError union UpdateOperationCollectionEntryResult=OperationCollectionEntry|PermissionError|ValidationError union UpdateOperationCollectionResult=OperationCollection|PermissionError|ValidationError union UpdatePaymentMethodResult=Account|NotFoundError|PermissionError|UpdatePaymentMethodSuccess type UpdatePaymentMethodSuccess{paymentMethodId:String!}type UpdatePersistedQueryListMetadataResult{persistedQueryList:PersistedQueryList!}union UpdatePersistedQueryListMetadataResultOrError=PermissionError|UpdatePersistedQueryListMetadataResult union UpdateProposalResult=Proposal|ValidationError """Input for updating a Cloud Router""" input UpdateRouterInput{"""Number of GCUs allocated for the Cloud Router + +This is ignored for serverless Cloud Routers""" gcus:Int """Graph composition ID, also known as launch ID""" graphCompositionId:String """Unique identifier for ordering orders""" orderingId:String!"""Configuration for the Cloud Router""" routerConfig:String """URL for the Cloud Router""" routerUrl:String """Router version for the Cloud Router""" routerVersion:String}"""Represents the possible outcomes of an updateRouter mutation""" union UpdateRouterResult=InternalServerError|InvalidInputErrors|UpdateRouterSuccess """Success branch of an updateRouter mutation. +id of the order can be polled via Query.cloud().order(id: ID!) to check-in +on the progress of the underlying operation""" type UpdateRouterSuccess{order:Order!}"""Result of an updateVersion mutation""" union UpdateRouterVersionResult=CloudInvalidInputError|InternalServerError|RouterVersion """Describes the result of publishing a schema to a graph variant.""" type UploadSchemaMutationResponse{"""A machine-readable response code that indicates the type of result (e.g., `UPLOAD_SUCCESS` or `NO_CHANGES`)""" code:String!"""A Human-readable message describing the type of result.""" message:String!"""If the publish operation succeeded, this contains its details. Otherwise, this is null.""" publication:SchemaTag """Whether the schema publish operation succeeded (`true`) or encountered errors (`false`).""" success:Boolean!"""If successful, the corresponding publication.""" tag:SchemaTag}union UpsertRouterResult=GraphVariant|RouterUpsertFailure """A registered Apollo Studio user.""" type User implements Identity{acceptedPrivacyPolicyAt:Timestamp """Returns a list of all active user API keys for the user.""" apiKeys(includeCookies:Boolean=false):[UserApiKey!]!"""Returns a representation of this user as an `Actor` type. Useful when determining which actor (usually a `User` or `Graph`) performed a particular action in Studio.""" asActor:Actor!"""Get an URL to which an avatar image can be uploaded. Client uploads by sending a PUT request +with the image data to MediaUploadInfo.url. Client SHOULD set the "Content-Type" header to the +browser-inferred MIME type, and SHOULD set the "x-apollo-content-filename" header to the +filename, if such information is available. Client MUST set the "x-apollo-csrf-token" header to +MediaUploadInfo.csrfToken.""" avatarUpload:AvatarUploadResult """Get an image URL for the user's avatar. Note that CORS is not enabled for these URLs. The size +argument is used for bandwidth reduction, and should be the size of the image as displayed in the +application. Apollo's media server will downscale larger images to at least the requested size, +but this will not happen for third-party media servers.""" avatarUrl(size:Int!=40):String betaFeaturesOn:Boolean!canUpdateAvatar:Boolean!canUpdateEmail:Boolean!canUpdateFullName:Boolean!createdAt:Timestamp!email:String emailModifiedAt:Timestamp emailVerified:Boolean!featureIntros:FeatureIntros fullName:String!"""The user's GitHub username, if they log in via GitHub. May be null even for GitHub users in some edge cases.""" githubUsername:String """The user's unique ID.""" id:ID!"""This role is reserved exclusively for internal Apollo employees, and it controls what access they may have to other +organizations. Only admins are allowed to see this field.""" internalAdminRole:InternalMdgAdminRole """Whether or not this user is and internal Apollo employee""" isInternalUser:Boolean!"""Last time any API token from this user was used against AGM services""" lastAuthenticatedAt:Timestamp logoutAfterIdleMs:Int """A list of the user's memberships in Apollo Studio organizations.""" memberships:[UserMembership!]!"""The user's first and last name.""" name:String!odysseyAttempt(id:ID!):OdysseyAttempt odysseyAttempts:[OdysseyAttempt!]!odysseyCertification(certificationId:ID!):OdysseyCertification odysseyCertifications:[OdysseyCertification!]!odysseyCourse(courseId:ID!):OdysseyCourse odysseyCourses:[OdysseyCourse!]!odysseyHasEarlyAccess:Boolean!odysseyHasRequestedEarlyAccess:Boolean!odysseyTasks(in:[ID!]):[OdysseyTask!]!sandboxOperationCollections:[OperationCollection!]!synchronized:Boolean!"""List of Zendesk tickets this user has submitted""" tickets:[ZendeskTicket!]type:UserType!}"""Represents a user API key, which has permissions identical to +its associated Apollo user.""" type UserApiKey implements ApiKey{"""The API key's ID.""" id:ID!"""The API key's name, for distinguishing it from other keys.""" keyName:String """The value of the API key. **This is a secret credential!**""" token:String!}"""A single user's membership in a single Apollo Studio organization.""" type UserMembership{"""The organization that the user belongs to.""" account:Account!"""The timestamp when the user was added to the organization.""" createdAt:Timestamp!"""The user's permission level within the organization.""" permission:UserPermission!"""The user that belongs to the organization.""" user:User!}type UserMutation{acceptPrivacyPolicy:Void """Change the user's password""" changePassword(newPassword:String!previousPassword:String!):Void completeOdysseyAttempt(id:ID!pass:Boolean!responses:[OdysseyResponseCorrectnessInput!]!):OdysseyAttempt createOdysseyAttempt(testId:String!):OdysseyAttempt createOdysseyCertification(certificationId:String!source:String):OdysseyCertification createOdysseyCourses(courses:[OdysseyCourseInput!]!):[OdysseyCourse!]createOdysseyTasks(tasks:[OdysseyTaskInput!]!):[OdysseyTask!]"""Delete the user's avatar. Requires User.canUpdateAvatar to be true.""" deleteAvatar:AvatarDeleteError deleteOdysseyAttempt(id:ID!):OdysseyAttempt deleteOdysseyCertification(id:ID!):OdysseyCertification deleteOdysseyCourse(courseId:String!):OdysseyCourse deleteOdysseyTasks(taskIds:[String!]!):[OdysseyTask]!"""Hard deletes the associated user. Throws an error otherwise with reason included.""" hardDelete:Void """Creates a new user API key for this user.""" newKey(keyName:String!):UserApiKey!"""If this user has no active user API keys, this creates one for the user. + +If this user has at least one active user API key, this returns one of those keys at random and does _not_ create a new key.""" provisionKey(keyName:String!="add-a-name"):ApiKeyProvision """Refresh information about the user from its upstream service (eg list of organizations from GitHub)""" refresh:User """Deletes the user API key with the provided ID, if any.""" removeKey("""API key ID""" id:ID!):Void """Sets a new name for the user API key with the provided ID, if any. This does not invalidate the key or change its value.""" renameKey(id:ID!newKeyName:String):UserApiKey resendVerificationEmail:Void setOdysseyCourse(course:OdysseyCourseInput!):OdysseyCourse setOdysseyResponse(response:OdysseyResponseInput!):OdysseyResponse setOdysseyTask(task:OdysseyTaskInput!):OdysseyTask """Submit a zendesk ticket for this user""" submitZendeskTicket(collaborators:[String!]email:String!ticket:ZendeskTicketInput!):ZendeskTicket """Update information about a user; all arguments are optional""" update(email:String fullName:String referrer:String trackingGoogleClientId:String trackingMarketoClientId:String userSegment:UserSegment utmCampaign:String utmMedium:String utmSource:String):User """Updates this users' preference concerning opting into beta features.""" updateBetaFeaturesOn(betaFeaturesOn:Boolean!):User """Update the status of a feature for this. For example, if you want to hide an introductory popup.""" updateFeatureIntros(newFeatureIntros:FeatureIntrosInput):User updateOdysseyAttempt(completedAt:Timestamp id:ID!pass:Boolean):OdysseyAttempt """Update user to have the given internal mdg admin role. +It is necessary to be an MDG_INTERNAL_SUPER_ADMIN to perform update. +Additionally, upserting a null value explicitly revokes this user's +admin status.""" updateRole(newRole:InternalMdgAdminRole):User user:User!verifyEmail(token:String!):User}enum UserPermission{BILLING_MANAGER CONSUMER CONTRIBUTOR DOCUMENTER GRAPH_ADMIN LEGACY_GRAPH_KEY OBSERVER ORG_ADMIN PERSISTED_QUERY_PUBLISHER}enum UserSegment{JOIN_MY_TEAM LOCAL_DEVELOPMENT NOT_SPECIFIED ODYSSEY PRODUCTION_GRAPHS SANDBOX SANDBOX_OPERATION_COLLECTIONS SANDBOX_PREFLIGHT_SCRIPTS TRY_TEAM}type UserSettings{appNavCollapsed:Boolean!autoManageVariables:Boolean!id:String!mockingResponses:Boolean!preflightScriptEnabled:Boolean!responseHints:ResponseHints!tableMode:Boolean!themeName:ThemeName!}"""Explorer user settings input""" input UserSettingsInput{appNavCollapsed:Boolean autoManageVariables:Boolean mockingResponses:Boolean preflightScriptEnabled:Boolean responseHints:ResponseHints tableMode:Boolean themeName:ThemeName}enum UserType{APOLLO GITHUB SSO}type ValidateOperationsResult{validationResults:[ValidationResult!]!}"""An error that occurs when an operation contains invalid user input.""" type ValidationError implements Error{"""The error's details.""" message:String!}enum ValidationErrorCode{DEPRECATED_FIELD INVALID_OPERATION NON_PARSEABLE_DOCUMENT}enum ValidationErrorType{FAILURE INVALID WARNING}"""Represents a single validation error, with information relating to the error +and its respective operation""" type ValidationResult{"""The validation result's error code""" code:ValidationErrorCode!"""Description of the validation error""" description:String!"""The operation related to this validation result""" operation:OperationDocument!"""The type of validation error thrown - warning, failure, or invalid.""" type:ValidationErrorType!}type VariantAlreadyLinkedError implements Error{message:String!}type VariantAlreadyUnlinkedError implements Error{message:String!}"""Variant-level configuration of checks.""" type VariantCheckConfiguration{"""Time when the check configuration was created.""" createdAt:Timestamp!"""Downstream checks configuration for which downstream variants should affect this variant's check +status.""" downstreamVariantsConfig:VariantCheckConfigurationDownstreamVariants!"""Operation checks configuration for which clients to ignore.""" excludedClientsConfig:VariantCheckConfigurationExcludedClients!"""Operation checks configuration for which operation to ignore.""" excludedOperationsConfig:VariantCheckConfigurationExcludedOperations!"""Graph that this check configuration belongs to""" graphID:String!"""Graph variant that this check configuration belongs to""" graphVariant:String!"""ID of the check configuration""" id:ID!"""Operation checks configuration for which variants' metrics data to include.""" includedVariantsConfig:VariantCheckConfigurationIncludedVariants!"""Whether operations checks are enabled.""" operationsChecksEnabled:Boolean!"""Operation checks configuration for time range and associated thresholds.""" timeRangeConfig:VariantCheckConfigurationTimeRange!"""Time when the check configuration was updated.""" updatedAt:Timestamp!"""Identity of the last actor to update the check configuration, if available.""" updatedBy:Identity}type VariantCheckConfigurationDownstreamVariants{"""During downstream checks, this variant's check workflow will wait for all downstream check +workflows for variants to complete, and if any of them fail, then +this variant's check workflow will fail.""" blockingDownstreamVariants:[String!]!}type VariantCheckConfigurationExcludedClients{"""When true, indicates that graph-level configuration is appended to the variant-level +configuration. The default at variant creation is true.""" appendGraphSettings:Boolean!"""During operation checks, ignore clients matching any of the filters. The +default at variant creation is the empty list.""" excludedClients:[ClientFilter!]!}type VariantCheckConfigurationExcludedOperations{"""When true, indicates that graph-level configuration is appended to the variant-level +configuration. The default at variant creation is true.""" appendGraphSettings:Boolean!"""During operation checks, ignore operations matching any of the filters. +The default at variant creation is the empty list.""" excludedOperationNames:[OperationNameFilter!]!"""During operation checks, ignore operations matching any of the filters. The +default at variant creation is the empty list.""" excludedOperations:[OperationInfoFilter!]!}type VariantCheckConfigurationIncludedVariants{"""During operation checks, fetch operations from the metrics data for variants. +Non-null if useGraphSettings is false and is otherwise null.""" includedVariants:[String!]"""When true, indicates that graph-level configuration is used for this variant setting. The default +at variant creation is true.""" useGraphSettings:Boolean!}type VariantCheckConfigurationTimeRange{"""During operation checks, ignore operations that executed less than +times in the time range. Non-null if useGraphSettings is false and is otherwise null.""" operationCountThreshold:Int """Duration operation checks, ignore operations that constituted less than +% of the operations in the time range. Expected values are +between 0% and 5%. Non-null if useGraphSettings is false and is otherwise null.""" operationCountThresholdPercentage:Float """During operation checks, fetch operations from the last seconds. Non-null if +useGraphSettings is false and is otherwise null.""" timeRangeSeconds:Long """When true, indicates that graph-level configuration is used for this variant setting. The default +at variant creation is true.""" useGraphSettings:Boolean!}input VariantCreationConfig{buildConfigInput:BuildConfigInput!endpointSlug:String variantName:String!}"""Always null""" scalar Void """Webhook notification channel""" type WebhookChannel implements Channel{id:ID!name:String!secretToken:String subscriptions:[ChannelSubscription!]!url:String!}"""PagerDuty notification channel parameters""" input WebhookChannelInput{name:String secretToken:String url:String!}type ZendeskTicket{createdAt:Timestamp!description:String!graph:Service id:Int!organization:Account priority:TicketPriority!status:TicketStatus subject:String!user:User}"""Zendesk ticket input""" input ZendeskTicketInput{description:String!graphId:String graphType:GraphType organizationId:String priority:TicketPriority!subject:String!} No auto update branch exists Received ExitFailure 1 when running Raw command: /nix/store/3nqhcyc7vid1npgcd0m7arg5sn325nhz-nix-2.12.0/bin/nix-build --option sandbox true --arg config "{ allowBroken = true; allowUnfree = true; allowAliases = false; }" --arg overlays "[ ]" -A rover nix build failed. 3 | use super::runner::config_who_am_i_query;  |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `config_who_am_i_query` in `operations::config::who_am_i::runner` error[E0433]: failed to resolve: use of undeclared crate or module `config_who_am_i_query`  --> crates/rover-client/src/operations/config/who_am_i/runner.rs:53:13  | 53 |  config_who_am_i_query::ConfigWhoAmIQueryMeOn::Graph(s) => Some(s.title),  |  ^^^^^^^^^^^^^^^^^^^^^ use of undeclared crate or module `config_who_am_i_query` error[E0277]: the trait bound `ConfigWhoAmIQuery: graphql_client::GraphQLQuery` is not satisfied  --> crates/rover-client/src/operations/config/who_am_i/runner.rs:32:32  | 32 |  let response_data = client.post::(input.into())?;  |  ^^^^ the trait `graphql_client::GraphQLQuery` is not implemented for `ConfigWhoAmIQuery`  |  = help: the following other types implement trait `graphql_client::GraphQLQuery`:  ContractDescribeQuery  ContractPublishMutation  GraphCheckMutation  GraphCheckWorkflowQuery  GraphDeleteMutation  GraphFetchQuery  GraphPublishMutation  IsFederatedGraph  and 12 others Some errors have detailed explanations: E0277, E0432, E0433. For more information about an error, try `rustc --explain E0277`. error: could not compile `rover-client` due to 4 previous errors warning: build failed, waiting for other jobs to finish...