### This file was generated by Nexus Schema
### Do not make changes to this file directly

"""
In-app banner content. Audience filtering (channel flag, version, cohort) is applied server-side before delivery.
"""
type CloudAppMessage {
  analytics: CloudAppMessageAnalytics!

  """
  Banner body text. Rendered as markdown (bold, italic, inline code, links). Raw HTML is escaped.
  """
  body: String!
  ctas: [CloudAppMessageCta!]!
  dismissal: CloudAppMessageDismissal!
  enabled: Boolean!

  """
  Cloud-defined id. Bump to re-show a previously-dismissed message.
  """
  id: String!

  """
  Higher wins when multiple messages are eligible.
  """
  priority: Int!
  title: String!
  visualStyle: CloudAppMessageVisualStyle!
}

"""
Analytics metadata flowed through to recordEvent on impression / click / dismissal
"""
type CloudAppMessageAnalytics {
  campaign: String!
  category: String!
  utm: CloudAppMessageUtm
}

"""
Call-to-action button rendered alongside an in-app cloud message banner
"""
type CloudAppMessageCta {
  href: String!

  """
  Message-scoped analytical key (e.g. `learn_cy_prompt`). Sent as `ctaId` on click events; survives URL revisions.
  """
  id: String!
  style: CloudAppMessageCtaStyle!
  text: String!
  utm: CloudAppMessageUtm
}

enum CloudAppMessageCtaStyle {
  primary
  secondary
}

type CloudAppMessageDismissal {
  scope: CloudAppMessageDismissalScope!
}

enum CloudAppMessageDismissalScope {
  project
  user
}

"""
Optional UTM params for CTA destination URLs. CTA-level overrides message-level. utm_source/medium/campaign are auto-injected by the binary.
"""
type CloudAppMessageUtm {
  content: String
  id: String
  term: String
}

enum CloudAppMessageVisualStyle {
  info
  warning
}

"""
Information about the browser the tests were run on
"""
type CloudBrowserInfo implements Node {
  """
  The formatted name of the browser, e.g. `Electron`
  """
  formattedName: String

  """
  The formatted name of the browser with the current version i.e `Electron 59.0.278`
  """
  formattedNameWithVersion: String

  """
  The version of the browser, i.e. `59`
  """
  formattedVersion: String
  id: ID!

  """
  The ID of the browser, e.g. `electron`
  """
  unformattedName: String

  """
  The unformatted version of the browser, i.e. `59.0.278`
  """
  unformattedVersion: String
}

"""
Information about the CI provider that performed a run
"""
type CloudCiBuildInfo implements Node {
  """
  CI build ID as extracted from the CI worker environment (if available)
  """
  ciBuildNumber: String

  """
  Formatted CI build ID as extracted from the CI worker environment (if available)
  """
  ciBuildNumberFormatted: String

  """
  The formatted name of the provider that performed the associated run, e.g. `CircleCI`
  """
  formattedProvider: String

  """
  Globally unique identifier representing a concrete GraphQL ObjectType
  """
  id: ID!

  """
  The ID of the provider that performed the associated run, e.g. `circleci`
  """
  provider: String

  """
  A link to the build details for the associated run within the CI provider (if available)
  """
  url: String
}

"""
Feature not available for subscription
"""
type CloudFeatureNotEnabled {
  """
  an error message
  """
  message: String!
}

"""
Represents a pollable status for clients to know when refetching data is required.
"""
type CloudLatestRunUpdateSpecData {
  """
  DateTime of the latest update in a project.
  """
  mostRecentUpdate: DateTime

  """
  Recommended seconds to wait before next poll.
  """
  pollingInterval: Int
}

"""
The operating system the tests were run on
"""
type CloudOperatingSystem implements Node {
  id: ID!

  """
  The formatted name of the operating system, e.g. `linux`
  """
  name: String

  """
  The formatted name of the operating system with the version, e.g. `linux 14.04`
  """
  nameWithVersion: String

  """
  The platform of the OS, e.g. `linux`
  """
  platform: OperatingSystemsEnum
  unformattedName: String

  """
  The version of the operating system, e.g. `14.04`
  """
  version: String
}

