Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at litex 1980 lines 77 kB view raw
1schema { 2 query: Query 3 mutation: Mutation 4} 5 6"""An organization in Apollo Studio. Can have multiple members and graphs.""" 7type Organization { 8 auditLogExports: [AuditLogExport!] 9 """Graphs belonging to this organization.""" 10 graphs(includeDeleted: Boolean): [Graph!]! 11 """Globally unique identifier, which isn't guaranteed stable (can be changed by administrators).""" 12 id: ID! 13 """Name of the organization, which can change over time and isn't unique.""" 14 name: String! 15 """Graphs belonging to this organization.""" 16 services(includeDeleted: Boolean): [Graph!]! @deprecated(reason: "Use graphs field instead") 17} 18 19type OrganizationMutation { 20 """Trigger a request for an audit export""" 21 requestAuditExport(actors: [ActorInput!], from: Timestamp!, graphIds: [String!], to: Timestamp!): Organization 22} 23 24"""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`.""" 25type Actor { 26 actorId: ID! 27 type: ActorType! 28} 29 30"""Input type to provide when specifying an `Actor` in operation arguments. See also the `Actor` object type.""" 31input ActorInput { 32 actorId: ID! 33 type: ActorType! 34} 35 36enum ActorType { 37 ANONYMOUS_USER 38 BACKFILL 39 CRON 40 GRAPH 41 INTERNAL_IDENTITY 42 SYNCHRONIZATION 43 SYSTEM 44 USER 45} 46 47union AddOperationCollectionEntriesResult = AddOperationCollectionEntriesSuccess | PermissionError | ValidationError 48 49type AddOperationCollectionEntriesSuccess { 50 operationCollectionEntries: [OperationCollectionEntry!]! 51} 52 53union AddOperationCollectionEntryResult = OperationCollectionEntry | PermissionError | ValidationError 54 55input AddOperationInput { 56 """The operation's fields.""" 57 document: OperationCollectionEntryStateInput! 58 """The operation's name.""" 59 name: String! 60} 61 62type AffectedQuery { 63 id: ID! 64 """First 128 characters of query signature for display""" 65 signature: String 66 """Name to display to the user for the operation""" 67 displayName: String 68 """Name provided for the operation, which can be empty string if it is an anonymous operation""" 69 name: String 70 """Determines if this query validates against the proposed schema""" 71 isValid: Boolean 72 """List of changes affecting this query. Returns null if queried from SchemaDiff.changes.affectedQueries.changes""" 73 changes: [ChangeOnOperation!] 74 """Whether this operation was ignored and its severity was downgraded for that reason""" 75 markedAsIgnored: Boolean 76 """Whether the changes were marked as safe and its severity was downgraded for that reason""" 77 markedAsSafe: Boolean 78 """If the operation would be approved if the check ran again. Returns null if queried from SchemaDiff.changes.affectedQueries.alreadyApproved""" 79 alreadyApproved: Boolean 80 """If the operation would be ignored if the check ran again""" 81 alreadyIgnored: Boolean 82} 83 84""" 85Represents an API key that's used to authenticate a 86particular Apollo user or graph. 87""" 88interface ApiKey { 89 """The API key's ID.""" 90 id: ID! 91 """The API key's name, for distinguishing it from other keys.""" 92 keyName: String 93 """The value of the API key. **This is a secret credential!**""" 94 token: String! 95} 96 97type ApiKeyProvision { 98 apiKey: ApiKey! 99 created: Boolean! 100} 101 102type AuditLogExport { 103 """The list of actors to filter the audit export""" 104 actors: [Identity!] 105 """The time when the audit export was completed""" 106 completedAt: Timestamp 107 """The time when the audit export was reqeusted""" 108 createdAt: Timestamp! 109 """List of URLs to download the audits for the requested range""" 110 downloadUrls: [String!] 111 """The starting point of audits to include in export""" 112 from: Timestamp! 113 """The list of graphs to filter the audit export""" 114 graphs: [Graph!] 115 """The id for the audit export""" 116 id: ID! 117 """The user that initiated the audit export""" 118 requester: User 119 """The status of the audit export""" 120 status: AuditStatus! 121 """The end point of audits to include in export""" 122 to: Timestamp! 123} 124 125enum AuditStatus { 126 CANCELLED 127 COMPLETED 128 EXPIRED 129 FAILED 130 IN_PROGRESS 131 QUEUED 132} 133 134"""The building of a Studio variant (including supergraph composition and any contract filtering) as part of a launch.""" 135type Build { 136 """The inputs provided to the build, including subgraph and contract details.""" 137 input: BuildInput! 138 """The result of the build. This value is null until the build completes.""" 139 result: BuildResult 140} 141 142"""A single error that occurred during the failed execution of a build.""" 143type BuildError { 144 code: String 145 locations: [SourceLocation!]! 146 message: String! 147} 148 149"""Contains the details of an executed build that failed.""" 150type BuildFailure { 151 """A list of all errors that occurred during the failed build.""" 152 errorMessages: [BuildError!]! 153} 154 155union BuildInput = CompositionBuildInput | FilterBuildInput 156 157union BuildResult = BuildFailure | BuildSuccess 158 159"""Contains the details of an executed build that succeeded.""" 160type BuildSuccess { 161 """Contains the supergraph and API schemas created by composition.""" 162 coreSchema: CoreSchema! 163} 164 165"""A single change that was made to a definition in a schema.""" 166type Change { 167 """The severity of the change (e.g., `FAILURE` or `NOTICE`)""" 168 severity: ChangeSeverity! 169 """Indicates the type of change that was made, and to what (e.g., 'TYPE_REMOVED').""" 170 code: String! 171 """Indication of the category of the change (e.g. addition, removal, edit).""" 172 category: ChangeCategory! 173 """A human-readable description of the change.""" 174 description: String! 175 affectedQueries: [AffectedQuery!] 176 """Top level node affected by the change.""" 177 parentNode: NamedIntrospectionType 178 """ 179 Node related to the top level node that was changed, such as a field in an object, 180 a value in an enum or the object of an interface. 181 """ 182 childNode: NamedIntrospectionValue 183 """Target arg of change made.""" 184 argNode: NamedIntrospectionArg 185} 186 187""" 188Defines a set of categories that a schema change 189can be grouped by. 190""" 191enum ChangeCategory { 192 ADDITION 193 EDIT 194 REMOVAL 195 DEPRECATION 196} 197 198""" 199These schema change codes represent all of the possible changes that can 200occur during the schema diff algorithm. 201""" 202enum ChangeCode { 203 """Field was removed from the type.""" 204 FIELD_REMOVED 205 """Type (object or scalar) was removed from the schema.""" 206 TYPE_REMOVED 207 """Argument to a field was removed.""" 208 ARG_REMOVED 209 """Type is no longer included in the union.""" 210 TYPE_REMOVED_FROM_UNION 211 """Field was removed from the input object.""" 212 FIELD_REMOVED_FROM_INPUT_OBJECT 213 """Value was removed from the enum.""" 214 VALUE_REMOVED_FROM_ENUM 215 """Type no longer implements the interface.""" 216 TYPE_REMOVED_FROM_INTERFACE 217 """Non-nullable argument was added to the field.""" 218 REQUIRED_ARG_ADDED 219 """Non-nullable field was added to the input object. (Deprecated.)""" 220 NON_NULLABLE_FIELD_ADDED_TO_INPUT_OBJECT 221 """Required field was added to the input object.""" 222 REQUIRED_FIELD_ADDED_TO_INPUT_OBJECT 223 """Return type for the field was changed.""" 224 FIELD_CHANGED_TYPE 225 """Type of the field in the input object was changed.""" 226 FIELD_ON_INPUT_OBJECT_CHANGED_TYPE 227 """ 228 Type was changed from one kind to another. 229 Ex: scalar to object or enum to union. 230 """ 231 TYPE_CHANGED_KIND 232 """Type of the argument was changed.""" 233 ARG_CHANGED_TYPE 234 """Argument was changed from nullable to non-nullable.""" 235 ARG_CHANGED_TYPE_OPTIONAL_TO_REQUIRED 236 """A new value was added to the enum.""" 237 VALUE_ADDED_TO_ENUM 238 """A new value was added to the enum.""" 239 TYPE_ADDED_TO_UNION 240 """Type now implements the interface.""" 241 TYPE_ADDED_TO_INTERFACE 242 """Default value added or changed for the argument.""" 243 ARG_DEFAULT_VALUE_CHANGE 244 """Nullable argument was added to the field.""" 245 OPTIONAL_ARG_ADDED 246 """Nullable field was added to the input type. (Deprecated.)""" 247 NULLABLE_FIELD_ADDED_TO_INPUT_OBJECT 248 """Optional field was added to the input type.""" 249 OPTIONAL_FIELD_ADDED_TO_INPUT_OBJECT 250 """Field was added to the type.""" 251 FIELD_ADDED 252 """Type was added to the schema.""" 253 TYPE_ADDED 254 """Enum was deprecated.""" 255 ENUM_DEPRECATED 256 """Enum deprecation was removed.""" 257 ENUM_DEPRECATION_REMOVED 258 """Reason for enum deprecation changed.""" 259 ENUM_DEPRECATED_REASON_CHANGE 260 """Field was deprecated.""" 261 FIELD_DEPRECATED 262 """Field deprecation removed.""" 263 FIELD_DEPRECATION_REMOVED 264 """Reason for field deprecation changed.""" 265 FIELD_DEPRECATED_REASON_CHANGE 266 """Description was added, removed, or updated for type.""" 267 TYPE_DESCRIPTION_CHANGE 268 """Description was added, removed, or updated for field.""" 269 FIELD_DESCRIPTION_CHANGE 270 """Description was added, removed, or updated for enum value.""" 271 ENUM_VALUE_DESCRIPTION_CHANGE 272 """Description was added, removed, or updated for argument.""" 273 ARG_DESCRIPTION_CHANGE 274 """Directive was removed.""" 275 DIRECTIVE_REMOVED 276 """Argument to the directive was removed.""" 277 DIRECTIVE_ARG_REMOVED 278 """Location of the directive was removed.""" 279 DIRECTIVE_LOCATION_REMOVED 280 """Repeatable flag was removed for directive.""" 281 DIRECTIVE_REPEATABLE_REMOVED 282 """Non-nullable argument added to directive.""" 283 REQUIRED_DIRECTIVE_ARG_ADDED 284} 285 286""" 287Represents the tuple of static information 288about a particular kind of schema change. 289""" 290type ChangeDefinition { 291 code: ChangeCode! 292 defaultSeverity: ChangeSeverity! 293 category: ChangeCategory! 294} 295 296"""An addition made to a Studio variant's changelog after a launch.""" 297type ChangelogLaunchResult { 298 createdAt: Timestamp! 299 schemaTagID: ID! 300} 301 302"""Info about a change in the context of an operation it affects""" 303type ChangeOnOperation { 304 """The semantic info about this change, i.e. info about the change that doesn't depend on the operation""" 305 semanticChange: SemanticChange! 306 """Human-readable explanation of the impact of this change on the operation""" 307 impact: String 308} 309 310enum ChangeSeverity { 311 FAILURE 312 NOTICE 313} 314 315""" 316Summary of the changes for a schema diff, computed by placing the changes into categories and then 317counting the size of each category. This categorization can be done in different ways, and 318accordingly there are multiple fields here for each type of categorization. 319 320Note that if an object or interface field is added/removed, there won't be any addition/removal 321changes generated for its arguments or @deprecated usages. If an enum type is added/removed, there 322will be addition/removal changes generated for its values, but not for those values' @deprecated 323usages. Description changes won't be generated for a schema element if that element (or an 324ancestor) was added/removed. 325""" 326type ChangeSummary { 327 """ 328 Counts for changes to non-field aspects of objects, input objects, and interfaces, 329 and all aspects of enums, unions, and scalars. 330 """ 331 type: TypeChangeSummaryCounts! 332 """Counts for changes to fields of objects, input objects, and interfaces.""" 333 field: FieldChangeSummaryCounts! 334 """Counts for all changes.""" 335 total: TotalChangeSummaryCounts! 336} 337 338enum ChangeType { 339 FAILURE 340 NOTICE 341} 342 343"""Filter options available when listing checks.""" 344input CheckFilterInput { 345 authors: [String!] 346 branches: [String!] 347 subgraphs: [String!] 348 status: CheckFilterInputStatusOption 349 variants: [String!] 350} 351 352"""Options for filtering CheckWorkflows by status""" 353enum CheckFilterInputStatusOption { 354 FAILED 355 PENDING 356 PASSED 357} 358 359"""The result of performing a subgraph check, including all steps.""" 360type CheckPartialSchemaResult { 361 """Result of compostion run as part of the overall subgraph check.""" 362 compositionValidationResult: CompositionCheckResult! 363 """Overall result of the check. This will be null if composition validation was unsuccessful.""" 364 checkSchemaResult: CheckSchemaResult 365 """Whether any modifications were detected in the composed core schema.""" 366 coreSchemaModified: Boolean! 367} 368 369"""The possible results of a request to initiate schema checks (either a success object or one of multiple `Error` objects).""" 370union CheckRequestResult = CheckRequestSuccess | InvalidInputError | PermissionError | PlanError 371 372"""Represents a successfully initiated execution of schema checks. This does not indicate the _result_ of the checks, only that they were initiated.""" 373type CheckRequestSuccess { 374 """The URL of the Apollo Studio page for this check.""" 375 targetURL: String! 376 """The unique ID for this execution of schema checks.""" 377 workflowID: ID! 378} 379 380"""Input type to provide when running schema checks asynchronously for a non-federated graph.""" 381input CheckSchemaAsyncInput { 382 """Configuration options for the check execution.""" 383 config: HistoricQueryParametersInput! 384 """The GitHub context to associate with the check.""" 385 gitContext: GitContextInput! 386 graphRef: ID @deprecated(reason: "This field is not required to be sent anymore") 387 """The URL of the GraphQL endpoint that Apollo Sandbox introspected to obtain the proposed schema. Required if `isSandbox` is `true`.""" 388 introspectionEndpoint: String 389 """If `true`, the check was initiated by Apollo Sandbox.""" 390 isSandbox: Boolean! 391 proposedSchemaDocument: String 392} 393 394"""The result of running schema checks on a graph variant.""" 395type CheckSchemaResult { 396 """The schema diff and affected operations generated by the schema check.""" 397 diffToPrevious: SchemaDiff! 398 """The URL to view the schema diff in Studio.""" 399 targetUrl: String 400} 401 402type CheckWorkflow { 403 """ 404 The variant provided as a base to check against. Only the differences from the 405 base schema will be tested in operations checks. 406 """ 407 baseVariant: GraphVariant 408 """The timestamp when the check workflow completed.""" 409 completedAt: Timestamp 410 id: ID! 411 """The name of the implementing service that was responsible for triggering the validation.""" 412 implementingServiceName: String 413 """The timestamp when the check workflow started.""" 414 startedAt: Timestamp 415 """Overall status of the workflow, based on the underlying task statuses.""" 416 status: CheckWorkflowStatus! 417 """The set of check tasks associated with this workflow, e.g. composition, operations, etc.""" 418 tasks: [CheckWorkflowTask!]! 419 """Contextual parameters supplied by the runtime environment where the check was run.""" 420 gitContext: GitContext 421 createdAt: Timestamp! 422} 423 424enum CheckWorkflowStatus { 425 FAILED 426 PASSED 427 PENDING 428} 429 430interface CheckWorkflowTask { 431 completedAt: Timestamp 432 createdAt: Timestamp! 433 id: ID! 434 """ 435 The status of this task. All tasks start with the PENDING status while initializing. If any 436 prerequisite task fails, then the task status becomes BLOCKED. Otherwise, if all prerequisite 437 tasks pass, then this task runs (still having the PENDING status). Once the task completes, the 438 task status will become either PASSED or FAILED. 439 """ 440 status: CheckWorkflowTaskStatus! 441 """A studio UI url to view the details of this check workflow task""" 442 targetURL: String 443 """The workflow that this task belongs to.""" 444 workflow: CheckWorkflow! 445} 446 447enum CheckWorkflowTaskStatus { 448 BLOCKED 449 FAILED 450 PASSED 451 PENDING 452} 453 454"""Filter options to exclude by client reference ID, client name, and client version.""" 455input ClientInfoFilter { 456 name: String! 457 """Ignored""" 458 referenceID: ID 459 version: String 460} 461 462"""The result of supergraph composition that Studio performed in response to an attempted deletion of a subgraph.""" 463type SubgraphRemovalResult { 464 """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.""" 465 errors: [SchemaCompositionError]! 466 """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.""" 467 updatedGateway: Boolean! 468} 469 470"""The result of supergraph composition that Studio performed in response to an attempted publish of a subgraph.""" 471type SubgraphPublicationResult { 472 """The generated composition config, or null if any errors occurred.""" 473 compositionConfig: CompositionConfig 474 """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.""" 475 errors: [SchemaCompositionError]! 476 """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.""" 477 updatedGateway: Boolean! 478 """Whether a new subgraph was created as part of this publish.""" 479 wasCreated: Boolean! 480 """The URL of the Studio page for this update's associated launch, if available.""" 481 launchUrl: String 482 """Human-readable text describing the launch result of the subgraph publish.""" 483 launchCliCopy: String 484} 485 486type CompositionBuildInput { 487 subgraphs: [Subgraph!]! 488 version: String 489} 490 491type CompositionCheckTask implements CheckWorkflowTask { 492 completedAt: Timestamp 493 """ 494 Whether the build's output supergraph core schema differs from that of the active publish for 495 the workflow's variant at the time this field executed (NOT at the time the check workflow 496 started). 497 """ 498 coreSchemaModified: Boolean! 499 createdAt: Timestamp! 500 id: ID! 501 status: CheckWorkflowTaskStatus! 502 targetURL: String 503 workflow: CheckWorkflow! 504 """ 505 An old version of buildResult that returns a very old GraphQL type that generally should be 506 avoided. This field will soon be deprecated. 507 """ 508 result: CompositionResult 509} 510 511"""Composition configuration exposed to the gateway.""" 512type CompositionConfig { 513 """The resulting API schema's SHA256 hash, represented as a hexadecimal string.""" 514 schemaHash: String! 515} 516 517"""The result of supergraph composition that Studio performed.""" 518type CompositionPublishResult implements CompositionResult { 519 """The unique ID for this instance of composition.""" 520 graphCompositionID: ID! 521 """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.""" 522 errors: [SchemaCompositionError!]! 523 """The supergraph SDL generated by composition.""" 524 supergraphSdl: GraphQLDocument 525} 526 527"""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.""" 528interface CompositionResult { 529 """The unique ID for this instance of composition.""" 530 graphCompositionID: ID! 531 """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.""" 532 errors: [SchemaCompositionError!]! 533 """Supergraph SDL generated by composition.""" 534 supergraphSdl: GraphQLDocument 535} 536 537"""The result of composition validation run by Apollo Studio during a subgraph check.""" 538type CompositionCheckResult implements CompositionResult { 539 """The unique ID for this instance of composition.""" 540 graphCompositionID: ID! 541 """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.""" 542 errors: [SchemaCompositionError!]! 543 """The supergraph schema document generated by composition.""" 544 supergraphSdl: GraphQLDocument 545} 546 547type ContractVariantUpsertErrors { 548 """A list of all errors that occurred when attempting to create or update a contract variant.""" 549 errorMessages: [String!]! 550} 551 552union ContractVariantUpsertResult = ContractVariantUpsertErrors | ContractVariantUpsertSuccess 553 554type ContractVariantUpsertSuccess { 555 """The updated contract variant""" 556 contractVariant: GraphVariant! 557 """Human-readable text describing the launch result of the contract update.""" 558 launchCliCopy: String 559 """The URL of the Studio page for this update's associated launch, if available.""" 560 launchUrl: String 561} 562 563"""Contains the supergraph and API schemas generated by composition.""" 564type CoreSchema { 565 """The composed API schema document.""" 566 apiDocument: GraphQLDocument! 567 """The composed supergraph schema document.""" 568 coreDocument: GraphQLDocument! 569 """The supergraph schema document's SHA256 hash, represented as a hexadecimal string.""" 570 coreHash: String! 571} 572 573union CreateOperationCollectionResult = OperationCollection | PermissionError | ValidationError 574 575""" 576Implement the DateTime<Utc> scalar 577 578The input/output is a string in RFC3339 format. 579""" 580scalar DateTime @specifiedBy(url: "https://datatracker.ietf.org/doc/html/rfc3339") 581 582union DeleteOperationCollectionResult = PermissionError 583 584"""The result of attempting to delete a graph variant.""" 585type GraphVariantDeletionResult { 586 """Whether the variant was deleted or not.""" 587 deleted: Boolean! 588} 589 590"""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).""" 591type DownstreamCheckResult { 592 """Whether the downstream check workflow blocks the upstream check workflow from completing.""" 593 blocking: Boolean! 594 """The ID of the graph that the downstream variant belongs to.""" 595 downstreamGraphID: String! 596 """The name of the downstream variant.""" 597 downstreamVariantName: String! 598 """ 599 The downstream checks workflow that this result corresponds to. This value is null 600 if the workflow hasn't been initialized yet, or if the downstream variant was deleted. 601 """ 602 downstreamWorkflow: CheckWorkflow 603 """ 604 Whether the downstream check workflow is causing the upstream check workflow to fail. This occurs 605 when the downstream check workflow is both blocking and failing. This may be null while the 606 downstream check workflow is pending. 607 """ 608 failsUpstreamWorkflow: Boolean 609 """The downstream checks task that this result corresponds to.""" 610 workflowTask: DownstreamCheckTask! 611} 612 613type DownstreamCheckTask implements CheckWorkflowTask { 614 completedAt: Timestamp 615 createdAt: Timestamp! 616 id: ID! 617 """ 618 A list of results for all downstream checks triggered as part of the source variant's checks workflow. 619 This value is null if the task hasn't been initialized yet, or if the build task fails (the build task is a 620 prerequisite to this task). This value is _not_ null _while_ the task is running. The returned list is empty 621 if the source variant has no downstream variants. 622 """ 623 results: [DownstreamCheckResult!] 624 status: CheckWorkflowTaskStatus! 625 targetURL: String 626 workflow: CheckWorkflow! 627} 628 629interface Error { 630 message: String! 631} 632 633"""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.""" 634type GraphVariantSubgraph { 635 """The subgraph's name.""" 636 name: String! 637 """The URL of the subgraph's GraphQL endpoint.""" 638 url: String 639 """The current user-provided version/edition of the subgraph. Typically a Git SHA or docker image ID.""" 640 revision: String! 641 """The ID of the graph this subgraph belongs to.""" 642 graphID: String! 643 """The name of the graph variant this subgraph belongs to.""" 644 graphVariant: String! 645 """The subgraph's current active schema, used in supergraph composition for the the associated variant.""" 646 activePartialSchema: SubgraphSchema! 647 """The timestamp when the subgraph was created.""" 648 createdAt: Timestamp! 649 """The timestamp when the subgraph was most recently updated.""" 650 updatedAt: Timestamp! 651} 652 653"""Container for a list of subgraphs composing a supergraph.""" 654type GraphVariantSubgraphs { 655 """The list of underlying subgraphs.""" 656 services: [GraphVariantSubgraph!]! 657} 658 659"""Counts of changes at the field level, including objects, interfaces, and input fields.""" 660type FieldChangeSummaryCounts { 661 """Number of changes that are additions of fields to object, interface, and input types.""" 662 additions: Int! 663 """Number of changes that are removals of fields from object, interface, and input types.""" 664 removals: Int! 665 """ 666 Number of changes that are field edits. This includes fields changing type and any field 667 deprecation and description changes, but also includes any argument changes and any input object 668 field changes. 669 """ 670 edits: Int! 671} 672 673"""Inputs provided to the build for a contract variant, which filters types and fields from a source variant's schema.""" 674type FilterBuildInput { 675 """Schema filtering rules for the build, such as tags to include or exclude from the source variant schema.""" 676 filterConfig: FilterConfig! 677 """The source variant schema document's SHA256 hash, represented as a hexadecimal string.""" 678 schemaHash: String! 679} 680 681type FilterCheckTask implements CheckWorkflowTask { 682 completedAt: Timestamp 683 createdAt: Timestamp! 684 id: ID! 685 status: CheckWorkflowTaskStatus! 686 targetURL: String 687 workflow: CheckWorkflow! 688} 689 690"""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.""" 691type FilterConfig { 692 """Tags of schema elements to exclude from the contract schema.""" 693 exclude: [String!]! 694 """Tags of schema elements to include in the contract schema.""" 695 include: [String!]! 696} 697 698input FilterConfigInput { 699 """A list of tags for schema elements to exclude from the resulting contract schema.""" 700 exclude: [String!]! 701 """ 702 Whether to hide unreachable objects, interfaces, unions, inputs, enums and scalars from 703 the resulting contract schema. Defaults to `false`. 704 """ 705 hideUnreachableTypes: Boolean! = false 706 """A list of tags for schema elements to include in the resulting contract schema.""" 707 include: [String!]! 708} 709 710type GitContext { 711 commit: ID 712} 713 714"""Input type to provide when specifying the Git context for a run of schema checks.""" 715input GitContextInput { 716 """The Git repository branch used in the check.""" 717 branch: String 718 """The ID of the Git commit used in the check.""" 719 commit: ID 720 """The username of the user who created the Git commit used in the check.""" 721 committer: String 722 """The commit message of the Git commit used in the check.""" 723 message: String 724 """The Git repository's remote URL.""" 725 remoteUrl: String 726} 727 728""" 729Represents a graph API key, which has permissions scoped to a 730user role for a single Apollo graph. 731""" 732type GraphApiKey implements ApiKey { 733 """The timestamp when the API key was created.""" 734 createdAt: Timestamp! 735 """Details of the user or graph that created the API key.""" 736 createdBy: Identity 737 """The API key's ID.""" 738 id: ID! 739 """The API key's name, for distinguishing it from other keys.""" 740 keyName: String 741 """The permission level assigned to the API key upon creation.""" 742 role: UserPermission! 743 """The value of the API key. **This is a secret credential!**""" 744 token: String! 745} 746 747"""A union of all containers that can comprise the components of a Studio graph""" 748union GraphImplementors = GraphVariantSubgraphs 749 750"""A GraphQL document, such as the definition of an operation or schema.""" 751scalar GraphQLDocument 752 753"""A graph variant""" 754type GraphVariant { 755 """The variant's global identifier in the form `graphID@variant`.""" 756 id: ID! 757 router: Router 758 """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.""" 759 contractFilterConfig: FilterConfig 760 """ 761 A human-readable description of the filter configuration of this contract variant, or null if this isn't a contract 762 variant. 763 """ 764 contractFilterConfigDescription: String 765 """The graph that this variant belongs to.""" 766 graph: Graph! 767 """Latest approved launch for the variant, and what is served through Uplink.""" 768 latestApprovedLaunch: Launch 769 """Latest launch for the variant, whether successful or not.""" 770 latestLaunch: Launch 771 """The variant's name (e.g., `staging`).""" 772 name: String! 773 """Which permissions the current user has for interacting with this variant""" 774 permissions: GraphVariantPermissions! 775 readme: Readme! 776 """The variant this variant is derived from. This property currently only exists on contract variants.""" 777 sourceVariant: GraphVariant 778 """A list of the saved [operation collections](https://www.apollographql.com/docs/studio/explorer/operation-collections/) associated with this variant.""" 779 operationCollections: [OperationCollection!]! 780 """The URL of the variant's GraphQL endpoint for query and mutation operations. For subscription operations, use `subscriptionUrl`.""" 781 url: String 782 """The URL of the variant's GraphQL endpoint for subscription operations.""" 783 subscriptionUrl: String 784 """The details of the variant's most recent publication.""" 785 latestPublication: SchemaPublication 786 """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.""" 787 subgraphs(includeDeleted: Boolean! = false): [GraphVariantSubgraph!] 788 """Returns the details of the subgraph with the provided `name`, or null if this variant doesn't include a subgraph with that name.""" 789 subgraph(name: ID!): GraphVariantSubgraph 790} 791 792"""Result of looking up a variant by ref""" 793union GraphVariantLookup = GraphVariant | InvalidRefFormat 794 795"""Modifies a variant of a graph, also called a schema tag in parts of our product.""" 796type GraphVariantMutation { 797 """ 798 _Asynchronously_ kicks off operation checks for a proposed non-federated 799 schema change against its associated graph. 800 801 Returns a `CheckRequestSuccess` object with a workflow ID that you can use 802 to check status, or an error object if the checks workflow failed to start. 803 """ 804 submitCheckSchemaAsync(input: CheckSchemaAsyncInput!): CheckRequestResult! 805 """ 806 _Asynchronously_ kicks off composition and operation checks for a proposed subgraph schema change against its associated supergraph. 807 808 Returns a `CheckRequestSuccess` object with a workflow ID that you can use 809 to check status, or an error object if the checks workflow failed to start. 810 """ 811 submitSubgraphCheckAsync(input: SubgraphCheckAsyncInput!): CheckRequestResult! 812 """Updates the [README](https://www.apollographql.com/docs/studio/org/graphs/#the-readme-page) of this variant.""" 813 updateVariantReadme( 814 """The full new text of the README, as a Markdown-formatted string.""" 815 readme: String! 816 ): GraphVariant 817 """Delete the variant.""" 818 delete: GraphVariantDeletionResult! 819} 820 821"""Individual permissions for the current user when interacting with a particular Studio graph variant.""" 822type GraphVariantPermissions { 823 """Whether the currently authenticated user is permitted to manage/update this variant's build configuration (e.g., build pipeline version).""" 824 canManageBuildConfig: Boolean! 825 """Whether the currently authenticated user is permitted to manage/update cloud routers""" 826 canManageCloudRouter: Boolean! 827 """Whether the currently authenticated user is permitted to update variant-level settings for the Apollo Studio Explorer.""" 828 canManageExplorerSettings: Boolean! 829 """Whether the currently authenticated user is permitted to publish schemas to this variant.""" 830 canPushSchemas: Boolean! 831 """Whether the currently authenticated user is permitted to view this variant's build configuration details (e.g., build pipeline version).""" 832 canQueryBuildConfig: Boolean! 833 """Whether the currently authenticated user is permitted to view details regarding cloud routers""" 834 canQueryCloudRouter: Boolean! 835 """Whether the currently authenticated user is permitted to view cloud router logs""" 836 canQueryCloudRouterLogs: Boolean! 837 """Whether the currently authenticated user is permitted to download schemas associated to this variant.""" 838 canQuerySchemas: Boolean! 839 """Whether the currently authenticated user is permitted to update the README for this variant.""" 840 canUpdateVariantReadme: Boolean! 841 canCreateCollectionInVariant: Boolean! 842 canShareCollectionInVariant: Boolean! 843} 844 845input HistoricQueryParameters { 846 from: String = "-86400" 847 to: String = "0" 848 """Minimum number of requests within the window for a query to be considered.""" 849 queryCountThreshold: Int = 1 850 """ 851 Number of requests within the window for a query to be considered, relative to 852 total request count. Expected values are between 0 and 0.05 (minimum 5% of total 853 request volume) 854 """ 855 queryCountThresholdPercentage: Float = 0 856 """A list of operation IDs to filter out during validation.""" 857 ignoredOperations: [ID!] = null 858 """A list of clients to filter out during validation.""" 859 excludedClients: [ClientInfoFilter!] = null 860 """A list of operation names to filter out during validation.""" 861 excludedOperationNames: [OperationNameFilterInput!] = null 862 """ 863 A list of variants to include in the validation. If no variants are provided 864 then this defaults to the "current" variant along with the base variant. The 865 base variant indicates the schema that generates diff and marks the metrics that 866 are checked for broken queries. We union this base variant with the untagged values('', 867 same as null inside of `in`, and 'current') in this metrics fetch. This strategy 868 supports users who have not tagged their metrics or schema. 869 """ 870 includedVariants: [String!] = null 871} 872 873"""Input type to provide when specifying configuration details for schema checks.""" 874input HistoricQueryParametersInput { 875 """Clients to be excluded from check.""" 876 excludedClients: [ClientInfoFilter!] 877 """Operations to be ignored in this schema check, specified by operation name.""" 878 excludedOperationNames: [OperationNameFilterInput!] 879 """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.""" 880 from: String 881 """Operations to be ignored in this schema check, specified by ID.""" 882 ignoredOperations: [ID!] 883 """Graph variants to be included in check.""" 884 includedVariants: [String!] 885 """Maximum number of queries to be checked against the change.""" 886 queryCountThreshold: Int 887 """Only fail check if this percentage of operations would be negatively impacted.""" 888 queryCountThresholdPercentage: Float 889 """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.""" 890 to: String 891} 892 893"""An identity (such as a `User` or `Graph`) in Apollo Studio. See implementing types for details.""" 894interface Identity { 895 """Returns a representation of the identity as an `Actor` type.""" 896 asActor: Actor! 897 """The identity's identifier, which is unique among objects of its type.""" 898 id: ID! 899 """The identity's human-readable name.""" 900 name: String! 901} 902 903type InternalIdentity implements Identity { 904 accounts: [Organization!]! 905 asActor: Actor! 906 email: String 907 id: ID! 908 name: String! 909} 910 911input IntrospectionDirectiveInput { 912 name: String! 913 description: String 914 locations: [IntrospectionDirectiveLocation!]! 915 args: [IntrospectionInputValueInput!]! 916 isRepeatable: Boolean 917} 918 919"""__DirectiveLocation introspection type""" 920enum IntrospectionDirectiveLocation { 921 """Location adjacent to a query operation.""" 922 QUERY 923 """Location adjacent to a mutation operation.""" 924 MUTATION 925 """Location adjacent to a subscription operation.""" 926 SUBSCRIPTION 927 """Location adjacent to a field.""" 928 FIELD 929 """Location adjacent to a fragment definition.""" 930 FRAGMENT_DEFINITION 931 """Location adjacent to a fragment spread.""" 932 FRAGMENT_SPREAD 933 """Location adjacent to an inline fragment.""" 934 INLINE_FRAGMENT 935 """Location adjacent to a variable definition.""" 936 VARIABLE_DEFINITION 937 """Location adjacent to a schema definition.""" 938 SCHEMA 939 """Location adjacent to a scalar definition.""" 940 SCALAR 941 """Location adjacent to an object type definition.""" 942 OBJECT 943 """Location adjacent to a field definition.""" 944 FIELD_DEFINITION 945 """Location adjacent to an argument definition.""" 946 ARGUMENT_DEFINITION 947 """Location adjacent to an interface definition.""" 948 INTERFACE 949 """Location adjacent to a union definition.""" 950 UNION 951 """Location adjacent to an enum definition.""" 952 ENUM 953 """Location adjacent to an enum value definition.""" 954 ENUM_VALUE 955 """Location adjacent to an input object type definition.""" 956 INPUT_OBJECT 957 """Location adjacent to an input object field definition.""" 958 INPUT_FIELD_DEFINITION 959} 960 961"""__EnumValue introspection type""" 962input IntrospectionEnumValueInput { 963 name: String! 964 description: String 965 isDeprecated: Boolean! 966 deprecationReason: String 967} 968 969"""__Field introspection type""" 970input IntrospectionFieldInput { 971 name: String! 972 description: String 973 args: [IntrospectionInputValueInput!]! 974 type: IntrospectionTypeInput! 975 isDeprecated: Boolean! 976 deprecationReason: String 977} 978 979"""__Value introspection type""" 980input IntrospectionInputValueInput { 981 name: String! 982 description: String 983 type: IntrospectionTypeInput! 984 defaultValue: String 985 isDeprecated: Boolean 986 deprecationReason: String 987} 988 989"""__Schema introspection type""" 990input IntrospectionSchemaInput { 991 types: [IntrospectionTypeInput!] 992 queryType: IntrospectionTypeRefInput! 993 mutationType: IntrospectionTypeRefInput 994 subscriptionType: IntrospectionTypeRefInput 995 directives: [IntrospectionDirectiveInput!]! 996 description: String 997} 998 999"""__Type introspection type""" 1000input IntrospectionTypeInput { 1001 kind: IntrospectionTypeKind! 1002 name: String 1003 description: String 1004 specifiedByUrl: String 1005 fields: [IntrospectionFieldInput!] 1006 interfaces: [IntrospectionTypeInput!] 1007 possibleTypes: [IntrospectionTypeInput!] 1008 enumValues: [IntrospectionEnumValueInput!] 1009 inputFields: [IntrospectionInputValueInput!] 1010 ofType: IntrospectionTypeInput 1011} 1012 1013enum IntrospectionTypeKind { 1014 """Indicates this type is a scalar.""" 1015 SCALAR 1016 """Indicates this type is an object. 'fields' and 'interfaces' are valid fields.""" 1017 OBJECT 1018 """ 1019 Indicates this type is an interface. 'fields' and 'possibleTypes' are valid 1020 fields 1021 """ 1022 INTERFACE 1023 """Indicates this type is a union. 'possibleTypes' is a valid field.""" 1024 UNION 1025 """Indicates this type is an enum. 'enumValues' is a valid field.""" 1026 ENUM 1027 """Indicates this type is an input object. 'inputFields' is a valid field.""" 1028 INPUT_OBJECT 1029 """Indicates this type is a list. 'ofType' is a valid field.""" 1030 LIST 1031 """Indicates this type is a non-null. 'ofType' is a valid field.""" 1032 NON_NULL 1033} 1034 1035"""Shallow __Type introspection type""" 1036input IntrospectionTypeRefInput { 1037 name: String! 1038 kind: String 1039} 1040 1041"""An error caused by providing invalid input for a task, such as schema checks.""" 1042type InvalidInputError { 1043 """The error message.""" 1044 message: String! 1045} 1046 1047"""This object is returned when a request to fetch a Studio graph variant provides an invalid graph ref.""" 1048type InvalidRefFormat implements Error { 1049 message: String! 1050} 1051 1052"""Represents the complete process of making a set of updates to a deployed graph variant.""" 1053type Launch { 1054 """The unique identifier for this launch.""" 1055 id: ID! 1056 """The ID of the launch's associated graph.""" 1057 graphId: String! 1058 """The name of the launch's associated variant.""" 1059 graphVariant: String! 1060 order: OrderOrError! 1061 """The timestamp when the launch was approved.""" 1062 approvedAt: Timestamp 1063 """The associated build for this launch (a build includes schema composition and contract filtering). This value is null until the build is initiated.""" 1064 build: Build 1065 """The inputs provided to this launch's associated build, including subgraph schemas and contract filters.""" 1066 buildInput: BuildInput! 1067 """The timestamp when the launch completed. This value is null until the launch completes.""" 1068 completedAt: Timestamp 1069 """The timestamp when the launch was initiated.""" 1070 createdAt: Timestamp! 1071 """Contract launches that were triggered by this launch.""" 1072 downstreamLaunches: [Launch!]! 1073 """Whether the launch completed.""" 1074 isCompleted: Boolean 1075 """Whether the result of the launch has been published to the associated graph and variant. This is always false for a failed launch.""" 1076 isPublished: Boolean 1077 """The most recent launch sequence step that has started but not necessarily completed.""" 1078 latestSequenceStep: LaunchSequenceStep 1079 """A specific publication of a graph variant pertaining to this launch.""" 1080 publication: SchemaPublication 1081 """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.""" 1082 results: [LaunchResult!]! 1083 """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.""" 1084 routerConfig: String 1085 """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.""" 1086 sequence: [LaunchSequenceStep!]! 1087 """A shortened version of `Launch.id` that includes only the first 8 characters.""" 1088 shortenedID: String! 1089 """The launch's status. If a launch is superseded, its status remains `LAUNCH_INITIATED`. To check for a superseded launch, use `supersededAt`.""" 1090 status: LaunchStatus! 1091 """A list of subgraph changes that are included in this launch.""" 1092 subgraphChanges: [SubgraphChange!] 1093 """The timestamp when this launch was superseded by another launch. If an active launch is superseded, it terminates.""" 1094 supersededAt: Timestamp 1095 """The launch that superseded this launch, if any. If an active launch is superseded, it terminates.""" 1096 supersededBy: Launch 1097 """The source variant launch that caused this launch to be initiated. This value is present only for contract variant launches. Otherwise, it's null.""" 1098 upstreamLaunch: Launch 1099} 1100 1101"""Types of results that can be associated with a `Launch`""" 1102union LaunchResult = ChangelogLaunchResult 1103 1104"""The timing details for the build step of a launch.""" 1105type LaunchSequenceBuildStep { 1106 """The timestamp when the step completed.""" 1107 completedAt: Timestamp 1108 """The timestamp when the step started.""" 1109 startedAt: Timestamp 1110} 1111 1112"""The timing details for the checks step of a launch.""" 1113type LaunchSequenceCheckStep { 1114 """The timestamp when the step completed.""" 1115 completedAt: Timestamp 1116 """The timestamp when the step started.""" 1117 startedAt: Timestamp 1118} 1119 1120"""The timing details for the completion step of a launch.""" 1121type LaunchSequenceCompletedStep { 1122 """The timestamp when the step (and therefore the launch) completed.""" 1123 completedAt: Timestamp 1124} 1125 1126"""The timing details for the initiation step of a launch.""" 1127type LaunchSequenceInitiatedStep { 1128 """The timestamp when the step (and therefore the launch) started.""" 1129 startedAt: Timestamp 1130} 1131 1132"""The timing details for the publish step of a launch.""" 1133type LaunchSequencePublishStep { 1134 """The timestamp when the step completed.""" 1135 completedAt: Timestamp 1136 """The timestamp when the step started.""" 1137 startedAt: Timestamp 1138} 1139 1140"""Represents the various steps that occur in sequence during a single launch.""" 1141union LaunchSequenceStep = LaunchSequenceBuildStep | LaunchSequenceCheckStep | LaunchSequenceCompletedStep | LaunchSequenceInitiatedStep | LaunchSequencePublishStep | LaunchSequenceSupersededStep 1142 1143"""The timing details for the superseded step of a launch. This step occurs only if the launch is superseded by another launch.""" 1144type LaunchSequenceSupersededStep { 1145 """The timestamp when the step completed, thereby ending the execution of this launch in favor of the superseding launch.""" 1146 completedAt: Timestamp 1147} 1148 1149enum LaunchStatus { 1150 LAUNCH_COMPLETED 1151 LAUNCH_FAILED 1152 LAUNCH_INITIATED 1153} 1154 1155enum LogLevel { 1156 WARN 1157 INFO 1158 ERROR 1159 DEBUG 1160} 1161 1162type LogMessage { 1163 """Timestamp in UTC""" 1164 timestamp: DateTime! 1165 """Log message contents""" 1166 message: String! 1167 """Log level""" 1168 level: LogLevel! 1169} 1170 1171type Mutation { 1172 """Provides access to mutation fields for modifying a Studio graph with the provided ID.""" 1173 graph(id: ID!): GraphMutation 1174 """ 1175 Provides access to mutation fields for modifying an Apollo user with the 1176 provided ID. 1177 """ 1178 user(id: ID!): UserMutation 1179 """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.""" 1180 createOperationCollection( 1181 """The collection's description.""" 1182 description: String 1183 """Whether the collection is a [sandbox collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/#sandbox-collections).""" 1184 isSandbox: Boolean! 1185 """Whether the collection is shared across its associated organization.""" 1186 isShared: Boolean! 1187 """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`.""" 1188 minEditRole: UserPermission 1189 """The collection's name.""" 1190 name: String! 1191 """The [graph ref](https://www.apollographql.com/docs/rover/conventions/#graph-refs) of the graph variants to associate the collection with.""" 1192 variantRefs: [ID!] 1193 ): CreateOperationCollectionResult! 1194 operationCollection(id: ID!): OperationCollectionMutation 1195} 1196 1197""" 1198ISO 8601 combined date and time without timezone. 1199 1200# Examples 1201 1202* `2015-07-01T08:59:60.123`, 1203""" 1204scalar NaiveDateTime 1205 1206type NamedIntrospectionArg { 1207 name: String 1208 description: String 1209} 1210 1211""" 1212The shared fields for a named introspection type. Currently this is returned for the 1213top level value affected by a change. In the future, we may update this 1214type to be an interface, which is extended by the more specific types: 1215scalar, object, input object, union, interface, and enum 1216 1217For an in-depth look at where these types come from, see: 1218https://github.com/DefinitelyTyped/DefinitelyTyped/blob/659eb50d3/types/graphql/utilities/introspectionQuery.d.ts#L31-L37 1219""" 1220type NamedIntrospectionType { 1221 kind: IntrospectionTypeKind 1222 name: String 1223 description: String 1224} 1225 1226""" 1227Introspection values that can be children of other types for changes, such 1228as input fields, objects in interfaces, enum values. In the future, this 1229value could become an interface to allow fields specific to the types 1230returned. 1231""" 1232type NamedIntrospectionValue { 1233 name: String 1234 description: String 1235 printedType: String 1236} 1237 1238"""An error that occurs when a requested object is not found.""" 1239type NotFoundError implements Error { 1240 """The error message.""" 1241 message: String! 1242} 1243 1244"""A list of saved GraphQL operations.""" 1245type OperationCollection { 1246 """The timestamp when the collection was created.""" 1247 createdAt: Timestamp! 1248 """The user or other entity that created the collection.""" 1249 createdBy: Identity 1250 """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.""" 1251 description: String 1252 id: ID! 1253 """Whether the current user has marked the collection as a favorite.""" 1254 isFavorite: Boolean! 1255 """Whether the collection is a [sandbox collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/#sandbox-collections).""" 1256 isSandbox: Boolean! 1257 """Whether the collection is shared across its associated organization.""" 1258 isShared: Boolean! 1259 """The timestamp when the collection was most recently updated.""" 1260 lastUpdatedAt: Timestamp! 1261 """The user or other entity that most recently updated the collection.""" 1262 lastUpdatedBy: Identity 1263 """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`.""" 1264 minEditRole: UserPermission 1265 """The collection's name.""" 1266 name: String! 1267 """Returns the operation in the collection with the specified ID, if any.""" 1268 operation(id: ID!): OperationCollectionEntryResult 1269 """A list of the GraphQL operations that belong to the collection.""" 1270 operations: [OperationCollectionEntry!]! 1271 """The permissions that the current user has for the collection.""" 1272 permissions: OperationCollectionPermissions! 1273} 1274 1275"""A saved operation entry within an Operation Collection.""" 1276type OperationCollectionEntry { 1277 """The timestamp when the entry was created.""" 1278 createdAt: Timestamp! 1279 """The user or other entity that created the entry.""" 1280 createdBy: Identity 1281 """Details of the entry's associated operation, such as its `body` and `variables`.""" 1282 currentOperationRevision: OperationCollectionEntryState! 1283 id: ID! 1284 """The timestamp when the entry was most recently updated.""" 1285 lastUpdatedAt: Timestamp! 1286 """The user or other entity that most recently updated the entry.""" 1287 lastUpdatedBy: Identity 1288 """The entry's name.""" 1289 name: String! 1290 """The entry's lexicographical ordering index within its containing collection.""" 1291 orderingIndex: String! 1292} 1293 1294"""Provides fields for modifying an operation in a collection.""" 1295type OperationCollectionEntryMutation { 1296 """Updates the name of an operation.""" 1297 updateName(name: String!): UpdateOperationCollectionEntryResult 1298 """Updates the body, headers, and/or variables of an operation.""" 1299 updateValues(operationInput: OperationCollectionEntryStateInput!): UpdateOperationCollectionEntryResult 1300} 1301 1302union OperationCollectionEntryMutationResult = NotFoundError | OperationCollectionEntryMutation | PermissionError 1303 1304"""Possible return values when querying for an entry in an operation collection (either the entry object or an `Error` object).""" 1305union OperationCollectionEntryResult = NotFoundError | OperationCollectionEntry 1306 1307"""The most recent body, variable and header values of a saved operation entry.""" 1308type OperationCollectionEntryState { 1309 """The raw body of the entry's GraphQL operation.""" 1310 body: String! 1311 """Headers for the entry's GraphQL operation.""" 1312 headers: [OperationHeader!] 1313 """Variables for the entry's GraphQL operation, as a JSON string.""" 1314 variables: String 1315} 1316 1317"""Fields for creating or modifying an operation collection entry.""" 1318input OperationCollectionEntryStateInput { 1319 """The operation's query body.""" 1320 body: String! 1321 """The operation's headers.""" 1322 headers: [OperationHeaderInput!] 1323 """The operation's variables.""" 1324 variables: String 1325} 1326 1327"""Provides fields for modifying an [operation collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/).""" 1328type OperationCollectionMutation { 1329 """Adds an operation to this collection.""" 1330 addOperation(name: String!, operationInput: OperationCollectionEntryStateInput!): AddOperationCollectionEntryResult 1331 """Adds operations to this collection.""" 1332 addOperations(operations: [AddOperationInput!]!): AddOperationCollectionEntriesResult 1333 """Deletes this operation collection. This also deletes all of the collection's associated operations.""" 1334 delete: DeleteOperationCollectionResult 1335 """Deletes an operation from this collection.""" 1336 deleteOperation(id: ID!): RemoveOperationCollectionEntryResult 1337 operation(id: ID!): OperationCollectionEntryMutationResult 1338 """Updates the minimum role a user needs to be able to modify this collection.""" 1339 setMinEditRole(editRole: UserPermission): UpdateOperationCollectionResult 1340 """Updates this collection's description.""" 1341 updateDescription(description: String): UpdateOperationCollectionResult 1342 """Updates whether the current user has marked this collection as a favorite.""" 1343 updateIsFavorite(isFavorite: Boolean!): UpdateOperationCollectionResult 1344 """Updates whether this collection is shared across its associated organization.""" 1345 updateIsShared(isShared: Boolean!): UpdateOperationCollectionResult 1346 """Updates this operation collection's name.""" 1347 updateName(name: String!): UpdateOperationCollectionResult 1348} 1349 1350"""Whether the current user can perform various actions on the associated collection.""" 1351type OperationCollectionPermissions { 1352 """Whether the current user can edit operations in the associated collection.""" 1353 canEditOperations: Boolean! 1354 """Whether the current user can delete or update the associated collection's metadata, such as its name and description.""" 1355 canManage: Boolean! 1356 """Whether the current user can read operations in the associated collection.""" 1357 canReadOperations: Boolean! 1358} 1359 1360union OperationCollectionResult = NotFoundError | OperationCollection | PermissionError | ValidationError 1361 1362"""Saved headers on a saved operation.""" 1363type OperationHeader { 1364 """The header's name.""" 1365 name: String! 1366 """The header's value.""" 1367 value: String! 1368} 1369 1370input OperationHeaderInput { 1371 """The header's name.""" 1372 name: String! 1373 """The header's value.""" 1374 value: String! 1375} 1376 1377"""Options to filter by operation name.""" 1378input OperationNameFilterInput { 1379 """name of the operation set by the user and reported alongside metrics""" 1380 name: String! 1381 version: String 1382} 1383 1384type OperationsCheckResult { 1385 id: ID! 1386 """Indication of the success of the change, either failure, warning, or notice.""" 1387 checkSeverity: ChangeSeverity! 1388 """Number of operations that were validated during schema diff""" 1389 numberOfCheckedOperations: Int! 1390 """List of schema changes with associated affected clients and operations""" 1391 changes: [Change!]! 1392 """Summary/counts for all changes in diff""" 1393 changeSummary: ChangeSummary! 1394 """Operations affected by all changes in diff""" 1395 affectedQueries: [AffectedQuery!] 1396 """Number of affected query operations that are neither marked as SAFE or IGNORED""" 1397 numberOfAffectedOperations: Int! 1398 createdAt: Timestamp! 1399} 1400 1401type OperationsCheckTask implements CheckWorkflowTask { 1402 completedAt: Timestamp 1403 createdAt: Timestamp! 1404 id: ID! 1405 status: CheckWorkflowTaskStatus! 1406 targetURL: String 1407 workflow: CheckWorkflow! 1408 """ 1409 The result of the operations check. This will be null when the task is initializing or running, 1410 or when the build task fails (which is a prerequisite task to this one). 1411 """ 1412 result: OperationsCheckResult 1413} 1414 1415type Order { 1416 id: ID! 1417 orderType: OrderType! 1418 status: OrderStatus! 1419 reason: String 1420 logs(first: Int, offset: Int): [LogMessage!]! 1421 router: Router! 1422} 1423 1424union OrderOrError = Order 1425 1426enum OrderStatus { 1427 PENDING 1428 COMPLETED 1429 ROLLING_BACK 1430 ERRORED 1431 SUPERSEDED 1432} 1433 1434enum OrderType { 1435 CREATE_ROUTER 1436 DESTROY_ROUTER 1437 UPDATE_ROUTER 1438} 1439 1440"""The schema for a single published subgraph in Studio.""" 1441type SubgraphSchema { 1442 """The subgraph schema document as SDL.""" 1443 sdl: String! 1444} 1445 1446""" 1447Input for registering a partial schema to an implementing service. 1448One of the fields must be specified (validated server-side). 1449 1450If a new partialSchemaSDL is passed in, this operation will store it before 1451creating the association. 1452 1453If both the sdl and hash are specified, an error will be thrown if the provided 1454hash doesn't match our hash of the sdl contents. If the sdl field is specified, 1455the hash does not need to be and will be computed server-side. 1456""" 1457input PartialSchemaInput { 1458 """ 1459 Contents of the partial schema in SDL syntax, but may reference types 1460 that aren't defined in this document 1461 """ 1462 sdl: String 1463 """ 1464 Hash of the partial schema to associate; error is thrown if only the hash is 1465 specified and the hash has not been seen before 1466 """ 1467 hash: String 1468} 1469 1470"""An error that occurs when the current user doesn't have sufficient permissions to perform an action.""" 1471type PermissionError implements Error { 1472 """The error message.""" 1473 message: String! 1474} 1475 1476"""An error related to an organization's Apollo Studio plan.""" 1477type PlanError { 1478 """The error message.""" 1479 message: String! 1480} 1481 1482type Query { 1483 """Returns the root URL of the Apollo Studio frontend.""" 1484 frontendUrlRoot: String! 1485 """Returns details of the graph with the provided ID.""" 1486 graph(id: ID!): Graph 1487 """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.""" 1488 me: Identity 1489 """Returns details of the Studio organization with the provided ID.""" 1490 organization(id: ID!): Organization 1491 """Returns details of the Apollo user with the provided ID.""" 1492 user(id: ID!): User 1493 """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.""" 1494 variant(ref: ID!): GraphVariantLookup 1495 """Returns the [operation collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/) for the provided ID.""" 1496 operationCollection(id: ID!): OperationCollectionResult! 1497} 1498 1499"""The README documentation for a graph variant, which is displayed in Studio.""" 1500type Readme { 1501 """The contents of the README in plaintext.""" 1502 content: String! 1503 """The README's unique ID. `a15177c0-b003-4837-952a-dbfe76062eb1` for the default README""" 1504 id: ID! 1505 """The actor that most recently updated the README (usually a `User`). `null` for the default README, or if the `User` was deleted.""" 1506 lastUpdatedBy: Identity 1507 """The timestamp when the README was most recently updated. `null` for the default README""" 1508 lastUpdatedTime: Timestamp 1509} 1510 1511union RemoveOperationCollectionEntryResult = OperationCollection | PermissionError 1512 1513type Router { 1514 """ 1515 Last time when the Cloud Router was updated 1516 1517 If the Cloud Router was never updated, this value will be null 1518 """ 1519 updatedAt: NaiveDateTime 1520 """Current status of the Cloud Router""" 1521 status: RouterStatus! 1522 """Current version of the Cloud Router""" 1523 routerVersion: RouterVersion! 1524 """ 1525 URL where the Cloud Router can be found 1526 1527 This will be null if the Cloud Router is in a deleted status 1528 """ 1529 routerUrl: String 1530 """Retrieves a specific Order related to this Cloud Router""" 1531 order(orderId: ID!): Order 1532 """Retrieves all Orders related to this Cloud Router""" 1533 orders(first: Int, offset: Int): [Order!]! 1534 """Return the list of secrets for this Cloud Router with their hash values""" 1535 secrets: [Secret!]! 1536} 1537 1538enum RouterStatus { 1539 CREATING 1540 UPDATING 1541 DELETING 1542 ROLLING_BACK 1543 RUNNING 1544 DELETED 1545} 1546 1547type RouterVersion { 1548 version: String! 1549 core: String! 1550 build: String! 1551 status: Status! 1552 configVersion: String! 1553 configSchema: String! 1554} 1555 1556"""A GraphQL schema document and associated metadata.""" 1557type Schema { 1558 """The GraphQL schema document's SHA256 hash, represented as a hexadecimal string.""" 1559 hash: ID! 1560 """The GraphQL schema document.""" 1561 document: GraphQLDocument! 1562} 1563 1564"""An error that occurred while running schema composition on a set of subgraph schemas.""" 1565type SchemaCompositionError { 1566 """A human-readable message describing the error.""" 1567 message: String! 1568 """Source locations related to the error.""" 1569 locations: [SourceLocation]! 1570 """A machine-readable error code.""" 1571 code: String 1572} 1573 1574"""The result of computing the difference between two schemas, usually as part of schema checks.""" 1575type SchemaDiff { 1576 """Indicates the overall safety of the changes included in the diff, based on operation history (e.g., `FAILURE` or `NOTICE`).""" 1577 severity: ChangeSeverity! 1578 """A list of all schema changes in the diff, including their severity.""" 1579 changes: [Change!]! 1580 """Numeric summaries for each type of change in the diff.""" 1581 changeSummary: ChangeSummary! 1582 """Operations affected by all changes in the diff.""" 1583 affectedQueries: [AffectedQuery!] 1584 """The number of GraphQL operations that were validated during the check.""" 1585 numberOfCheckedOperations: Int 1586 """The number of GraphQL operations affected by the diff's changes that are neither marked as safe nor ignored.""" 1587 numberOfAffectedOperations: Int! 1588} 1589 1590"""Contains details for an individual publication of an individual graph variant.""" 1591type SchemaPublication { 1592 """ 1593 The variant that was published to." 1594 """ 1595 variant: GraphVariant! 1596 """The schema that was published to the variant.""" 1597 schema: Schema! 1598 """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.""" 1599 compositionResult: CompositionResult 1600 """The timestamp when the variant was published to.""" 1601 publishedAt: Timestamp! 1602 """A schema diff comparing against the schema from the most recent previous successful publication.""" 1603 diffToPrevious: SchemaDiff 1604} 1605 1606type Secret { 1607 createdAt: DateTime! 1608 name: String! 1609 hash: String! 1610} 1611 1612type SemanticChange { 1613 """Semantic metadata about the type of change""" 1614 definition: ChangeDefinition! 1615 """Top level node affected by the change""" 1616 parentNode: NamedIntrospectionType 1617 """ 1618 Node related to the top level node that was changed, such as a field in an object, 1619 a value in an enum or the object of an interface 1620 """ 1621 childNode: NamedIntrospectionValue 1622 """Target arg of change made.""" 1623 argNode: NamedIntrospectionArg 1624} 1625 1626""" 1627A graph in Apollo Studio represents a graph in your organization. 1628Each graph has one or more variants, which correspond to the different environments where that graph runs (such as staging and production). 1629Each variant has its own GraphQL schema, which means schemas can differ between environments. 1630""" 1631type Graph implements Identity { 1632 """The organization that this graph belongs to.""" 1633 account: Organization 1634 """A list of the graph API keys that are active for this graph.""" 1635 apiKeys: [GraphApiKey!] 1636 """Provides a view of the graph as an `Actor` type.""" 1637 asActor: Actor! 1638 """Get a check workflow for this graph by its ID""" 1639 checkWorkflow(id: ID!): CheckWorkflow 1640 """The graph's globally unique identifier.""" 1641 id: ID! 1642 """Permissions of the current user in this graph.""" 1643 myRole: UserPermission 1644 name: String! 1645 """Describes the permissions that the active user has for this graph.""" 1646 roles: GraphRoles 1647 """The graph's name.""" 1648 title: String! 1649 """ 1650 Provides details of the graph variant with the provided `name`, if a variant 1651 with that name exists for this graph. Otherwise, returns null. 1652 1653 For a list of _all_ variants associated with a graph, use `Graph.variants` instead. 1654 """ 1655 variant(name: String!): GraphVariant 1656 """A list of the variants for this graph.""" 1657 variants: [GraphVariant!]! 1658 """Get a GraphQL document by hash""" 1659 document(hash: SHA256): GraphQLDocument 1660 """Get check workflows for this graph ordered by creation time, most recent first.""" 1661 checkWorkflows(limit: Int! = 100, filter: CheckFilterInput): [CheckWorkflow!]! 1662} 1663 1664"""Provides access to mutation fields for managing Studio graphs and subgraphs.""" 1665type GraphMutation { 1666 """Generates a new graph API key for this graph with the specified permission level.""" 1667 newKey(keyName: String, role: UserPermission! = GRAPH_ADMIN): GraphApiKey! 1668 """Deletes the existing graph API key with the provided ID, if any.""" 1669 removeKey( 1670 """API key ID""" 1671 id: ID! 1672 ): Void 1673 """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.""" 1674 renameKey(id: ID!, newKeyName: String): GraphApiKey 1675 """Creates a contract schema from a source variant and a set of filter configurations""" 1676 upsertContractVariant( 1677 """The name of the contract variant, e.g. `public-api`. Once set, this value cannot be changed.""" 1678 contractVariantName: String! 1679 """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.""" 1680 filterConfig: FilterConfigInput! 1681 """Whether a launch and schema publish should be initiated after updating configuration. Defaults to `true`.""" 1682 initiateLaunch: Boolean! = true 1683 """The graphRef of the variant the contract will be derived from, e.g. `my-graph@production`. Once set, this value cannot be changed.""" 1684 sourceVariant: String 1685 ): ContractVariantUpsertResult! 1686 """Make changes to a graph variant.""" 1687 variant(name: String!): GraphVariantMutation 1688 """Publish a schema to this variant, either via a document or an introspection query result.""" 1689 uploadSchema(schema: IntrospectionSchemaInput, schemaDocument: String, tag: String!, historicParameters: HistoricQueryParameters, overrideComposedSchema: Boolean! = false, errorOnBadRequest: Boolean! = true, gitContext: GitContextInput): SchemaPublicationResult 1690 """ 1691 Checks a proposed schema against the schema that has been published to 1692 a particular variant, using metrics corresponding to `historicParameters`. 1693 Callers can set `historicParameters` directly or rely on defaults set in the 1694 graph's check configuration (7 days by default). 1695 If they do not set `historicParameters` but set `useMaximumRetention`, 1696 validation will use the maximum retention the graph has access to. 1697 """ 1698 checkSchema( 1699 """ 1700 Only one of proposedSchema, proposedSchemaDocument, and proposedSchemaHash 1701 may be specified 1702 """ 1703 proposedSchema: IntrospectionSchemaInput 1704 proposedSchemaDocument: String 1705 proposedSchemaHash: String 1706 baseSchemaTag: String = "current" 1707 gitContext: GitContextInput 1708 historicParameters: HistoricQueryParameters 1709 useMaximumRetention: Boolean 1710 isSandboxCheck: Boolean! = false 1711 """If this check is triggered for an sdl fetched using introspection, this is the endpoint where that schema was being served.""" 1712 introspectionEndpoint: String 1713 """Deprecated and ignored.""" 1714 frontend: String 1715 ): CheckSchemaResult! 1716 """Publish to a subgraph. If composition is successful, this will update running routers.""" 1717 publishSubgraph(graphVariant: String!, name: String!, url: String, revision: String!, activePartialSchema: PartialSchemaInput!, gitContext: GitContextInput): SubgraphPublicationResult 1718 """Removes a subgraph. If composition is successful, this will update running routers.""" 1719 removeImplementingServiceAndTriggerComposition( 1720 graphVariant: String! 1721 name: String! 1722 """Do not remove the service, but recompose without it and report any errors.""" 1723 dryRun: Boolean! = false 1724 ): SubgraphRemovalResult! 1725 """ 1726 Checks a proposed subgraph schema change against a published subgraph. 1727 If the proposal composes successfully, perform a usage check for the resulting supergraph schema. 1728 """ 1729 checkPartialSchema( 1730 """The name of the graph variant to run the check against.""" 1731 graphVariant: String! 1732 """Name of the implementing service to validate the partial schema against""" 1733 implementingServiceName: String! 1734 """The partial schema to validate against an implementing service""" 1735 partialSchema: PartialSchemaInput! 1736 gitContext: GitContextInput 1737 historicParameters: HistoricQueryParameters 1738 """Deprecated and ignored.""" 1739 frontend: String 1740 """ 1741 Whether to use the maximum retention for historical validation. This only takes 1742 effect if historicParameters is null. 1743 """ 1744 useMaximumRetention: Boolean 1745 isSandboxCheck: Boolean! = false 1746 """If this check is triggered for an sdl fetched using introspection, this is the endpoint where that schema was being served.""" 1747 introspectionEndpoint: String 1748 ): CheckPartialSchemaResult! 1749} 1750 1751"""Individual permissions for the current user when interacting with a particular Studio graph.""" 1752type GraphRoles { 1753 """Whether the currently authenticated user is permitted to perform schema checks (i.e., run `rover (sub)graph check`).""" 1754 canCheckSchemas: Boolean! 1755 """Whether the currently authenticated user is permitted to create new graph variants.""" 1756 canCreateVariants: Boolean! 1757 """Whether the currently authenticated user is permitted to delete the graph in question""" 1758 canDelete: Boolean! 1759 """Whether the currently authenticated user is permitted to manage user access to the graph in question.""" 1760 canManageAccess: Boolean! 1761 """Whether the currently authenticated user is permitted to manage the build configuration (e.g., build pipeline version).""" 1762 canManageBuildConfig: Boolean! 1763 """Whether the currently authenticated user is permitted to manage third-party integrations (e.g., Datadog forwarding).""" 1764 canManageIntegrations: Boolean! 1765 """Whether the currently authenticated user is permitted to manage graph-level API keys.""" 1766 canManageKeys: Boolean! 1767 """Whether the currently authenticated user is permitted to perform basic administration of variants (e.g., make a variant public).""" 1768 canManageVariants: Boolean! 1769 """Whether the currently authenticated user is permitted to view details about the build configuration (e.g. build pipeline version).""" 1770 canQueryBuildConfig: Boolean! 1771 """Whether the currently authenticated user is permitted to view details of the check configuration for this graph.""" 1772 canQueryCheckConfiguration: Boolean! 1773 """Whether the currently authenticated user is permitted to view which subgraphs the graph is composed of.""" 1774 canQueryImplementingServices: Boolean! 1775 """Whether the currently authenticated user is permitted to download schemas owned by this graph.""" 1776 canQuerySchemas: Boolean! 1777 """Whether the currently authenticated user is permitted to register operations (i.e. `apollo client:push`) for this graph.""" 1778 canRegisterOperations: Boolean! 1779 """Whether the currently authenticated user is permitted to make updates to the check configuration for this graph.""" 1780 canWriteCheckConfiguration: Boolean! 1781} 1782 1783"""A SHA-256 hash, represented as a lowercase hexadecimal string.""" 1784scalar SHA256 1785 1786"""A location in a source code file.""" 1787type SourceLocation { 1788 """Column number.""" 1789 column: Int! 1790 """Line number.""" 1791 line: Int! 1792} 1793 1794enum Status { 1795 STABLE 1796 NEXT 1797 DEPRECATED 1798} 1799 1800"""A subgraph in a federated Studio supergraph.""" 1801type Subgraph { 1802 """The subgraph schema document's SHA256 hash, represented as a hexadecimal string.""" 1803 hash: String! 1804 """The subgraph's registered name.""" 1805 name: String! 1806 """The number of fields in this subgraph""" 1807 numberOfFields: Int 1808 """The number of types in this subgraph""" 1809 numberOfTypes: Int 1810 """The subgraph's routing URL, provided to gateways that use managed federation.""" 1811 routingURL: String! 1812 """Timestamp of when the subgraph was published.""" 1813 updatedAt: Timestamp 1814} 1815 1816"""A change made to a subgraph as part of a launch.""" 1817type SubgraphChange { 1818 """The subgraph's name.""" 1819 name: ID! 1820 """The type of change that was made.""" 1821 type: SubgraphChangeType! 1822} 1823 1824enum SubgraphChangeType { 1825 ADDITION 1826 DELETION 1827 MODIFICATION 1828} 1829 1830"""Input type to provide when running schema checks asynchronously for a federated supergraph.""" 1831input SubgraphCheckAsyncInput { 1832 """Configuration options for the check execution.""" 1833 config: HistoricQueryParametersInput! 1834 """The GitHub context to associate with the check.""" 1835 gitContext: GitContextInput! 1836 """The graph ref of the Studio graph and variant to run checks against (such as `my-graph@current`).""" 1837 graphRef: ID 1838 """The URL of the GraphQL endpoint that Apollo Sandbox introspected to obtain the proposed schema. Required if `isSandbox` is `true`.""" 1839 introspectionEndpoint: String 1840 """If `true`, the check was initiated by Apollo Sandbox.""" 1841 isSandbox: Boolean! 1842 """The proposed subgraph schema to perform checks with.""" 1843 proposedSchema: GraphQLDocument! 1844 """The name of the subgraph to check schema changes for.""" 1845 subgraphName: String! 1846} 1847 1848"""ISO 8601, extended format with nanoseconds, Zulu (or "[+-]seconds" as a string or number relative to now)""" 1849scalar Timestamp 1850 1851"""Counts of changes.""" 1852type TotalChangeSummaryCounts { 1853 """ 1854 Number of changes that are additions. This includes adding types, adding fields to object, input 1855 object, and interface types, adding values to enums, adding members to interfaces and unions, and 1856 adding arguments. 1857 """ 1858 additions: Int! 1859 """ 1860 Number of changes that are removals. This includes removing types, removing fields from object, 1861 input object, and interface types, removing values from enums, removing members from interfaces 1862 and unions, and removing arguments. This also includes removing @deprecated usages. 1863 """ 1864 removals: Int! 1865 """ 1866 Number of changes that are edits. This includes types changing kind, fields and arguments 1867 changing type, arguments changing default value, and any description changes. This also includes 1868 edits to @deprecated reason strings. 1869 """ 1870 edits: Int! 1871 """Number of changes that are new usages of the @deprecated directive.""" 1872 deprecations: Int! 1873} 1874 1875"""Counts of changes at the type level, including interfaces, unions, enums, scalars, input objects, etc.""" 1876type TypeChangeSummaryCounts { 1877 """Number of changes that are additions of types.""" 1878 additions: Int! 1879 """Number of changes that are removals of types.""" 1880 removals: Int! 1881 """ 1882 Number of changes that are edits. This includes types changing kind and any type description 1883 changes, but also includes adding/removing values from enums, adding/removing members from 1884 interfaces and unions, and any enum value deprecation and description changes. 1885 """ 1886 edits: Int! 1887} 1888 1889union UpdateOperationCollectionEntryResult = OperationCollectionEntry | PermissionError | ValidationError 1890 1891union UpdateOperationCollectionResult = OperationCollection | PermissionError | ValidationError 1892 1893"""Describes the result of publishing a schema to a graph variant.""" 1894type SchemaPublicationResult { 1895 """A machine-readable response code that indicates the type of result (e.g., `UPLOAD_SUCCESS` or `NO_CHANGES`)""" 1896 code: String! 1897 """Whether the schema publish operation succeeded (`true`) or encountered errors (`false`).""" 1898 success: Boolean! 1899 """A Human-readable message describing the type of result.""" 1900 message: String! 1901 """If the publish operation succeeded, this contains its details. Otherwise, this is null.""" 1902 publication: SchemaPublication 1903} 1904 1905"""A registered Apollo Studio user.""" 1906type User implements Identity { 1907 """Returns a list of all active user API keys for the user.""" 1908 apiKeys(includeCookies: Boolean = false): [UserApiKey!]! 1909 """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.""" 1910 asActor: Actor! 1911 """The user's unique ID.""" 1912 id: ID! 1913 """A list of the user's memberships in Apollo Studio organizations.""" 1914 memberships: [UserMembership!]! 1915 """The user's first and last name.""" 1916 name: String! 1917} 1918 1919""" 1920Represents a user API key, which has permissions identical to 1921its associated Apollo user. 1922""" 1923type UserApiKey implements ApiKey { 1924 """The API key's ID.""" 1925 id: ID! 1926 """The API key's name, for distinguishing it from other keys.""" 1927 keyName: String 1928 """The value of the API key. **This is a secret credential!**""" 1929 token: String! 1930} 1931 1932"""A single user's membership in a single Apollo Studio organization.""" 1933type UserMembership { 1934 """The organization that the user belongs to.""" 1935 account: Organization! 1936 """The timestamp when the user was added to the organization.""" 1937 createdAt: Timestamp! 1938 """The user's permission level within the organization.""" 1939 permission: UserPermission! 1940 """The user that belongs to the organization.""" 1941 user: User! 1942} 1943 1944type UserMutation { 1945 """Creates a new user API key for this user.""" 1946 newKey(keyName: String!): UserApiKey! 1947 """ 1948 If this user has no active user API keys, this creates one for the user. 1949 1950 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. 1951 """ 1952 provisionKey(keyName: String! = "add-a-name"): ApiKeyProvision 1953 """Deletes the user API key with the provided ID, if any.""" 1954 removeKey( 1955 """API key ID""" 1956 id: ID! 1957 ): Void 1958 """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.""" 1959 renameKey(id: ID!, newKeyName: String): UserApiKey 1960} 1961 1962enum UserPermission { 1963 BILLING_MANAGER 1964 CONSUMER 1965 CONTRIBUTOR 1966 DOCUMENTER 1967 GRAPH_ADMIN 1968 LEGACY_GRAPH_KEY 1969 OBSERVER 1970 ORG_ADMIN 1971} 1972 1973"""An error that occurs when an operation contains invalid user input.""" 1974type ValidationError implements Error { 1975 """The error's details.""" 1976 message: String! 1977} 1978 1979"""Always null""" 1980scalar Void