"""
A CloudOrganization represents an Organization stored in the Cypress Cloud
"""
type CloudOrganization implements Node {
  """
  Globally unique identifier representing a concrete GraphQL ObjectType
  """
  id: ID!

  """
  Name of the organization
  """
  name: String

  """
  A connection for cloud projects associated with this organization
  """
  projects(
    """
    Returns the elements in the list that come after the specified cursor
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor
    """
    before: String

    """
    Returns the first n elements from the list.
    """
    first: Int

    """
    Returns the last n elements from the list.
    """
    last: Int
  ): CloudProjectConnection
}

type CloudOrganizationConnection {
  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-Edge-Types
  """
  edges: [CloudOrganizationEdge!]!

  """
  Flattened list of CloudOrganization type
  """
  nodes: [CloudOrganization!]!

  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-undefined.PageInfo
  """
  pageInfo: PageInfo!
}

type CloudOrganizationEdge {
  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-Cursor
  """
  cursor: String!

  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-Node
  """
  node: CloudOrganization!
}

type CloudPollingIntervals {
  """
  The frequency with which the CloudProject.runByNumber field should be polled, in seconds.
  """
  runByNumber: Int

  """
  The frequency with which the CloudProject.runsByCommitShas field should be polled, in seconds.
  """
  runsByCommitShas: Int
}

"""
A CloudProject represents a Project stored in the Cypress Cloud
"""
type CloudProject implements Node {
  """
  A link to the settings page of the project in the dashboard
  """
  cloudProjectSettingsUrl: String!

  """
  A link to the project in the dashboard
  """
  cloudProjectUrl: String!

  """
  Globally unique identifier representing a concrete GraphQL ObjectType
  """
  id: ID!

  """
  The latest run for a given spec
  """
  latestRun: CloudRun

  """
  Given name of the project
  """
  name: String!

  """
  The organization the project is a member of
  """
  organization: CloudOrganization

  """
  Record keys for the service
  """
  recordKeys: [CloudRecordKey!]

  """
  Gets a single CloudRun by runNumber
  """
  runByNumber(runNumber: Int!): CloudRun

  """
  A connection field type
  """
  runs(
    """
    Returns the elements in the list that come after the specified cursor
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor
    """
    before: String
    cypressVersion: String

    """
    Returns the first n elements from the list.
    """
    first: Int

    """
    Returns the last n elements from the list.
    """
    last: Int
    status: CloudRunStatus
  ): CloudRunConnection

  """
  Returns runs associated to the given git commit SHAs hashes. The returned runs are ordered in the same way as the provided hashes.
  """
  runsByCommitShas(
    """
    An ordered list of git commit sha1 hashes.
    """
    commitShas: [String!]!

    """
    A limit to apply to the sorted list of found runs.
    """
    runLimit: Int! = 100
  ): [CloudRun]

  """
  Unique identifier for a Project
  """
  slug: String!
}

type CloudProjectConnection {
  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-Edge-Types
  """
  edges: [CloudProjectEdge!]!

  """
  Flattened list of CloudProject type
  """
  nodes: [CloudProject!]!

  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-undefined.PageInfo
  """
  pageInfo: PageInfo!
}

type CloudProjectEdge {
  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-Cursor
  """
  cursor: String!

  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-Node
  """
  node: CloudProject!
}

"""
Unable to find cloud project
"""
type CloudProjectNotFound {
  """
  an error message
  """
  message: String!
}

union CloudProjectResult =
  | CloudProject
  | CloudProjectNotFound
  | CloudProjectUnauthorized

type CloudProjectSpec implements Node {
  """
  Average duration the spec takes to run
  """
  averageDuration(
    """
    The branch to measure average duration against. This will fallback to the closest branch with data.
    """
    fromBranch: String!
  ): Float

  """
  Average duration the spec takes to run within the context of the provided CloudRun ids.
  """
  averageDurationForRunIds(
    """
    The ids for the CloudRuns to use to derive the average duration. When provided, the fromBranch argument is ignored, as the provided run ids define the search space.
    """
    cloudRunIds: [ID!]!
  ): Float
  flakyStatus(
    """
    The number of runs to consider when counting flaky runs.
    """
    flakyRunsWindow: Int!

    """
    The branch to measure average duration against. This will fallback to the closest branch with data.
    """
    fromBranch: String!
  ): CloudProjectSpecFlakyResult

  """
  The flaky metadata for the spec within the context of the provided CloudRun ids.
  """
  flakyStatusForRunIds(
    """
    The ids for the CloudRuns, ordered from most to least relevant, to use to derive the flaky status.
    """
    cloudRunIds: [ID!]!
  ): CloudProjectSpecFlakyResult

  """
  Globally unique identifier representing a concrete GraphQL ObjectType
  """
  id: ID!
  isConsideredFlaky(
    """
    The branch to measure flakiness against
    """
    fromBranch: String!
  ): Boolean

  """
  Indicator that a spec is considered flaky within the context of the provided CloudRun ids.
  """
  isConsideredFlakyForRunIds(
    """
    The ids for the CloudRuns to use to derive the flake indicator. When provided, the fromBranch argument is ignored, as the provided run ids define the search space.
    """
    cloudRunIds: [ID!]!
  ): Boolean

  """
  Current DateTime on the server. Used in connection with CloudLatestRunUpdateSpecData.
  """
  retrievedAt: DateTime

  """
  Shortened spec path
  """
  specPath: String

  """
  Runs this spec has been involved with.
  """
  specRuns(
    """
    Returns the elements in the list that come after the specified cursor
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor
    """
    before: String

    """
    Returns the first n elements from the list.
    """
    first: Int

    """
    The branch to filter on for the specs. This will fallback to the closest branch with data.
    """
    fromBranch: String!

    """
    Returns the last n elements from the list.
    """
    last: Int
  ): CloudSpecRunConnection
    @deprecated(
      reason: "Cypress app should utilize specRunsForRunIds to retrieve more relevant data based on local state"
    )

  """
  Runs this spec has been involved with, limited to the provided list of CloudRun ids.
  Runs will be returned in the same order as the runs provided, where matches are found.
  """
  specRunsForRunIds(
    """
    A list of IDs for a CloudRun Node, conforming to the Relay spec
    """
    cloudRunIds: [ID!]!
  ): [CloudSpecRun]
}

union CloudProjectSpecFlakyResult =
  | CloudFeatureNotEnabled
  | CloudProjectSpecFlakyStatus

type CloudProjectSpecFlakyStatus {
  """
  URL linking to the flaky data in the Cypress dashboard for this spec
  """
  dashboardUrl: String

  """
  Number of flaky runs from the considered runs
  """
  flakyRuns: Int
  flakyRunsWindow: Int

  """
  The last flaky run occurrence, interpreted as "n runs ago" - ex: a value of 5 means a flaky run last occurred 5 runs ago. Will be null if field is a child of flayStatusForRunIds
  """
  lastFlaky: Int

  """
  The associated commit_sha of the CloudRun containing the most recent flaky occurrence of the spec. Will be populated if field is a child of flayStatusForRunIds.
  """
  lastFlakyRunCommitSha: String

  """
  The run number of the CloudRun containing the most recent flaky occurrence of the spec. Will be populated if field is a child of flayStatusForRunIds.
  """
  lastFlakyRunNumber: Int
  severity: String
}

"""
Unable to find cloud spec in project
"""
type CloudProjectSpecNotFound {
  """
  an error message
  """
  message: String!
  retrievedAt: DateTime
}

union CloudProjectSpecResult =
  | CloudProjectSpec
  | CloudProjectSpecNotFound
  | CloudProjectUnauthorized

"""
Unauthorized access
"""
type CloudProjectUnauthorized {
  """
  does the user have a requested access pending
  """
  hasRequestedAccess: Boolean

  """
  an error message
  """
  message: String!
}

type CloudRecordKey implements Node {
  createdAt: DateTime

  """
  Globally unique identifier representing a concrete GraphQL ObjectType
  """
  id: ID!

  """
  The Record Key
  """
  key: String
  lastUsedAt: DateTime
}

"""
A Recorded run of the Test Runner, typically to the cloud
"""
type CloudRun implements Node {
  """
  Whether or not the run was canceled due to a failure
  """
  cancelOnFailure: Boolean

  """
  When the run was cancelled, null if not cancelled
  """
  cancelledAt: DateTime

  """
  The user who manually cancelled the run, null if not cancelled manually
  """
  cancelledBy: CloudUser

  """
  Information about the CI provider that performed the run
  """
  ci: CloudCiBuildInfo!
  commitInfo: CloudRunCommitInfo
  completedAt: DateTime

  """
  Number of specs instances that have been completed within a run
  """
  completedInstanceCount: Int

  """
  When the run was created
  """
  createdAt: DateTime!

  """
  Errors recorded against tests within this run, as reported by the Cypress App during recording
  """
  errors: [String!]!

  """
  All groups within this run
  """
  groups: [CloudRunGroup!]!

  """
  Globally unique identifier representing a concrete GraphQL ObjectType
  """
  id: ID!

  """
  Whether this run is hidden to the user due to data limits. Specific reasons are provided in the reasonsRunIsHidden field.
  """
  isHidden: Boolean!

  """
  Action user can perform when the run is over a usage limit
  """
  overLimitActionType: OverLimitActionTypeEnum!

  """
  A link a user can navigate to when the run is over a usage limit
  """
  overLimitActionUrl: String!

  """
  Reasons why this run is hidden. List will be empty if the run is not hidden.
  """
  reasonsRunIsHidden: [CloudRunHidingReason]!
  runNumber: Int

  """
  The datetime at which the run is currently scheduled to be completed. Will be null if not currently scheduled for completion or if already completed.
  """
  scheduledToCompleteAt: DateTime

  """
  All specs within this run
  """
  specs: [CloudSpecRun!]!
  status: CloudRunStatus
  tags: [CloudRunTag]

  """
  Tests within this run that failed and need to be reviewed
  """
  testsForReview(limit: Int! = 100): [CloudTestResult!]!

  """
  Total duration of the run in milliseconds, accounting for any parallelization
  """
  totalDuration: Int

  """
  This is the number of failed tests across all groups in the run
  """
  totalFailed: Int

  """
  Number of flaky tests, null if flake detection is not enabled
  """
  totalFlakyTests: Int

  """
  Number of instances within a run
  """
  totalInstanceCount: Int

  """
  This is the number of passed tests across all groups in the run
  """
  totalPassed: Int

  """
  This is the number of pending tests across all groups in the run
  """
  totalPending: Int

  """
  This is the number of running tests across all groups in the run
  """
  totalRunning: Int

  """
  This is the number of skipped tests across all groups in the run
  """
  totalSkipped: Int

  """
  This is the number of tests across all groups in the run
  """
  totalTests: Int

  """
  A link to the run page
  """
  url: String
}

type CloudRunCommitInfo {
  authorAvatar: String
  authorEmail: String
  authorName: String
  branch: String
  branchUrl: String
  message(
    """
    Number of characters to truncate the commit message to
    """
    truncate: Int
  ): String
  sha: String
  summary: String
  url: String
}

type CloudRunConnection {
  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-Edge-Types
  """
  edges: [CloudRunEdge!]!

  """
  Flattened list of CloudRun type
  """
  nodes: [CloudRun!]!

  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-undefined.PageInfo
  """
  pageInfo: PageInfo!
}

type CloudRunEdge {
  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-Cursor
  """
  cursor: String!

  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-Node
  """
  node: CloudRun!
}

"""
A group of tests that are executed together within a run
"""
type CloudRunGroup implements Node {
  """
  The browser the tests were run on
  """
  browser: CloudBrowserInfo!

  """
  The date and time the group was completed
  """
  completedAt: DateTime

  """
  The date and time the group was created
  """
  createdAt: DateTime!

  """
  The overall duration of the tests in the group in milliseconds
  """
  duration: Int!

  """
  The name of the group
  """
  groupName: String
  id: ID!

  """
  The operating system the tests were run on
  """
  os: CloudOperatingSystem!
  status: CloudRunGroupStatusEnum!

  """
  The type of the test
  """
  testingType: String!

  """
  The total number of tests that failed within the group
  """
  totalFailures: Int!

  """
  The total number of tests that passed within the group
  """
  totalPasses: Int!

  """
  The total number of tests that are pending within the group
  """
  totalPending: Int!

  """
  The total number of tests that are skipped within the group
  """
  totalSkipped: Int!
}

"""
Possible check status of a run group
"""
enum CloudRunGroupStatusEnum {
  CANCELLED
  ERRORED
  FAILED
  NOTESTS
  PASSED
  RUNNING
  TIMEDOUT
  UNCLAIMED
}

"""
The reason a run was hidden, along with any details
"""
union CloudRunHidingReason = DataRetentionLimitExceeded | UsageLimitExceeded

"""
An instance of executing a single test within a run
"""
type CloudRunInstance implements Node {
  """
  The ID of the group that this instance belongs to
  """
  groupId: String!

  """
  Used to determine if the instance has test replay
  """
  hasReplay: Boolean

  """
  Used to determine if the instance has screenshots
  """
  hasScreenshots: Boolean!

  """
  Used to determine if the instance has stdout
  """
  hasStdout: Boolean!

  """
  Used to determine if the instance has screenshots
  """
  hasVideo: Boolean!
  id: ID!

  """
  Link to Cypress Cloud to view test replay, if available
  """
  replayUrl: String

  """
  Link to Cypress Cloud to view stdout, if available
  """
  screenshotsUrl: String

  """
  The status of the instance
  """
  status: RunInstanceStatusEnum!

  """
  Link to Cypress Cloud to view stdout, if available
  """
  stdoutUrl: String

  """
  This is the number of failed tests for the instance
  """
  totalFailed: Int

  """
  This is the number of passed tests for the instance
  """
  totalPassed: Int

  """
  This is the number of pending tests for the instance
  """
  totalPending: Int

  """
  This is the number of running tests for the instance
  """
  totalRunning: Int

  """
  This is the number of skipped tests for the instance
  """
  totalSkipped: Int

  """
  Link to Cypress Cloud to view stdout, if available
  """
  videoUrl: String
}

"""
Possible check status of the test run
"""
enum CloudRunStatus {
  CANCELLED
  ERRORED
  FAILED
  NOTESTS
  OVERLIMIT
  PASSED
  RUNNING
  TIMEDOUT
}

type CloudRunTag implements Node {
  """
  Globally unique identifier representing a concrete GraphQL ObjectType
  """
  id: ID!
  name: String
}

"""
Details of test recording in Cypress Cloud for a spec file within a run
"""
type CloudSpecRun implements Node {
  """
  Basename of the spec file
  """
  basename: String!

  """
  When the spec was completed
  """
  completedAt: DateTime

  """
  When the spec was registered to run
  """
  createdAt: DateTime

  """
  Extension of the spec file
  """
  extension: String!

  """
  Amount of groups this spec was run in
  """
  groupCount: Int

  """
  Unique identifiers for each group this spec was run in
  """
  groupIds: [String]
  id: ID!

  """
  Full path to the spec file
  """
  path: String!

  """
  Incremental run number assigned
  """
  runNumber: Int

  """
  Short path to the spec file without leading Cypress directories
  """
  shortPath: String

  """
  Aggregate information about how long the spec took to run in the groups
  """
  specDuration: SpecDataAggregate

  """
  Most important status for the spec shared between all groups
  """
  status: CloudSpecStatus

  """
  Aggregate information about how many tests failed in the groups
  """
  testsFailed: SpecDataAggregate

  """
  Aggregate information about how many tests passed in the groups
  """
  testsPassed: SpecDataAggregate

  """
  Aggregate information about how many tests are pending in the groups
  """
  testsPending: SpecDataAggregate

  """
  Aggregate information about how many tests were skipped in the groups
  """
  testsSkipped: SpecDataAggregate

  """
  A link to the run overview page in Cypress Cloud filtered by spec
  """
  url: String
}

type CloudSpecRunConnection {
  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-Edge-Types
  """
  edges: [CloudSpecRunEdge!]!

  """
  Flattened list of CloudSpecRun type
  """
  nodes: [CloudSpecRun!]!

  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-undefined.PageInfo
  """
  pageInfo: PageInfo!
}

type CloudSpecRunEdge {
  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-Cursor
  """
  cursor: String!

  """
  https://facebook.github.io/relay/graphql/connections.htm#sec-Node
  """
  node: CloudSpecRun!
}

"""
Possible check status of the spec within a run
"""
enum CloudSpecStatus {
  CANCELLED
  ERRORED
  FAILED
  NOTESTS
  PASSED
  RUNNING
  TIMEDOUT
  UNCLAIMED
}

"""
Details of a recording in Cypress Cloud for a single test within a run
"""
type CloudTestResult implements Node {
  """
  This is the duration of the test result in milliseconds
  """
  duration: Int
  id: ID!

  """
  The instance of running the test result within the corresponding run
  """
  instance: CloudRunInstance

  """
  If the test result was flaky in the current run
  """
  isFlaky: Boolean!

  """
  The spec ID of the test result
  """
  specId: String!

  """
  The state of the test result
  """
  state: CloudTestResultStateEnum!

  """
  The URL to the test result in Cypress Cloud
  """
  testUrl: String!

  """
  The thumbprint of the test result, allows for deduping tests sharing the same title in the same spec
  """
  thumbprint: String!

  """
  The title of the test result: describe/context > it/test
  """
  title(
    """
    This will trim the test title to the provided depth
    """
    depth: Int!
  ): String!

  """
  The title of the test result split into parts
  """
  titleParts: [String!]!
}

"""
State of the test result
"""
enum CloudTestResultStateEnum {
  CANCELLED
  ERRORED
  FAILED
  PASSED
  PENDING
  RUNNING
  SKIPPED
  TIMEDOUT
  UNKNOWN
}

"""
Type of tests
"""
enum CloudTestingTypeEnum {
  COMPONENT
  E2E
}

"""
A CloudUser represents an User stored in the Cypress Cloud
"""
type CloudUser implements Node {
  """
  Url to manage cloud organizations for this user
  """
  cloudOrganizationsUrl: String

  """
  Url to the profile of the current user on the dashboard
  """
  cloudProfileUrl: String

  """
  Url to create a cloud organization for this user
  """
  createCloudOrganizationUrl: String
  email: String

  """
  The display name of the user, if we have one
  """
  fullName: String

  """
  Globally unique identifier representing a concrete GraphQL ObjectType
  """
  id: ID!

  """
  A connection field type
  """
  organizations(
    """
    Returns the elements in the list that come after the specified cursor
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor
    """
    before: String

    """
    Returns the first n elements from the list.
    """
    first: Int

    """
    Returns the last n elements from the list.
    """
    last: Int
  ): CloudOrganizationConnection

  """
  Whether this user is the currently authenticated user
  """
  userIsViewer: Boolean!
}

"""
A run was hidden because it was over the data retention limit
"""
type DataRetentionLimitExceeded {
  """
  The number of days of data retention
  """
  dataRetentionDays: Int
}

"""
A date string, such as 2007-12-03, compliant with the `full-date` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.
"""
scalar Date

"""
A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.
"""
scalar DateTime

"""
Counts for specs and tests from a local project at a point in time
"""
input LocalTestCountsInput {
  """
  Current Git branch name for local project
  """
  branch: String

  """
  Total number of example specs found in project
  """
  exampleSpecs: Int!

  """
  Total number of tests found in example specs. This can be an estimate
  """
  exampleTests: Int!

  """
  Project slug for project
  """
  projectSlug: String

  """
  Testing type
  """
  testingType: CloudTestingTypeEnum!

  """
  Total number of specs found in project
  """
  totalSpecs: Int!

  """
  Total number of tests found in all specs in project. This can be an estimate
  """
  totalTests: Int!
}

type Mutation {
  """
  Create a project in the dashboard and return its object
  """
  cloudProjectCreate(
    campaign: String
    ciProviders: [String!]
    cohort: String
    medium: String
    name: String!
    orgId: ID!
    public: Boolean!
    source: String
  ): CloudProject

  """
  Request access to an organization from a projectId
  """
  cloudProjectRequestAccess(projectSlug: String!): CloudProjectResult

  """
  Record event
  """
  cloudRecordEvent(localTestCounts: LocalTestCountsInput): Boolean

  """
  Adding as a test
  """
  test: Boolean
}

"""
Implements the Relay Node spec
"""
interface Node {
  """
  Globally unique identifier representing a concrete GraphQL ObjectType
  """
  id: ID!
}

"""
Possible operating systems for a build
"""
enum OperatingSystemsEnum {
  LINUX
  MAC
  UNKNOWN
  WINDOWS
}

"""
What to do when the run is over the limit
"""
enum OverLimitActionTypeEnum {
  CONTACT_ADMIN
  UPGRADE
}

"""
PageInfo cursor, as defined in https://facebook.github.io/relay/graphql/connections.htm#sec-undefined.PageInfo
"""
type PageInfo {
  """
  The cursor corresponding to the last nodes in edges. Null if the connection is empty.
  """
  endCursor: String

  """
  Used to indicate whether more edges exist following the set defined by the clients arguments.
  """
  hasNextPage: Boolean!

  """
  Used to indicate whether more edges exist prior to the set defined by the clients arguments.
  """
  hasPreviousPage: Boolean!

  """
  The cursor corresponding to the first nodes in edges. Null if the connection is empty.
  """
  startCursor: String
}

type Query {
  """
  Cloud-driven in-app messages eligible to be rendered as banners in the binary. Pre-filtered server-side by channel feature flag, version range, and cohort allow-lists. Public — accessible without authentication so logged-out users can still receive awareness messages. The binary may further filter on local state (run mode, env-var opt-out) before rendering.
  """
  cloudAppMessages(
    """
    Optional project slug used to scope cohort and channel-flag lookups. When omitted, only globally-targeted messages are returned.
    """
    projectSlug: String
  ): [CloudAppMessage!]

  """
  Polling query to determine when to refetch spec data. A null value here means no data available in the cloud.
  """
  cloudLatestRunUpdateSpecData(
    """
    Clients active branch to search for builds. This will fallback to the closest branch with data.
    """
    commitBranch: String!

    """
    A list of Project slugs
    """
    projectSlug: String!

    """
    DateTime since the fetched data
    """
    sinceDateTime: DateTime
  ): CloudLatestRunUpdateSpecData

  """
  Returns an object conforming to the Relay spec
  """
  cloudNode(
    """
    An ID for a Node conforming to the Relay spec
    """
    id: ID!
  ): Node

  """
  Returns a list of cloud nodes, by ID. Max 100 nodes per batch
  """
  cloudNodesByIds(
    """
    A list of IDs for a Node, conforming to the Relay spec
    """
    ids: [ID!]!
  ): [Node]

  """
  Lookup an individual project by the slug
  """
  cloudProjectBySlug(slug: String!): CloudProjectResult

  """
  Lookup a list of projects by their slug
  """
  cloudProjectsBySlugs(
    """
    A list of Project slugs
    """
    slugs: [String!]!
  ): [CloudProjectResult]

  """
  Gets a set of specs on a given project and branch
  """
  cloudSpecByPath(
    """
    Slug of the project to which the set of specs belong
    """
    projectSlug: String!

    """
    The spec path to find
    """
    specPath: String!
  ): CloudProjectSpecResult

  """
  A user within the Cypress Cloud
  """
  cloudViewer: CloudUser

  """
  Defines the suggested polling intervals for various schema resources
  """
  pollingIntervals: CloudPollingIntervals
}

"""
Possible check status of the instances run
"""
enum RunInstanceStatusEnum {
  CANCELLED
  ERRORED
  FAILED
  NOTESTS
  PASSED
  RUNNING
  TIMEDOUT
  UNCLAIMED
}

"""
Aggregate data from multiple groups for a spec run
"""
type SpecDataAggregate {
  """
  Maximum value in the groups
  """
  max: Int

  """
  Minimum value in the groups
  """
  min: Int
}

"""
A run was hidden because it was over the usage limit
"""
type UsageLimitExceeded {
  """
  The number of tests allowed per month
  """
  monthlyTests: Int
}
