"""
Requires that exactly one field must be supplied and that field must not be `null`.
"""
directive @oneOf on INPUT_OBJECT

"""
An account represents an organization.
"""
type Account {
  """
  Find an alert source by id or external identifier.
  """
  alertSource(
    """
    Specifies the input needed to find an alert source with external information.
    """
    externalIdentifier: AlertSourceExternalIdentifier

    """
    The id of the alert source.
    """
    id: ID
  ): AlertSource!

  """
  List all the alert sources for your account.
  """
  alertSources(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): AlertSourceConnection!

  """
  The default repo path used to fetch API Docs for a service.
  """
  apiDocsDefaultPath: String!

  """
  Represents a collection of API tokens
  """
  apiTokens: [ApiToken!]!

  """
  Find a campaign by id.
  """
  campaign(
    """
    The id of the campaign.
    """
    id: ID!
  ): Campaign

  """
  Find a list of campaigns on the account, filterable by different properties.
  """
  campaigns(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    The IDs of campaigns to fetch.
    """
    campaignIds: [ID!]

    """
    The logical operator to be used in conjunction with multiple filters (requires filters to be supplied).
    """
    connective: ConnectiveEnum = and

    """
    A list of filters to use when querying campaigns data.
    """
    filter: [CampaignFilterInput!]

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    The ID of the service which should be associated to the fetched campaigns.
    """
    serviceId: ID

    """
    The field and direction to order the resulting campaigns by.
    """
    sortBy: CampaignSortEnum

    """
    The ID of the user who belongs to the teams that own the campaigns.
    """
    userId: ID
  ): CampaignConnection!

  """
  Find a category by id.
  """
  category(
    """
    The unique identifier for the category.
    """
    id: ID!
  ): Category

  """
  Find a check by id.
  """
  check(
    """
    The id of the check.
    """
    id: ID!
  ): Check

  """
  Find a code issue on your account.
  """
  codeIssue(id: ID!): CodeIssue

  """
  Find a code issue project on your account.
  """
  codeIssueProject(id: ID!): CodeIssueProject

  """
  Find a list of code issue projects.
  """
  codeIssueProjects(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CodeIssueProjectConnection

  """
  Find a component type defined on your account.
  """
  componentType(input: IdentifierInput!): ComponentType

  """
  List of all the component types defined on your account.
  """
  componentTypes(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): ComponentTypeConnection!

  """
  Find OpsLevel config as code definitions.
  """
  configFile(
    """
    The unique identifier for the resource you wish to fetch the OpsLevel config for.
    """
    id: ID!
  ): ConfigFile

  """
  Find an external action by ID or alias.
  """
  customActionsExternalAction(input: IdentifierInput!): CustomActionsExternalAction!

  """
  The external actions that can be triggered by custom actions.
  """
  customActionsExternalActions(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CustomActionsExternalActionsConnection!

  """
  List all Custom Action templates for your account.
  """
  customActionsTemplates: [CustomActionsTemplate!]!

  """
  Find a Custom Action Trigger Definition by ID or alias.
  """
  customActionsTriggerDefinition(input: IdentifierInput!): CustomActionsTriggerDefinition

  """
  List all Custom Action Trigger Definitions for your account.
  """
  customActionsTriggerDefinitions(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CustomActionsTriggerDefinitionConnection!

  """
  Find a Custom Action Trigger Event by ID.
  """
  customActionsTriggerEvent(
    """
    The ID of the trigger definition Event.
    """
    id: ID!
  ): CustomActionsTriggerEvent

  """
  List all Custom Action Trigger Events for your account.
  """
  customActionsTriggerEvents(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CustomActionsTriggerEventConnection!

  """
  List of all deploys for a given service and environment.
  """
  deploys(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    The point in time you wish to fetch deploys that happened before.
    """
    end: ISO8601DateTime!

    """
    The environments you wish to fetch deploys for.
    """
    environments: [String!]

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    The id of the service you wish to fetch deploys for.
    """
    serviceId: IdentifierInput

    """
    The point in time you wish to fetch deploys that happened after.
    """
    start: ISO8601DateTime!

    """
    List of deploy statuses to filter for.
    """
    statuses: [DeployStatusEnum!]
  ): DeployConnection!

  """
  Find a document by id.
  """
  document(
    """
    The ID of the Document.
    """
    id: ID!
  ): Document

  """
  Find a list of documents on the account, filterable by different properties.
  """
  documents(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    The search term for the documents.
    """
    searchTerm: String
  ): DocumentConnection!

  """
  Find a Domain on your account.
  """
  domain(
    """
    Specifies the input fields used to identify a domain. Exactly one field should be provided.
    """
    input: IdentifierInput!
  ): Domain

  """
  List of Domains for your account.
  """
  domains(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): DomainConnection

  """
  Export an object as YAML.
  """
  exportObject(
    """
    The ID of the object to export.
    """
    id: ID!
  ): ExportConfigFilePayload!

  """
  Find a filter by id.
  """
  filter(
    """
    The unique identifier for the filter.
    """
    id: ID!
  ): Filter

  """
  List all filters for your account.
  """
  filters(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    The search term for the filters.
    """
    searchTerm: String
  ): FilterConnection

  """
  Find a group by its id or alias.
  """
  group(
    """
    The human-friendly, unique identifier for the resource.
    """
    alias: String

    """
    The id of the resource.
    """
    id: ID
  ): Group

  """
  List all groups for your account.
  """
  groups(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): GroupConnection!

  """
  The unique identifier for the account.
  """
  id: ID!

  """
  An Infrastructure Resource.
  """
  infrastructureResource(
    """
    Specifies the input fields used to identify an infrastructure resource. Exactly one field should be provided.
    """
    input: IdentifierInput!
  ): InfrastructureResource

  """
  A list of Infrastructure Resource schemas.
  """
  infrastructureResourceSchemas(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): InfrastructureResourceSchemaConnection

  """
  A list of Infrastructure Resources.
  """
  infrastructureResources(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): InfrastructureResourceConnection

  """
  Find an integration by id.
  """
  integration(
    """
    The unique identifier for the integration.
    """
    id: ID!
  ): Integration

  """
  List of all Integrations for your account.
  """
  integrations(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    Filter by integration `type` field.
    """
    type: String
  ): IntegrationConnection!

  """
  Find the latest check result for a given service and check.
  """
  latestCheckResult(
    """
    The id of the check.
    """
    checkId: ID!

    """
    Specifies the input fields used to identify a service.
    """
    service: IdentifierInput!
  ): CheckResult @deprecated(reason: "`latestCheckResult` is now deprecated. Please, use `ServiceHealthReport.latestCheckResults` instead.")

  """
  Find a level by id.
  """
  level(
    """
    The unique identifier for the level.
    """
    id: ID!
  ): Level

  """
  List all lifecycles for your account.
  """
  lifecycles: [Lifecycle!]!

  """
  The display name of the account.
  """
  name: String!

  """
  List all payloads for your account.
  """
  payloads(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    A list of filters to use while searching for payloads.
    """
    filter: [PayloadFilterInput!]

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    The field and direction to order the resulting payloads by.
    """
    sortBy: PayloadSortEnum
  ): PayloadConnection!

  """
  Find a property assigned to a service on your account.
  """
  property(
    definition: IdentifierInput!
    owner: IdentifierInput!

    """
    The type of the entity that the property is assigned to. Defaults to
    `COMPONENT` if needed to disambiguate the provided `owner`.
    """
    ownerType: PropertyOwnerTypeEnum
  ): Property

  """
  Find a custom property defined for services on your account.
  """
  propertyDefinition(input: IdentifierInput!): PropertyDefinition

  """
  List of all the custom properties defined for services on your account.
  """
  propertyDefinitions(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): PropertyDefinitionConnection!

  """
  Retrieve all SAML identity providers configured for the current account.
  """
  providers: [Provider!]

  """
  Find a relationship by its id.
  """
  relationship(id: ID!): RelationshipType

  """
  The possible relationship types.
  """
  relationshipAllowedTypes: [ComponentType!]!

  """
  Find a relationship definition on your account.
  """
  relationshipDefinition(
    componentType: IdentifierInput
    input: IdentifierInput!

    """
    The catalog item that the relationship definition is associated to.
    """
    resource: ID
  ): RelationshipDefinitionType

  """
  List of all the relationship definitions on your account.
  """
  relationshipDefinitions(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    The component type that the relationship definitions are associated to.
    """
    componentType: IdentifierInput

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    The catalog item that the relationship definitions have as a source.
    """
    resource: ID

    """
    Search term to filter relationship definitions by name or component type name
    """
    search: String
  ): RelationshipDefinitionConnection!

  """
  List all repositories for your account.
  """
  repositories(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    Filter by repository tier. You can find valid tiers on your OpsLevel account page.
    """
    tierAlias: String

    """
    Filter by repository visibility.
    """
    visible: Boolean
  ): RepositoryConnection!

  """
  Find a repository by its id.
  """
  repository(
    """
    A human-friendly, unique identifier for the service.
    """
    alias: String

    """
    The unique identifier for the repository.
    """
    id: ID
  ): Repository

  """
  Find the rubric for an account. This also groups rubric-related data like levels and categories.
  """
  rubric: Rubric!

  """
  A scorecard represents an additional maturity rubric.
  """
  scorecard(
    """
    Specifies the input fields used to identify a scorecard. Exactly one field should be provided.
    """
    input: IdentifierInput!
  ): Scorecard

  """
  A scorecard represents an additional maturity rubric.
  """
  scorecards(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    The field and direction to order the resulting scorecards by.
    """
    sortBy: ScorecardSortEnum
  ): ScorecardConnection!

  """
  Get metadata for a single Secret.
  """
  secretsVaultsSecret(input: IdentifierInput!): Secret

  """
  List all Secrets for your account.
  """
  secretsVaultsSecrets(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    The field and direction to order the resulting secrets by.
    """
    sortBy: VaultSecretsSortEnum
  ): SecretsVaultsSecretsConnection!

  """
  Find a service by its id or alias.
  """
  service(
    """
    A human-friendly, unique identifier for the service.
    """
    alias: String

    """
    The unique identifier for the service.
    """
    id: ID
  ): Service

  """
  The notification settings for service level changes on your account
  """
  serviceLevelNotificationSettings: ServiceLevelNotifications!

  """
  Find a list of components by many properties.
  """
  services(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    The component category to filter for (possible values: 'default' and 'infrastructure').
    """
    componentCategory: String

    """
    When set, excludes components that are already explicit targets of this autopilot initiative.
    """
    excludeAutopilotInitiativeTargets: IdentifierInput

    """
    A list of filters to use when listing components.
    """
    filter: [ServiceFilterInput!]

    """
    The identifier for an existing filter to use when listing components.
    """
    filterIdentifier: IdentifierInput

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    The primary software development framework that the service uses.
    """
    framework: String

    """
    The primary programming language that the service is written in.
    """
    language: String

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    The alias of the lifecycle stage of the component.
    """
    lifecycleAlias: String

    """
    The display name of the service.
    """
    name: String

    """
    The alias of the team that owns the component.
    """
    ownerAlias: String

    """
    A product is an application that your end user interacts with. Multiple
    services can work together to power a single product.
    """
    product: String

    """
    The search term for the component.
    """
    searchTerm: String

    """
    The field and direction to order the resulting components by.
    """
    sortBy: ServiceSortEnum

    """
    A specific tag that exists on the component.
    """
    tag: TagArgs

    """
    The alias of the software tier that the component belongs to.
    """
    tierAlias: String

    """
    The component type to filter for.
    """
    type: IdentifierInput
  ): ServiceConnection!

  """
  Find a System on your account.
  """
  system(
    """
    Specifies the input fields used to identify a system. Exactly one field should be provided.
    """
    input: IdentifierInput!
  ): System

  """
  List of Systems for your account.
  """
  systems(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): SystemConnection

  """
  Returns the keys that set relationships when imported from AWS.
  """
  tagRelationshipKeys: TagRelationshipKeys!

  """
  Find a team by its id or alias.
  """
  team(
    """
    The human-friendly, unique identifier for the team.
    """
    alias: String

    """
    The unique identifier for the team.
    """
    id: ID
  ): Team

  """
  Find a team property defined for teams on your account.
  """
  teamPropertyDefinition(input: IdentifierInput!): TeamPropertyDefinition

  """
  List of all the properties defined for teams on your account.
  """
  teamPropertyDefinitions(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TeamPropertyDefinitionConnection!

  """
  Find a list of teams by many properties.
  """
  teams(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    The email of the user who manages the team.
    """
    managerEmail: String

    """
    The team's display name.
    """
    name: String

    """
    Only return teams with the specified parent team, provide a null value to return only root teams.
    """
    parentTeam: IdentifierInput

    """
    The search term for teams.
    """
    searchTerm: String
  ): TeamConnection!

  """
  List all tiers for your account.
  """
  tiers: [Tier!]!

  """
  Find a user by its id.
  """
  user(
    """
    The unique identifier for the user.
    """
    id: ID @deprecated(reason: "Replaced by input.")

    """
    The email address or ID of the user to find.
    """
    input: UserIdentifierInput
  ): User

  """
  Find a list of users by many properties.
  """
  users(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    A list of filters to use when listing users.
    """
    filter: [UsersFilterInput!]

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): UserConnection!
}

"""
An alert source that is currently integrated and belongs to the account.
"""
type AlertSource {
  """
  A list of AlertSourceService objects that connect Alert Sources and their associated Services
  """
  alertSourceServices(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): AlertSourceServiceV2Connection

  """
  The description of the alert source.
  """
  description: String

  """
  The external id of the alert.
  """
  externalId: String!

  """
  The id of the alert source.
  """
  id: ID!

  """
  The integration of the alert source.
  """
  integration: Integration

  """
  The metadata of the alert source.
  """
  metadata: String

  """
  The name of the alert source.
  """
  name: String!

  """
  AlertSourceService connections. Edges between AlertSource and Service that contain the status.
  """
  services(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): AlertSourceServiceConnection @deprecated(reason: "Please use alert_source_services.")

  """
  The type of the alert.
  """
  type: AlertSourceTypeEnum!

  """
  The url to the alert source.
  """
  url: String
}

"""
The connection type for AlertSource.
"""
type AlertSourceConnection {
  """
  A list of edges.
  """
  edges: [AlertSourceEdge]

  """
  The number of alert sources matching the query filter parameter associated with your account
  """
  filteredCount: Int!

  """
  A list of nodes.
  """
  nodes: [AlertSource]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type AlertSourceEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: AlertSource
}

"""
Specifies the input needed to find an alert source with external information.
"""
input AlertSourceExternalIdentifier {
  """
  The external id of the alert.
  """
  externalId: String!

  """
  The type of the alert.
  """
  type: AlertSourceTypeEnum!
}

"""
Input fields for the mutations to manage Alert Sources
"""
input AlertSourceInput {
  """
  The description of the alert source.
  """
  description: String

  """
  The alert source identifier
  """
  identifier: ExternalResourceIdentifierInput!

  """
  The name of the alert source.
  """
  name: String

  """
  The url of the alert source.
  """
  url: String
}

"""
Return type for the mutations to manage alert sources.
"""
type AlertSourcePayload {
  """
  An alert source that was modified.
  """
  alertSource: AlertSource

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
An alert source that is connected with a service.
"""
type AlertSourceService {
  """
  The alert source that is mapped to a service
  """
  alertSource: AlertSource!

  """
  id of the alert_source_service mapping.
  """
  id: ID!

  """
  The service the alert source maps to.
  """
  service: Service!

  """
  The status of the alert source.
  """
  status: AlertSourceStatusTypeEnum!
}

"""
The connection type for AlertSource.
"""
type AlertSourceServiceConnection {
  """
  A list of edges.
  """
  edges: [AlertSourceServiceEdge]

  """
  A list of nodes.
  """
  nodes: [AlertSource]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
Specifies the input used for attaching an alert source to a service.
"""
input AlertSourceServiceCreateInput {
  """
  Specifies the input needed to find an alert source with external information.
  """
  alertSourceExternalIdentifier: AlertSourceExternalIdentifier

  """
  Specifies the input needed to find an alert source with external information.
  """
  alertSourceId: ID

  """
  The service that the alert source will be attached to.
  """
  service: IdentifierInput!
}

"""
Return type for the `alertSourceServiceCreate` mutation.
"""
type AlertSourceServiceCreatePayload {
  """
  An alert source service representing a connection between a service and an alert source.
  """
  alertSourceService: AlertSourceService

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Specifies the input fields used in the `alertSourceServiceDelete` mutation.
"""
input AlertSourceServiceDeleteInput {
  """
  The id of the alert source service to be deleted.
  """
  id: ID!
}

"""
Return type for the `alertSourceServiceDelete` mutation.
"""
type AlertSourceServiceDeletePayload {
  """
  The id of the deleted alert source service.
  """
  deletedAlertSourceServiceId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
An edge in a connection.
"""
type AlertSourceServiceEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The id of the edge.
  """
  id: ID!

  """
  Whether or not this alert source connection is managed by an external resource.
  """
  locked: Boolean!

  """
  The url of the external resource locking this alert source connection.
  """
  lockerUrl: String

  """
  The item at the end of the edge.
  """
  node: AlertSource

  """
  The status of the alert source for the given service.
  """
  status: String
}

"""
The connection type for AlertSourceService.
"""
type AlertSourceServiceV2Connection {
  """
  A list of edges.
  """
  edges: [AlertSourceServiceV2Edge]

  """
  A list of nodes.
  """
  nodes: [AlertSourceService]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type AlertSourceServiceV2Edge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: AlertSourceService
}

"""
The monitor status level.
"""
enum AlertSourceStatusTypeEnum {
  """
  Monitor is reporting an alert.
  """
  alert

  """
  Monitor currently being updated.
  """
  fetching_data

  """
  No data received yet. Ensure your monitors are configured correctly.
  """
  no_data

  """
  Monitor is not reporting any warnings or alerts.
  """
  ok

  """
  Monitor is reporting a warning.
  """
  warn
}

"""
Specifies the input fields used in the `alertSourceStatusUpdate` mutation.
"""
input AlertSourceStatusUpdateInput {
  """
  The alert source to be updated.
  """
  alertSource: ExternalResourceIdentifierInput!

  """
  The new status of the alert source.
  """
  status: AlertSourceStatusTypeEnum!
}

"""
The type of the alert source.
"""
enum AlertSourceTypeEnum {
  """
  A custom alert source (aka service)
  """
  custom

  """
  A Datadog alert source (aka monitor).
  """
  datadog

  """
  An FireHydrant alert source (aka service)
  """
  fire_hydrant

  """
  An incident.io alert source (aka service)
  """
  incident_io

  """
  A New Relic alert source (aka service)
  """
  new_relic

  """
  An Opsgenie alert source (aka service)
  """
  opsgenie

  """
  A PagerDuty alert source (aka service).
  """
  pagerduty
}

type AlertSourceUsageCheck implements Check {
  """
  The condition that the alert source name should satisfy to be evaluated.
  """
  alertSourceNamePredicate: Predicate

  """
  The type of the alert source.
  """
  alertSourceType: AlertSourceTypeEnum

  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
The input for the `aliasCreate` mutation.
"""
input AliasCreateInput {
  """
  The alias you wish to create.
  """
  alias: String!

  """
  The ID of the resource you want to create the alias on. Services, teams, groups, systems, and domains are supported.
  """
  ownerId: String!
}

"""
Return type for the `aliasCreate` mutation.
"""
type AliasCreatePayload {
  """
  All of the aliases attached to the resource.
  """
  aliases: [String!]

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The ID of the resource that had an alias attached.
  """
  ownerId: String
}

"""
The input for the `aliasDelete` mutation.
"""
input AliasDeleteInput {
  """
  The alias you wish to delete.
  """
  alias: String!

  """
  The resource the alias you wish to delete belongs to.
  """
  ownerType: AliasOwnerTypeEnum!
}

"""
Return type for the `aliasDelete` mutation.
"""
type AliasDeletePayload {
  """
  The deleted alias.
  """
  deletedAlias: String

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
The owner type an alias is assigned to.
"""
enum AliasOwnerTypeEnum {
  """
  Aliases that are assigned to domains.
  """
  domain

  """
  Aliases that are assigned to groups.
  """
  group

  """
  Aliases that are assigned to infrastructure resources.
  """
  infrastructure_resource

  """
  Aliases that are assigned to scorecards.
  """
  scorecard

  """
  Aliases that are assigned to services.
  """
  service

  """
  Aliases that are assigned to systems.
  """
  system

  """
  Aliases that are assigned to teams.
  """
  team
}

"""
The connection type for Group.
"""
type AncestorGroupsConnection {
  """
  A list of edges.
  """
  edges: [AncestorGroupsEdge]

  """
  A list of nodes.
  """
  nodes: [Group]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type AncestorGroupsEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Group
}

type ApiDocIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
The source used to determine the preferred API document.
"""
enum ApiDocumentSourceEnum {
  """
  Use the document that was pulled by OpsLevel via a repo.
  """
  PULL

  """
  Use the document that was pushed to OpsLevel via an API Docs integration.
  """
  PUSH
}

"""
An individual API token
"""
type ApiToken {
  """
  Timestamp when token was generated (ISO 8601 format)
  """
  createdAt: ISO8601DateTime!

  """
  User defined label for token identification
  """
  description: String

  """
  Unique Api Token Identifier
  """
  id: ID!

  """
  User or Integration that created this token
  """
  owner: User @deprecated(reason: "Use tokenOwner instead")

  """
  Full token secret
  """
  raw: String

  """
  last 4 characters of the token
  """
  rawPreview: String

  """
  Indicating if it is read only
  """
  readOnly: Boolean!

  """
  The owner of this token, either a User or an Integration
  """
  tokenOwner: ApiTokenOwner
}

"""
Required fields for token creation
"""
input ApiTokenCreateInput {
  description: String!
  owner: ID
  readOnly: Boolean!
}

"""
Payload for creating an API token
"""
type ApiTokenCreatePayload {
  """
  Newly generated token with all fields
  """
  apiToken: ApiToken

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
The owner of an API token, either a User or an Integration
"""
union ApiTokenOwner = ScimIntegration | User

"""
Config for approval.
"""
type ApprovalConfig {
  """
  Flag indicating approval is required.
  """
  approvalRequired: Boolean!

  """
  Teams that can approve.
  """
  teams: [Team!]!

  """
  Users that can approve.
  """
  users: [User!]!
}

"""
Config for approval.
"""
input ApprovalConfigInput {
  """
  Flag indicating approval is required.
  """
  approvalRequired: Boolean

  """
  Teams that can approve.
  """
  teams: [IdentifierInput!]

  """
  Users that can approve.
  """
  users: [UserIdentifierInput!]
}

"""
The set of possible outcomes for an approval decision.
"""
enum ApprovalDecisionEnum {
  APPROVED
  DENIED
}

"""
The result details of an approvable resource being approved or denied.
"""
type ApprovalResult {
  """
  The actor that performed the approval/denial.
  """
  actor: Approver

  """
  The comment associated with the approval/denial.
  """
  comment: String

  """
  The time the resource was approved.
  """
  decidedAt: ISO8601DateTime!

  """
  The current decision status of the approval process.
  """
  status: ApprovalDecisionEnum!
}

"""
The actor responsible for the approval/denial of an approvable resource.
"""
union Approver = User

type ArgocdDeployIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

type AwsIntegration implements HasEtlConfig & Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  All of the aliases attached to the integration.
  """
  aliases: [String!]!

  """
  Allow tags imported from AWS to override ownership set in OpsLevel directly.
  """
  awsTagsOverrideOwnership: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The External ID defined in the trust relationship to ensure OpsLevel is the
  only third party assuming this role (See https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html
  for more details).
  """
  externalId: String!

  """
  The configured definition for extracting data from inbound webhooks or HTTP polling.
  """
  extractDefinition: YAML

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The IAM role OpsLevel uses in order to access the AWS account.
  """
  iamRole: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  An array of tag keys used to associate ownership from an integration. Max 5.
  """
  ownershipTagKeys: [String!]!

  """
  Overrides the AWS region(s) that will be synchronized by this integration.
  """
  regionOverride: [String!]!

  """
  Set of keys used to generate relationships from the tags imported by this integration.
  """
  tagRelationshipKeys: TagRelationshipKeys!

  """
  The configured definition for transforming extracted data from inbound webhooks or HTTP polling to another resource.
  """
  transformDefinition: YAML

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
Specifies the input fields used to create and update an AWS integration.
"""
input AwsIntegrationInput {
  """
  Allow tags imported from AWS to override ownership set in OpsLevel directly.
  """
  awsTagsOverrideOwnership: Boolean

  """
  The External ID defined in the trust relationship to ensure OpsLevel is the
  only third party assuming this role (See https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html
  for more details).
  """
  externalId: String

  """
  The IAM role OpsLevel uses in order to access the AWS account.
  """
  iamRole: String

  """
  The name of the integration.
  """
  name: String

  """
  An array of tag keys used to associate ownership from an integration. Max 5.
  """
  ownershipTagKeys: [String!]

  """
  Overrides the AWS region(s) that will be synchronized by this integration.
  """
  regionOverride: [String!]
}

type AzureDevopsIntegration implements Integration {
  """
  Errors detected when integrating with the AzureDevOps account.
  """
  accountErrors: [String!]!

  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  Errors detected when attempting to read AzureDevOps projects.
  """
  permissionsErrors: [AzureDevopsPermissionError!]!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

type AzureDevopsPermissionError {
  """
  The name of the object that the error was encountered on.
  """
  name: String!

  """
  The permissions that are missing.
  """
  permissions: [String!]

  """
  The type of the object that the error was encountered on.
  """
  type: String!
}

type AzureResourcesIntegration implements HasEtlConfig & Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  All of the aliases attached to the integration.
  """
  aliases: [String!]!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The configured definition for extracting data from inbound webhooks or HTTP polling.
  """
  extractDefinition: YAML

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  An array of tag keys used to associate ownership from an integration. Max 5.
  """
  ownershipTagKeys: [String!]!

  """
  The subscription OpsLevel uses to access the Azure account.
  """
  subscriptionId: String!

  """
  Set of keys used to generate relationships from the tags imported by this integration.
  """
  tagRelationshipKeys: TagRelationshipKeys!

  """
  Allow tags imported from Azure to override ownership set in OpsLevel directly.
  """
  tagsOverrideOwnership: Boolean!

  """
  The tenant OpsLevel uses to access the Azure account.
  """
  tenantId: String!

  """
  The configured definition for transforming extracted data from inbound webhooks or HTTP polling to another resource.
  """
  transformDefinition: YAML

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
Specifies the input fields used to create and update an Azure resources integration.
"""
input AzureResourcesIntegrationInput {
  """
  The client OpsLevel uses to access the Azure account.
  """
  clientId: String

  """
  The client secret OpsLevel uses to access the Azure account.
  """
  clientSecret: String

  """
  The name of the integration.
  """
  name: String

  """
  An array of tag keys used to associate ownership from an integration. Max 5.
  """
  ownershipTagKeys: [String!]

  """
  The subscription OpsLevel uses to access the Azure account.
  """
  subscriptionId: String

  """
  Allow tags imported from Azure to override ownership set in OpsLevel directly.
  """
  tagsOverrideOwnership: Boolean

  """
  The tenant OpsLevel uses to access the Azure account.
  """
  tenantId: String
}

"""
Operations that can be used on filters.
"""
enum BasicTypeEnum {
  """
  Does not equal a specific value.
  """
  does_not_equal

  """
  Equals a specific value.
  """
  equals
}

type BitbucketIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
A campaign is a fixed time initiative that allows you to attach checks to and progress through towards completion.
"""
type Campaign {
  """
  A summary of check results on the campaign.
  """
  checkStats: Stats

  """
  The checks of the campaign.
  """
  checks(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CheckConnection

  """
  The date the campaign ended.
  """
  endedDate: ISO8601DateTime

  """
  The filter that the campaign belongs to.
  """
  filter: Filter

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The id of the campaign.
  """
  id: ID!

  """
  The name of the campaign.
  """
  name: String!

  """
  The team that owns the campaign.
  """
  owner: Team

  """
  The project brief of the campaign.
  """
  projectBrief: String

  """
  The raw unsanitized project brief of the campaign.
  """
  rawProjectBrief: String

  """
  Configuration of an optional campaign reminder.
  """
  reminder: CampaignReminder

  """
  A summary of services that completed the campaign.
  """
  serviceStats: Stats

  """
  The services impacted by the campaign (through the campaign filter)
  """
  services(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    The search term for the service.
    """
    searchTerm: String

    """
    The field and direction to order the resulting services by.
    """
    sortBy: ServiceSortEnum
  ): ServiceConnection!

  """
  The date the campaign will start.
  """
  startDate: ISO8601DateTime

  """
  The status of the campaign.
  """
  status: CampaignStatusEnum!

  """
  The target date the campaign should end.
  """
  targetDate: ISO8601DateTime

  """
  The teams impacted by the campaign (through services).
  """
  teams(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Filter teams depending if all their services has completed a campaign or not.
    """
    campaignProgress: CampaignServiceStatusEnum

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Filter teams depending if they have contact or not.
    """
    hasContact: Boolean

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CampaignTeamConnection!
}

"""
The connection type for Campaign.
"""
type CampaignConnection {
  """
  A list of edges.
  """
  edges: [CampaignEdge]

  """
  A list of nodes.
  """
  nodes: [Campaign]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
Specifies the input fields used to create a campaign.
"""
input CampaignCreateInput {
  """
  The IDs of the existing rubric checks to be copied.
  """
  checkIdsToCopy: [ID!]

  """
  The ID of the filter applied to this campaign.
  """
  filterId: ID

  """
  The name of the campaign.
  """
  name: String!

  """
  The ID of the team that owns this campaigns.
  """
  ownerId: ID!

  """
  The project brief of the campaign.
  """
  projectBrief: String

  """
  Configuration of an optional campaign reminder.
  """
  reminder: CampaignReminderInput
}

"""
The return type of a `campaignCreate` mutation.
"""
type CampaignCreatePayload {
  """
  A campaign is a fixed time initiative that allows you to attach checks to and progress through towards completion.
  """
  campaign: Campaign

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
An edge in a connection.
"""
type CampaignEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Campaign
}

"""
Specifies the input fields used to end a campaign and promote checks to the rubric.
"""
input CampaignEndInput {
  """
  The list of campaign checks to be promoted to the rubric.
  """
  checksToPromote: [CheckToPromoteInput!]

  """
  he ID of the campaign to be ended.
  """
  id: ID!
}

"""
The return type of a `campaignEnd` mutation.
"""
type CampaignEndPayload {
  """
  A campaign is a fixed time initiative that allows you to attach checks to and progress through towards completion.
  """
  campaign: Campaign

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The list of checks that were promoted to the rubric.
  """
  promotedChecks: [Check!]
}

"""
Fields that can be used as part of filter for campaigns.
"""
enum CampaignFilterEnum {
  """
  Filter by `id` of campaign.
  """
  id

  """
  Filter by campaign owner.
  """
  owner

  """
  Filter by campaign status.
  """
  status
}

"""
Input to be used to filter campaigns.
"""
input CampaignFilterInput {
  """
  Value to be filtered.
  """
  arg: String

  """
  The logical operator to be used in conjunction with multiple filters (requires predicates to be supplied).
  """
  connective: ConnectiveEnum = or

  """
  Field to be filtered.
  """
  key: CampaignFilterEnum

  """
  A list of campaign filter input.
  """
  predicates: [CampaignFilterInput!]

  """
  Type of operation to be applied to value on the field.
  """
  type: BasicTypeEnum = equals
}

"""
Configuration of an optional campaign reminder.
"""
type CampaignReminder {
  """
  The communication channels through which the reminder will be delivered.
  """
  channels: [CampaignReminderChannelEnum!]!

  """
  A list of weekdays on which the reminders will be delivered. Only available with weekly frequency.
  """
  daysOfWeek: [DayOfWeekEnum!]

  """
  The name of the Slack channel that will be notified if a team doesn't have a default Slack contact.
  """
  defaultSlackChannel: String

  """
  The interval at which reminders will be delivered.
  """
  frequency: Int!

  """
  The time unit of the value in the 'frequency' field.
  """
  frequencyUnit: CampaignReminderFrequencyUnitEnum!

  """
  The message that will be delivered as the reminder.
  """
  message: String

  """
  The point in time at which the next reminder will be delivered based on the current configuration.
  """
  nextOccurrence: ISO8601DateTime

  """
  The time of day at which the reminder will be delivered. Format: "HH:MM"
  """
  timeOfDay: String!

  """
  The timezone at which the timeOfDay field is evaluated (in IANA format (e.g. "America/Chicago")).
  """
  timezone: String!
}

"""
The possible communication channels through which a campaign reminder can be delivered.
"""
enum CampaignReminderChannelEnum {
  """
  A system for sending messages to one or more recipients via telecommunications
  links between computers using dedicated software or a web-based service.
  """
  email

  """
  A proprietary business communication platform developed by Microsoft.
  """
  microsoft_teams

  """
  A cloud-based team communication platform developed by Slack Technologies.
  """
  slack
}

"""
Possible time units for the frequency at which campaign reminders are delivered.
"""
enum CampaignReminderFrequencyUnitEnum {
  """
  A period of twenty-four hours as a unit of time, reckoned from one midnight to
  the next, corresponding to a rotation of the earth on its axis.
  """
  day

  """
  Each of the twelve named periods into which a year is divided.
  """
  month

  """
  A period of seven days.
  """
  week
}

"""
Configuration of an optional campaign reminder.
"""
input CampaignReminderInput {
  """
  The communication channels through which the reminder will be delivered.
  """
  channels: [CampaignReminderChannelEnum!]

  """
  A list of weekdays on which the reminders will be delivered. Only available with weekly frequency.
  """
  daysOfWeek: [DayOfWeekEnum!]

  """
  The name of the Slack channel that will be notified if a team doesn't have a default Slack contact.
  """
  defaultSlackChannel: String

  """
  The interval at which reminders will be delivered.
  """
  frequency: Int!

  """
  The time unit of the value in the 'frequency' field.
  """
  frequencyUnit: CampaignReminderFrequencyUnitEnum!

  """
  The message that will be delivered as the reminder.
  """
  message: String

  """
  The time of day at which the reminder will be delivered. Format: "HH:MM"
  """
  timeOfDay: String!

  """
  The timezone at which the timeOfDay field is evaluated (in IANA format (e.g. "America/Chicago")).
  """
  timezone: String!
}

"""
Type/Format of the notification.
"""
enum CampaignReminderTypeEnum {
  """
  Notification will be sent via email.
  """
  email

  """
  Notification will be sent via Microsoft Teams.
  """
  microsoft_teams

  """
  Notification will be sent via Slack.
  """
  slack
}

"""
Specifies the input fields used to update a campaign schedule.
"""
input CampaignScheduleUpdateInput {
  """
  The id of the campaign to be updated.
  """
  id: ID!

  """
  The date the campaign will start.
  """
  startDate: ISO8601DateTime!

  """
  The target date the campaign should end.
  """
  targetDate: ISO8601DateTime!
}

"""
The return type of a `campaignScheduleUpdate` mutation.
"""
type CampaignScheduleUpdatePayload {
  """
  A campaign is a fixed time initiative that allows you to attach checks to and progress through towards completion.
  """
  campaign: Campaign

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Specifies the input fields used to coordinate sending notifications to team members about a campaign.
"""
input CampaignSendReminderInput {
  """
  A custom message to include in the notification.
  """
  customMessage: String

  """
  The ID of the campaign about which to notify team members.
  """
  id: ID!

  """
  The list of the types of notifications to be sent.
  """
  reminderTypes: [CampaignReminderTypeEnum!]!

  """
  The list of team ids to receive the notifications.
  """
  teamIds: [ID!]
}

"""
Summarizes list of teams returned from attempt to send reminders for their failed campaigns.
"""
type CampaignSendReminderOutcomeTeams {
  """
  The reminder type linked to the attempt at notifying the listed teams.
  """
  reminderType: CampaignReminderTypeEnum!

  """
  List of team_ids in this group of teams.
  """
  teamIds: [ID!]

  """
  Count of number of teams listed.
  """
  totalCount: Int!
}

"""
The return type of a `campaignSendReminder` mutation.
"""
type CampaignSendReminderPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  List and count of teams being notified, grouped by reminder type.
  """
  teamsBeingNotified: [CampaignSendReminderOutcomeTeams!]

  """
  Total count of teams being notified, across all reminder types.
  """
  teamsBeingNotifiedCount: Int!

  """
  List and count of teams missing required contact method, grouped by reminder type.
  """
  teamsMissingContactMethod: [CampaignSendReminderOutcomeTeams!]

  """
  Total count of teams that had a missing contact method from the required reminder types.
  """
  teamsMissingContactMethodCount: Int!
}

"""
Status of whether a service is passing all checks for a campaign or not.
"""
enum CampaignServiceStatusEnum {
  """
  Service is failing one or more checks in the campaign.
  """
  failing

  """
  Service is passing all the checks in the campaign.
  """
  passing
}

"""
Sort possibilities for campaigns.
"""
enum CampaignSortEnum {
  """
  Sort by number of `checks passing` ascending.
  """
  checks_passing_ASC

  """
  Sort by number of `checks passing` descending.
  """
  checks_passing_DESC

  """
  Sort by `endedDate` ascending.
  """
  ended_date_ASC

  """
  Sort by `endedDate` descending.
  """
  ended_date_DESC

  """
  Sort by `filter` ascending.
  """
  filter_ASC

  """
  Sort by `filter` descending.
  """
  filter_DESC

  """
  Sort by `name` ascending.
  """
  name_ASC

  """
  Sort by `name` descending.
  """
  name_DESC

  """
  Sort by `owner` ascending.
  """
  owner_ASC

  """
  Sort by `owner` descending.
  """
  owner_DESC

  """
  Sort by number of `services complete` ascending.
  """
  services_complete_ASC

  """
  Sort by number of `services complete` descending.
  """
  services_complete_DESC

  """
  Sort by `startDate` ascending.
  """
  start_date_ASC

  """
  Sort by `startDate` descending.
  """
  start_date_DESC

  """
  Sort by `status` ascending.
  """
  status_ASC

  """
  Sort by `status` descending.
  """
  status_DESC

  """
  Sort by `targetDate` ascending.
  """
  target_date_ASC

  """
  Sort by `targetDate` descending.
  """
  target_date_DESC
}

"""
The campaign status.
"""
enum CampaignStatusEnum {
  """
  Campaign is delayed.
  """
  delayed

  """
  Campaign has been created but is not yet active.
  """
  draft

  """
  Campaign ended.
  """
  ended

  """
  Campaign is in progress.
  """
  in_progress

  """
  Campaign has been scheduled to begin in the future.
  """
  scheduled
}

"""
Team from the campaign context.
"""
type CampaignTeam {
  """
  The team impacted by the campaign.
  """
  team: Team!
}

"""
The connection type for CampaignTeam.
"""
type CampaignTeamConnection {
  """
  A list of edges.
  """
  edges: [CampaignTeamEdge]

  """
  A list of nodes.
  """
  nodes: [CampaignTeam]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type CampaignTeamEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: CampaignTeam
}

"""
Specifies the input fields used to unschedule a campaign.
"""
input CampaignUnscheduleInput {
  """
  The id of the campaign to be unscheduled.
  """
  id: ID!
}

"""
The return type of a `campaignUnschedule` mutation.
"""
type CampaignUnschedulePayload {
  """
  A campaign is a fixed time initiative that allows you to attach checks to and progress through towards completion.
  """
  campaign: Campaign

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Specifies the input fields used to update a campaign.
"""
input CampaignUpdateInput {
  """
  The ID of the filter applied to this campaign.
  """
  filterId: ID

  """
  The id of the campaign to be updated.
  """
  id: ID!

  """
  The name of the campaign.
  """
  name: String

  """
  The ID of the team that owns this campaigns.
  """
  ownerId: ID

  """
  The project brief of the campaign.
  """
  projectBrief: String

  """
  Configuration of an optional campaign reminder.
  """
  reminder: CampaignReminderInput
}

"""
The return type of a `campaignUpdate` mutation.
"""
type CampaignUpdatePayload {
  """
  A campaign is a fixed time initiative that allows you to attach checks to and progress through towards completion.
  """
  campaign: Campaign

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
A category is used to group related checks in a rubric.
"""
type Category {
  """
  The description of the category.
  """
  description: String

  """
  The unique identifier for the category.
  """
  id: ID!

  """
  The display name of the category.
  """
  name: String!
}

"""
The connection type for Category.
"""
type CategoryConnection {
  """
  A list of edges.
  """
  edges: [CategoryEdge]

  """
  A list of nodes.
  """
  nodes: [Category]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
Specifies the input fields used to create a category.
"""
input CategoryCreateInput {
  """
  The description of the category.
  """
  description: String

  """
  The display name of the category.
  """
  name: String!
}

"""
The return type of the `categoryCreate` mutation.
"""
type CategoryCreatePayload {
  """
  A category is used to group related checks in a rubric.
  """
  category: Category

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Specifies the input fields used to delete a category.
"""
input CategoryDeleteInput {
  """
  The id of the category to be deleted.
  """
  id: ID!
}

"""
The return type of the `categoryDelete` mutation.
"""
type CategoryDeletePayload {
  """
  The id of the deleted category.
  """
  deletedCategoryId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
An edge in a connection.
"""
type CategoryEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Category
}

"""
The level of a specific category.
"""
type CategoryLevel {
  """
  A category is used to group related checks in a rubric.
  """
  category: Category!

  """
  A performance rating that is used to grade your services against.
  """
  level: Level
}

"""
Specifies the input fields used to update a category.
"""
input CategoryUpdateInput {
  """
  The description of the category.
  """
  description: String

  """
  The id of the category to be updated.
  """
  id: ID!

  """
  The display name of the category.
  """
  name: String
}

"""
The return type of the `categoryUpdate` mutation.
"""
type CategoryUpdatePayload {
  """
  A category is used to group related checks in a rubric.
  """
  category: Category

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Checks allow you to monitor how your services are built and operated.
"""
interface Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
Specifies the input fields used to create an alert source usage check.
"""
input CheckAlertSourceUsageCreateInput {
  """
  The condition that the alert source name should satisfy to be evaluated.
  """
  alertSourceNamePredicate: PredicateInput

  """
  The type of the alert source.
  """
  alertSourceType: AlertSourceTypeEnum

  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to update an alert source usage check.
"""
input CheckAlertSourceUsageUpdateInput {
  """
  The condition that the alert source name should satisfy to be evaluated.
  """
  alertSourceNamePredicate: PredicateUpdateInput

  """
  The type of the alert source.
  """
  alertSourceType: AlertSourceTypeEnum

  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID
}

"""
The values allowed for the constraint type for the code issues check.
"""
enum CheckCodeIssueConstraintEnum {
  """
  The check will look for any code issues regardless of issue name.
  """
  any

  """
  The check will look for any code issues by name containing the issue name.
  """
  contains

  """
  The check will look for any code issues matching the issue name exactly.
  """
  exact
}

"""
Specifies the input fields used to create a code issue check.
"""
input CheckCodeIssueCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The type of constraint used in evaluation the code issues check.
  """
  constraint: CheckCodeIssueConstraintEnum!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The issue name used for code issue lookup.
  """
  issueName: String

  """
  The type of code issue to consider, generally in the format of 'source:type'.
  Possible values depend on the installed integrations.
  """
  issueType: [String!]

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The threshold count of code issues beyond which the check starts failing.
  """
  maxAllowed: Int

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID

  """
  True if this check should fail by default when no code issue projects are connected to the component.
  """
  requireProject: Boolean

  """
  The resolution time recommended by the reporting source of the code issue.
  """
  resolutionTime: CodeIssueResolutionTimeInput

  """
  The severity levels of the issue, generally in the form of 'source:severity'.
  Possible values depend on the installed integrations.
  """
  severity: [String!]
}

"""
Specifies the input fields used to update an existing code issue check.
"""
input CheckCodeIssueUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The type of constraint used in evaluation the code issues check.
  """
  constraint: CheckCodeIssueConstraintEnum!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The issue name used for code issue lookup.
  """
  issueName: String

  """
  The type of code issue to consider, generally in the format of 'source:type'.
  Possible values depend on the installed integrations.
  """
  issueType: [String!]

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The threshold count of code issues beyond which the check starts failing.
  """
  maxAllowed: Int

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID

  """
  True if this check should fail by default when no code issue projects are connected to the component.
  """
  requireProject: Boolean

  """
  The resolution time recommended by the reporting source of the code issue.
  """
  resolutionTime: CodeIssueResolutionTimeInput

  """
  The severity levels of the issue, generally in the form of 'source:severity'.
  Possible values depend on the installed integrations.
  """
  severity: [String!]
}

"""
The connection type for Check.
"""
type CheckConnection {
  """
  A list of edges.
  """
  edges: [CheckEdge]

  """
  A list of nodes.
  """
  nodes: [Check]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
Information about the check(s) that are to be copied.
"""
input CheckCopyInput {
  """
  The IDs of the checks to be copied.
  """
  checkIds: [ID!]!

  """
  If set to true, the original checks will be deleted after being successfully copied.
  """
  move: Boolean

  """
  The ID of the category to which the checks are copied. Belongs to either the rubric or a scorecard.
  """
  targetCategoryId: ID!

  """
  The ID of the level which the copied checks are associated with.
  """
  targetLevelId: ID
}

"""
The result of a check copying operation.
"""
type CheckCopyPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The category to which the checks have been copied.
  """
  targetCategory: Category
}

"""
The return type of a `checkCreate` mutation.
"""
type CheckCreatePayload {
  """
  The newly created check.
  """
  check: Check

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Creates a custom event check.
"""
input CheckCustomEventCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The integration id this check will use.
  """
  integrationId: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID

  """
  True if this check should pass by default. Otherwise the default 'pending' state counts as a failure.
  """
  passPending: Boolean

  """
  The check result message template. It is compiled with Liquid and formatted in
  Markdown. [More info about liquid templates](https://docs.opslevel.com/docs/checks/payload-checks/#liquid-templating).
  """
  resultMessage: String

  """
  A jq expression that will be ran against your payload. This will parse out the
  service identifier. [More info about jq](https://jqplay.org/).
  """
  serviceSelector: String!

  """
  A jq expression that will be ran against your payload. A truthy value will
  result in the check passing. [More info about jq](https://jqplay.org/).
  """
  successCondition: String!
}

"""
Specifies the input fields used to update a custom event check.
"""
input CheckCustomEventUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The integration id this check will use.
  """
  integrationId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID

  """
  True if this check should pass by default. Otherwise the default 'pending' state counts as a failure.
  """
  passPending: Boolean

  """
  The check result message template. It is compiled with Liquid and formatted in
  Markdown. [More info about liquid templates](https://docs.opslevel.com/docs/checks/payload-checks/#liquid-templating).
  """
  resultMessage: String

  """
  A jq expression that will be ran against your payload. This will parse out the
  service identifier. [More info about jq](https://jqplay.org/).
  """
  serviceSelector: String

  """
  A jq expression that will be ran against your payload. A truthy value will
  result in the check passing. [More info about jq](https://jqplay.org/).
  """
  successCondition: String
}

"""
Specifies the input fields used to delete a check.
"""
input CheckDeleteInput {
  """
  The id of the check to be deleted.
  """
  id: ID
}

"""
The return type of a `checkDelete` mutation.
"""
type CheckDeletePayload {
  """
  The id of the deleted check.
  """
  deletedCheckId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
An edge in a connection.
"""
type CheckEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Check
}

"""
Specifies the input fields used to create a branch protection check.
"""
input CheckGitBranchProtectionCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to update a branch protection check.
"""
input CheckGitBranchProtectionUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to create a documentation check.
"""
input CheckHasDocumentationCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The subtype of the document.
  """
  documentSubtype: HasDocumentationSubtypeEnum!

  """
  The type of the document.
  """
  documentType: HasDocumentationTypeEnum!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to update a documentation check.
"""
input CheckHasDocumentationUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The subtype of the document.
  """
  documentSubtype: HasDocumentationSubtypeEnum

  """
  The type of the document.
  """
  documentType: HasDocumentationTypeEnum

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to create a recent deploys check.
"""
input CheckHasRecentDeployCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The number of days to check since the last deploy.
  """
  days: Int!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to update a has recent deploy check.
"""
input CheckHasRecentDeployUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The number of days to check since the last deploy.
  """
  days: Int

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID
}

type CheckIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
Specifies the input fields used to create a manual check.
"""
input CheckManualCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID

  """
  Defines the minimum frequency of the updates.
  """
  updateFrequency: ManualCheckFrequencyInput

  """
  Whether the check requires a comment or not.
  """
  updateRequiresComment: Boolean!
}

"""
Specifies the input fields used to update a manual check.
"""
input CheckManualUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID

  """
  Defines the minimum frequency of the updates.
  """
  updateFrequency: ManualCheckFrequencyUpdateInput

  """
  Whether the check requires a comment or not.
  """
  updateRequiresComment: Boolean
}

"""
The owner a check can belong to.
"""
union CheckOwner = Team | User

"""
Information about the package version check to be created.
"""
input CheckPackageVersionCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The check result if the package isn't being used by a service.
  """
  missingPackageResult: CheckResultStatusEnum

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID

  """
  The package constraint the service is to be checked for.
  """
  packageConstraint: PackageConstraintEnum!

  """
  The package manager (ecosystem) this package relates to.
  """
  packageManager: PackageManagerEnum!

  """
  The name of the package to be checked.
  """
  packageName: String!

  """
  Whether or not the value in the package name field is a regular expression.
  """
  packageNameIsRegex: Boolean

  """
  The predicate that describes the version constraint the package must satisfy.
  """
  versionConstraintPredicate: PredicateInput
}

"""
Information about the package version check to be updated.
"""
input CheckPackageVersionUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The check result if the package isn't being used by a service.
  """
  missingPackageResult: CheckResultStatusEnum

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID

  """
  The package constraint the service is to be checked for.
  """
  packageConstraint: PackageConstraintEnum

  """
  The package manager (ecosystem) this package relates to.
  """
  packageManager: PackageManagerEnum

  """
  The name of the package to be checked.
  """
  packageName: String

  """
  Whether or not the value in the package name field is a regular expression.
  """
  packageNameIsRegex: Boolean

  """
  The predicate that describes the version constraint the package must satisfy.
  """
  versionConstraintPredicate: PredicateInput
}

"""
Specifies the input fields used to create a relationships check.
"""
input CheckRelationshipCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID

  """
  The condition that should be satisfied by the number of RelatedTo relationships.
  """
  relationshipCountPredicate: PredicateInput!

  """
  Count relationships of a specific relationship definition alias.
  """
  relationshipDefinitionAlias: String

  """
  Count relationships of a specific relationship definition.
  """
  relationshipDefinitionId: ID
}

"""
Specifies the input fields used to update a relationships check.
"""
input CheckRelationshipUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID

  """
  The condition that should be satisfied by the number of RelatedTo relationships.
  """
  relationshipCountPredicate: PredicateInput

  """
  Count relationships of a specific relationship definition.
  """
  relationshipDefinitionId: ID
}

"""
Specifies the input fields used to create a repo file check.
"""
input CheckRepositoryFileCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  Whether the check looks for the existence of a directory instead of a file.
  """
  directorySearch: Boolean = false

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  Condition to match the file content.
  """
  fileContentsPredicate: PredicateInput

  """
  Restrict the search to certain file paths.
  """
  filePaths: [String!]!

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID

  """
  Whether the checks looks at the absolute root of a repo or the relative root
  (the directory specified when attached a repo to a service).
  """
  useAbsoluteRoot: Boolean = false
}

"""
Specifies the input fields used to update a repo file check.
"""
input CheckRepositoryFileUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  Whether the check looks for the existence of a directory instead of a file.
  """
  directorySearch: Boolean = false

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  Condition to match the file content.
  """
  fileContentsPredicate: PredicateUpdateInput

  """
  Restrict the search to certain file paths.
  """
  filePaths: [String!]

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID

  """
  Whether the checks looks at the absolute root of a repo or the relative root
  (the directory specified when attached a repo to a service).
  """
  useAbsoluteRoot: Boolean = false
}

"""
Specifies the input fields used to create a repo grep check.
"""
input CheckRepositoryGrepCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  Whether the check looks for the existence of a directory instead of a file.
  """
  directorySearch: Boolean = false

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  Condition to match the file content.
  """
  fileContentsPredicate: PredicateInput!

  """
  Restrict the search to certain file paths.
  """
  filePaths: [String!]!

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to update a repo file check.
"""
input CheckRepositoryGrepUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  Whether the check looks for the existence of a directory instead of a file.
  """
  directorySearch: Boolean = false

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  Condition to match the file content.
  """
  fileContentsPredicate: PredicateUpdateInput

  """
  Restrict the search to certain file paths.
  """
  filePaths: [String!]

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to create a repository integrated check.
"""
input CheckRepositoryIntegratedCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to update a repository integrated check.
"""
input CheckRepositoryIntegratedUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to create a repo search check.
"""
input CheckRepositorySearchCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  Condition to match the text content.
  """
  fileContentsPredicate: PredicateInput!

  """
  Restrict the search to files of given extensions. Extensions should contain
  only letters and numbers. For example: `['py', 'rb']`.
  """
  fileExtensions: [String!]

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to update a repo search check.
"""
input CheckRepositorySearchUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  Condition to match the text content.
  """
  fileContentsPredicate: PredicateUpdateInput

  """
  Restrict the search to files of given extensions. Extensions should contain
  only letters and numbers. For example: `['py', 'rb']`.
  """
  fileExtensions: [String!]

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID
}

"""
The result for a given Check
"""
type CheckResult {
  """
  The check of check result.
  """
  check: Check!

  """
  The time the check most recently ran.
  """
  lastUpdated: ISO8601DateTime!

  """
  The check message.
  """
  message: String!

  """
  The service of check result.
  """
  service: Service

  """
  The alias for the service.
  """
  serviceAlias: String

  """
  The check status.
  """
  status: CheckStatus!
}

"""
The status of the check result.
"""
enum CheckResultStatusEnum {
  """
  Indicates that the check has failed for the associated service.
  """
  failed

  """
  Indicates that the check has passed for the associated service..
  """
  passed
}

"""
The check results grouped by level.
"""
type CheckResultsByLevel {
  """
  A list of check results by level.
  """
  items(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CheckResultsConnection

  """
  The check result level.
  """
  level: Level
}

"""
The connection type for CheckResultsByLevel.
"""
type CheckResultsByLevelConnection {
  """
  A list of edges.
  """
  edges: [CheckResultsByLevelEdge]

  """
  A list of nodes.
  """
  nodes: [CheckResultsByLevel]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type CheckResultsByLevelEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: CheckResultsByLevel
}

"""
The connection type for CheckResult.
"""
type CheckResultsConnection {
  """
  A list of edges.
  """
  edges: [CheckResultsEdge]

  """
  A list of nodes.
  """
  nodes: [CheckResult]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type CheckResultsEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: CheckResult
}

"""
Specifies the input fields used to create a configuration check.
"""
input CheckServiceConfigurationCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to update a configuration check.
"""
input CheckServiceConfigurationUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to create a service dependency check.
"""
input CheckServiceDependencyCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to update a service dependency check.
"""
input CheckServiceDependencyUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID
}

"""
Specifies the input fields used to create an ownership check.
"""
input CheckServiceOwnershipCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The type of contact method that an owner should provide
  """
  contactMethod: String

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID

  """
  Whether to require a contact method for a service owner or not
  """
  requireContactMethod: Boolean

  """
  The tag key that should exist for a service owner.
  """
  tagKey: String

  """
  The condition that should be satisfied by the tag value.
  """
  tagPredicate: PredicateInput
}

"""
Specifies the input fields used to update an ownership check.
"""
input CheckServiceOwnershipUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The type of contact method that an owner should provide
  """
  contactMethod: String

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID

  """
  Whether to require a contact method for a service owner or not
  """
  requireContactMethod: Boolean

  """
  The tag key that should exist for a service owner.
  """
  tagKey: String

  """
  The condition that should be satisfied by the tag value.
  """
  tagPredicate: PredicateUpdateInput
}

"""
Specifies the input fields used to create a service property check.
"""
input CheckServicePropertyCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The Component Type that a custom property belongs to. Defaults to Service properties if not provided.
  """
  componentType: IdentifierInput

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID

  """
  The secondary key of the property that the check will verify (e.g. the specific custom property).
  """
  propertyDefinition: IdentifierInput

  """
  The condition that should be satisfied by the service property value.
  """
  propertyValuePredicate: PredicateInput

  """
  The property of the service that the check will verify.
  """
  serviceProperty: ServicePropertyTypeEnum!
}

"""
Specifies the input fields used to update a service property check.
"""
input CheckServicePropertyUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The Component Type that a custom property belongs to. Defaults to Service properties if not provided.
  """
  componentType: IdentifierInput

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID

  """
  The secondary key of the property that the check will verify (e.g. the specific custom property).
  """
  propertyDefinition: IdentifierInput

  """
  The condition that should be satisfied by the service property value.
  """
  propertyValuePredicate: PredicateUpdateInput

  """
  The property of the service that the check will verify.
  """
  serviceProperty: ServicePropertyTypeEnum
}

"""
Check stats shows a summary of check results.
"""
type CheckStats {
  """
  The percentage of checks that are passing for the resource.
  """
  passingChecksPercentage: Float!

  """
  The number of existing checks for the resource.
  """
  totalChecks: Int!

  """
  The number of checks that are passing for the resource.
  """
  totalPassingChecks: Int!
}

"""
The evaluation status of the check.
"""
enum CheckStatus {
  """
  The check evaluated to a falsy value based on some conditions.
  """
  failed

  """
  The check evaluated to a truthy value based on some conditions.
  """
  passed

  """
  The check has not been evaluated yet..
  """
  pending
}

"""
Specifies the input fields used to create a tag check.
"""
input CheckTagDefinedCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID

  """
  The tag key where the tag predicate should be applied.
  """
  tagKey: String!

  """
  The condition that should be satisfied by the tag value.
  """
  tagPredicate: PredicateInput
}

"""
Specifies the input fields used to update a tag defined check.
"""
input CheckTagDefinedUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID

  """
  The tag key where the tag predicate should be applied.
  """
  tagKey: String

  """
  The condition that should be satisfied by the tag value.
  """
  tagPredicate: PredicateUpdateInput
}

"""
Specifies the input fields used to promote a campaign check to the rubric.
"""
input CheckToPromoteInput {
  """
  The ID of the category that the promoted check will be linked to.
  """
  categoryId: ID!

  """
  The ID of the check to be promoted to the rubric.
  """
  checkId: ID!

  """
  The ID of the level that the promoted check will be linked to.
  """
  levelId: ID!
}

"""
Specifies the input fields used to create a tool usage check.
"""
input CheckToolUsageCreateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean = false

  """
  The condition that the environment should satisfy to be evaluated.
  """
  environmentPredicate: PredicateInput

  """
  The id of the filter of the check.
  """
  filterId: ID

  """
  The id of the level the check belongs to.
  """
  levelId: ID!

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the team that owns the check.
  """
  ownerId: ID

  """
  The category that the tool belongs to.
  """
  toolCategory: ToolCategory!

  """
  The condition that the tool name should satisfy to be evaluated.
  """
  toolNamePredicate: PredicateInput

  """
  The condition that the tool url should satisfy to be evaluated.
  """
  toolUrlPredicate: PredicateInput
}

"""
Specifies the input fields used to update a tool usage check.
"""
input CheckToolUsageUpdateInput {
  """
  The id of the category the check belongs to.
  """
  categoryId: ID

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  Whether the check is enabled or not.
  """
  enabled: Boolean

  """
  The condition that the environment should satisfy to be evaluated.
  """
  environmentPredicate: PredicateUpdateInput

  """
  The id of the filter the check belongs to.
  """
  filterId: ID

  """
  The id of the check to be updated.
  """
  id: ID!

  """
  The id of the level the check belongs to.
  """
  levelId: ID

  """
  The display name of the check.
  """
  name: String

  """
  Additional information about the check.
  """
  notes: String

  """
  The id of the owner of the check.
  """
  ownerId: ID

  """
  The category that the tool belongs to.
  """
  toolCategory: ToolCategory

  """
  The condition that the tool name should satisfy to be evaluated.
  """
  toolNamePredicate: PredicateUpdateInput

  """
  The condition that the tool url should satisfy to be evaluated.
  """
  toolUrlPredicate: PredicateUpdateInput
}

"""
The type of check.
"""
enum CheckType {
  """
  Verifies that the service has an alert source of a particular type or name.
  """
  alert_source_usage

  """
  Verifies that the severity and quantity of code issues does not exceed defined thresholds.
  """
  code_issue

  """
  Allows for the creation of programmatic checks that use an API to mark the status as passing or failing.
  """
  custom

  """
  Requires a generic integration api call to complete a series of checks for multiple services.
  """
  generic

  """
  Verifies that all the repositories on the service have branch protection enabled.
  """
  git_branch_protection

  """
  Verifies that the service has visible documentation of a particular type and subtype.
  """
  has_documentation

  """
  Verifies that the service has an owner defined.
  """
  has_owner

  """
  Verifies that the services has received a deploy within a specified number of days.
  """
  has_recent_deploy

  """
  Verifies that the service has a repository integrated.
  """
  has_repository

  """
  Verifies that the service is maintained though the use of an opslevel.yml service config.
  """
  has_service_config

  """
  Requires a service owner to manually complete a check for the service.
  """
  manual

  """
  Verifies certain aspects of a service using or not using software packages.
  """
  package_version

  """
  Requires a payload integration api call to complete a check for the service.
  """
  payload

  """
  Verifies that the component has a specific number of relationship items
  defined for a specific relationship definition, with support for minimum,
  maximum, or exact count requirements.
  """
  relationship

  """
  Quickly scan the service's repository for the existence or contents of a specific file.
  """
  repo_file

  """
  Run a comprehensive search across the service's repository using advanced search parameters.
  """
  repo_grep

  """
  Quickly search the service's repository for specific contents in any file.
  """
  repo_search

  """
  Verifies that the service has either a dependent or dependency.
  """
  service_dependency

  """
  Verifies that a service property is set or matches a specified format.
  """
  service_property

  """
  Verifies that the service has the specified tag defined.
  """
  tag_defined

  """
  Verifies that the service is using a tool of a particular category or name.
  """
  tool_usage
}

"""
The return type of a `checkUpdate` mutation.
"""
type CheckUpdatePayload {
  """
  Checks allow you to monitor how your services are built and operated.
  """
  check: Check

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Specifies the input fields used to copy selected rubric checks to an existing campaign.
"""
input ChecksCopyToCampaignInput {
  """
  The ID of the existing campaign.
  """
  campaignId: ID!

  """
  The IDs of the existing rubric checks to be copied.
  """
  checkIds: [ID!]!
}

"""
The return type of a `checksCopyToCampaign` mutation.
"""
type ChecksCopyToCampaignPayload {
  """
  A campaign is a fixed time initiative that allows you to attach checks to and progress through towards completion.
  """
  campaign: Campaign

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

type CircleciDeployIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
A code issue belonging to a resource.
"""
type CodeIssue {
  """
  The Common Vulnerability Enumeration entries for this issue.
  """
  cves: [CommonVulnerabilityEnumeration!]

  """
  The Common Weakness Enumeration entries for this issue.
  """
  cwes: [CommonWeaknessEnumeration!]

  """
  The external ID of the code issue.
  """
  externalId: String!

  """
  The external URL to view the code issue at the source integration.
  """
  externalUrl: String

  """
  The id of the code issue.
  """
  id: ID!

  """
  The time the code issue was introduced.
  """
  introducedAt: ISO8601DateTime!

  """
  The type of the code issue, generally in the format of 'source:type'. Possible values depend on the source integration.
  """
  issueType: String!

  """
  The name of the code issue.
  """
  name: String!

  """
  The project that the code issue is associated with.
  """
  project: CodeIssueProject!

  """
  The severity of the code issue, generally in the form of 'source:severity'.
  Possible values depend on the source integration.
  """
  severity: String
}

type CodeIssueCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  The type of constraint used in evaluation the code issues check.
  """
  constraint: CheckCodeIssueConstraintEnum!

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The issue name used for code issue lookup.
  """
  issueName: String

  """
  The type of code issue to consider, generally in the format of 'source:type'.
  """
  issueType: [String!]

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The threshold count of code issues beyond which the check starts failing.
  """
  maxAllowed: Int

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  Whether the check requires a code issue project to be connected to the component.
  """
  requireProject: Boolean!

  """
  The resolution time recommended by the reporting source of the code issue.
  """
  resolutionTime: CodeIssueResolutionTime

  """
  The severity levels of the issue, generally in the form of 'source:severity'.
  """
  severity: [String!]

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
The connection type for CodeIssue.
"""
type CodeIssueConnection {
  """
  A list of edges.
  """
  edges: [CodeIssueEdge]

  """
  A list of nodes.
  """
  nodes: [CodeIssue]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type CodeIssueEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: CodeIssue
}

"""
Input for identifying a code issue
"""
input CodeIssueIdentifierInput {
  """
  Identifier of the code issue project to associate with this issue
  """
  codeIssueProject: CodeIssueProjectIdentifierInput!

  """
  External identifier for this issue
  """
  externalId: String!
}

"""
Input for creating a new code issue
"""
input CodeIssueInput {
  """
  List of CVE identifiers related to this issue
  """
  cves: [CommonVulnerabilityEnumerationInput!]

  """
  List of CWE identifiers related to this issue
  """
  cwes: [CommonWeaknessEnumerationInput!]

  """
  Identifier of the code issue project to associate with this issue
  """
  identifier: CodeIssueIdentifierInput!

  """
  Timestamp when this issue was introduced
  """
  introducedAt: ISO8601DateTime

  """
  Category of this code issue. Required to create code issue
  """
  issueCategory: String

  """
  Name of the code issue. Required to create code issue.
  """
  name: String

  """
  Severity level of this issue
  """
  severity: String

  """
  URL with more information about this issue
  """
  url: String
}

"""
Response from creating a code issue
"""
type CodeIssuePayload {
  """
  The created code issue, if successful
  """
  codeIssue: CodeIssue

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
A project to which code issues are associated.
"""
type CodeIssueProject {
  """
  The external id of the code issue project.
  """
  externalId: String!

  """
  The external URL to view the code issue project at the source integration.
  """
  externalUrl: String

  """
  The id of the code issue project.
  """
  id: ID!

  """
  The integration that detected the code issue project.
  """
  integration: Integration!

  """
  The name of the code issue project.
  """
  name: String!

  """
  The resource associated with the code issue project if there is one; can be either a Service or Repository.
  """
  resource: CodeIssueProjectResource @deprecated(reason: "Use `resources` instead")

  """
  The resources associated with the code issue project if there is one; can be either a Service or Repository.
  """
  resources: [CodeIssueProjectResource!]
}

"""
The connection type for CodeIssueProject.
"""
type CodeIssueProjectConnection {
  """
  A list of edges.
  """
  edges: [CodeIssueProjectEdge]

  """
  A list of nodes.
  """
  nodes: [CodeIssueProject]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The total number of code issue projects.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type CodeIssueProjectEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: CodeIssueProject
}

"""
Input for upserting a code issue project by external ID
"""
input CodeIssueProjectIdentifierInput {
  """
  External ID of the code issue project
  """
  externalId: String!

  """
  Integration Identifier
  """
  integration: IdentifierInput!
}

"""
Input for upserting a code issue project by external ID
"""
input CodeIssueProjectInput {
  """
  Code Issue Project Identifier
  """
  identifier: CodeIssueProjectIdentifierInput!

  """
  Name of code issue project
  """
  name: String

  """
  URL of code issue project
  """
  url: String
}

"""
Result of upserting a code issue project by external ID
"""
type CodeIssueProjectPayload {
  """
  The code issue project that was upserted
  """
  codeIssueProject: CodeIssueProject

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Resource linked to the CodeIssueProject. Can be either Service or Repository.
"""
union CodeIssueProjectResource = Repository | Service

"""
Input for connecting a code issue project to a service / repository using their IDs
"""
input CodeIssueProjectResourceConnectInput {
  """
  IDs of the code issue project to connect
  """
  codeIssueProjectIds: [ID!]!

  """
  ID of the service or repository to connect to the code issue project
  """
  resourceId: ID!
}

"""
Result of connecting a code issue project to a service / repository using their IDs
"""
type CodeIssueProjectResourceConnectPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The resource that was connected to the code issue project
  """
  resource: CodeIssueProjectResource
}

"""
Input for disconnecting a code issue project from a service using their IDs
"""
input CodeIssueProjectResourceDisconnectInput {
  """
  ID of the code issue project to disconnect
  """
  codeIssueProjectId: ID!

  """
  ID of the service to disconnect from the code issue project
  """
  resourceId: ID!
}

"""
Result of disconnecting a code issue project from a service using their IDs
"""
type CodeIssueProjectResourceDisconnectPayload {
  """
  The code issue project that was disconnected
  """
  codeIssueProject: CodeIssueProject

  """
  ID of the code issue project resource that was disconnected
  """
  disconnectedCodeIssueProjectResourceId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
How long a code issue has been detected.
"""
type CodeIssueResolutionTime {
  """
  The name of duration of time.
  """
  unit: CodeIssueResolutionTimeUnitEnum!

  """
  The count value of the specified unit.
  """
  value: Int!
}

"""
The allowed threshold for how long an issue has been detected before the check starts failing.
"""
input CodeIssueResolutionTimeInput {
  unit: CodeIssueResolutionTimeUnitEnum!
  value: Int!
}

"""
The allowed values for duration units for the resolution time.
"""
enum CodeIssueResolutionTimeUnitEnum {
  """
  Day, as a duration.
  """
  day

  """
  Month, as a duration
  """
  month

  """
  Week, as a duration
  """
  week
}

"""
The input for the `columnConfig` mutation.
"""
input ColumnConfigInput {
  """
  The columns to display in the direct relationship table.
  """
  direct: [String!]

  """
  The columns to display in the inverse relationship table.
  """
  inverse: [String!]
}

"""
The configuration of the columns to display in the relationship table.
"""
type ColumnConfigType {
  """
  The columns to display in the direct relationship table.
  """
  direct: [String!]

  """
  The columns to display in the inverse relationship table.
  """
  inverse: [String!]
}

"""
A category system for hardware and software weaknesses.
"""
type CommonVulnerabilityEnumeration {
  """
  The identifer of this item in the CVE system.
  """
  identifier: String!

  """
  The url for this item in the CVE system.
  """
  url: String
}

"""
Input for a Common Vulnerability Enumeration
"""
input CommonVulnerabilityEnumerationInput {
  identifier: String!
  url: String
}

"""
A category system for hardware and software weaknesses.
"""
type CommonWeaknessEnumeration {
  """
  The identifer of this item in the CWE system.
  """
  identifier: String!

  """
  The url for this item in the CWE system.
  """
  url: String
}

"""
Input for a Common Weakness Enumeration
"""
input CommonWeaknessEnumerationInput {
  identifier: String!
  url: String
}

"""
Information about a particular component type.
"""
type ComponentType {
  """
  The human-friendly, unique identifier of the component type.
  """
  alias: String!

  """
  A list of human-friendly, unique identifiers of the component type.
  """
  aliases: [String!]!

  """
  The category of the component type.
  """
  category: String

  """
  The description of the component type.
  """
  description: String

  """
  The relative path to link to the component type.
  """
  href: String!

  """
  The icon associated with the component type.
  """
  icon: ComponentTypeIcon!

  """
  The id of the component type.
  """
  id: ID!

  """
  Whether or not the component type is the default.
  """
  isDefault: Boolean!

  """
  The name of the component type.
  """
  name: String!

  """
  The owner relationship for this component type.
  """
  ownerRelationship: OwnerRelationshipType!

  """
  The custom properties defined for this component type.
  """
  properties(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): PropertyDefinitionConnection!

  """
  The system relationship for this component type.
  """
  systemRelationship: SystemRelationshipType!

  """
  When the component type was created and updated.
  """
  timestamps: Timestamps!
}

"""
The connection type for ComponentType.
"""
type ComponentTypeConnection {
  """
  A list of edges.
  """
  edges: [ComponentTypeEdge]

  """
  A list of nodes.
  """
  nodes: [ComponentType]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type ComponentTypeEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: ComponentType
}

"""
The icon for a component type.
"""
type ComponentTypeIcon {
  """
  The color, represented as a hexcode, for the icon.
  """
  color: String

  """
  The name of the icon in Phosphor icons for Vue, e.g. `PhBird`. See https://phosphoricons.com/ for a full list.
  """
  name: ComponentTypeIconEnum
}

"""
The possible icon names for a component type, provided by Phosphor icons for Vue: https://phosphoricons.com/
"""
enum ComponentTypeIconEnum {
  PhActivity
  PhAddressBook
  PhAirplane
  PhAirplaneInFlight
  PhAirplaneLanding
  PhAirplaneTakeoff
  PhAirplaneTilt
  PhAirplay
  PhAlarm
  PhAlien
  PhAlignBottom
  PhAlignBottomSimple
  PhAlignCenterHorizontal
  PhAlignCenterHorizontalSimple
  PhAlignCenterVertical
  PhAlignCenterVerticalSimple
  PhAlignLeft
  PhAlignLeftSimple
  PhAlignRight
  PhAlignRightSimple
  PhAlignTop
  PhAlignTopSimple
  PhAnchor
  PhAnchorSimple
  PhAndroidLogo
  PhAngularLogo
  PhAperture
  PhAppStoreLogo
  PhAppWindow
  PhAppleLogo
  PhApplePodcastsLogo
  PhArchive
  PhArchiveBox
  PhArchiveTray
  PhArmchair
  PhArrowArcLeft
  PhArrowArcRight
  PhArrowBendDoubleUpLeft
  PhArrowBendDoubleUpRight
  PhArrowBendDownLeft
  PhArrowBendDownRight
  PhArrowBendLeftDown
  PhArrowBendLeftUp
  PhArrowBendRightDown
  PhArrowBendRightUp
  PhArrowBendUpLeft
  PhArrowBendUpRight
  PhArrowCircleDown
  PhArrowCircleDownLeft
  PhArrowCircleDownRight
  PhArrowCircleLeft
  PhArrowCircleRight
  PhArrowCircleUp
  PhArrowCircleUpLeft
  PhArrowCircleUpRight
  PhArrowClockwise
  PhArrowCounterClockwise
  PhArrowDown
  PhArrowDownLeft
  PhArrowDownRight
  PhArrowElbowDownLeft
  PhArrowElbowDownRight
  PhArrowElbowLeft
  PhArrowElbowLeftDown
  PhArrowElbowLeftUp
  PhArrowElbowRight
  PhArrowElbowRightDown
  PhArrowElbowRightUp
  PhArrowElbowUpLeft
  PhArrowElbowUpRight
  PhArrowFatDown
  PhArrowFatLeft
  PhArrowFatLineDown
  PhArrowFatLineLeft
  PhArrowFatLineRight
  PhArrowFatLineUp
  PhArrowFatLinesDown
  PhArrowFatLinesLeft
  PhArrowFatLinesRight
  PhArrowFatLinesUp
  PhArrowFatRight
  PhArrowFatUp
  PhArrowLeft
  PhArrowLineDown
  PhArrowLineDownLeft
  PhArrowLineDownRight
  PhArrowLineLeft
  PhArrowLineRight
  PhArrowLineUp
  PhArrowLineUpLeft
  PhArrowLineUpRight
  PhArrowRight
  PhArrowSquareDown
  PhArrowSquareDownLeft
  PhArrowSquareDownRight
  PhArrowSquareIn
  PhArrowSquareLeft
  PhArrowSquareOut
  PhArrowSquareRight
  PhArrowSquareUp
  PhArrowSquareUpLeft
  PhArrowSquareUpRight
  PhArrowUDownLeft
  PhArrowUDownRight
  PhArrowULeftDown
  PhArrowULeftUp
  PhArrowURightDown
  PhArrowURightUp
  PhArrowUUpLeft
  PhArrowUUpRight
  PhArrowUp
  PhArrowUpLeft
  PhArrowUpRight
  PhArrowsClockwise
  PhArrowsCounterClockwise
  PhArrowsDownUp
  PhArrowsHorizontal
  PhArrowsIn
  PhArrowsInCardinal
  PhArrowsInLineHorizontal
  PhArrowsInLineVertical
  PhArrowsInSimple
  PhArrowsLeftRight
  PhArrowsOut
  PhArrowsOutCardinal
  PhArrowsOutLineHorizontal
  PhArrowsOutLineVertical
  PhArrowsOutSimple
  PhArrowsVertical
  PhArticle
  PhArticleMedium
  PhArticleNyTimes
  PhAsterisk
  PhAsteriskSimple
  PhAt
  PhAtom
  PhBaby
  PhBackpack
  PhBackspace
  PhBag
  PhBagSimple
  PhBalloon
  PhBandaids
  PhBank
  PhBarbell
  PhBarcode
  PhBarricade
  PhBaseball
  PhBasketball
  PhBathtub
  PhBatteryCharging
  PhBatteryChargingVertical
  PhBatteryEmpty
  PhBatteryFull
  PhBatteryHigh
  PhBatteryLow
  PhBatteryMedium
  PhBatteryPlus
  PhBatteryWarning
  PhBatteryWarningVertical
  PhBed
  PhBeerBottle
  PhBehanceLogo
  PhBell
  PhBellRinging
  PhBellSimple
  PhBellSimpleRinging
  PhBellSimpleSlash
  PhBellSimpleZ
  PhBellSlash
  PhBellZ
  PhBezierCurve
  PhBicycle
  PhBinoculars
  PhBird
  PhBluetooth
  PhBluetoothConnected
  PhBluetoothSlash
  PhBluetoothX
  PhBoat
  PhBook
  PhBookBookmark
  PhBookOpen
  PhBookmark
  PhBookmarkSimple
  PhBookmarks
  PhBookmarksSimple
  PhBooks
  PhBoundingBox
  PhBracketsAngle
  PhBracketsCurly
  PhBracketsRound
  PhBracketsSquare
  PhBrain
  PhBrandy
  PhBriefcase
  PhBriefcaseMetal
  PhBroadcast
  PhBrowser
  PhBrowsers
  PhBug
  PhBugBeetle
  PhBugDroid
  PhBuildings
  PhBus
  PhButterfly
  PhCactus
  PhCake
  PhCalculator
  PhCalendar
  PhCalendarBlank
  PhCalendarCheck
  PhCalendarPlus
  PhCalendarX
  PhCamera
  PhCameraRotate
  PhCameraSlash
  PhCampfire
  PhCar
  PhCarSimple
  PhCardholder
  PhCards
  PhCaretCircleDoubleDown
  PhCaretCircleDoubleLeft
  PhCaretCircleDoubleRight
  PhCaretCircleDoubleUp
  PhCaretCircleDown
  PhCaretCircleLeft
  PhCaretCircleRight
  PhCaretCircleUp
  PhCaretDoubleDown
  PhCaretDoubleLeft
  PhCaretDoubleRight
  PhCaretDoubleUp
  PhCaretDown
  PhCaretLeft
  PhCaretRight
  PhCaretUp
  PhCat
  PhCellSignalFull
  PhCellSignalHigh
  PhCellSignalLow
  PhCellSignalMedium
  PhCellSignalNone
  PhCellSignalSlash
  PhCellSignalX
  PhChalkboard
  PhChalkboardSimple
  PhChalkboardTeacher
  PhChartBar
  PhChartBarHorizontal
  PhChartLine
  PhChartLineUp
  PhChartPie
  PhChartPieSlice
  PhChat
  PhChatCentered
  PhChatCenteredDots
  PhChatCenteredText
  PhChatCircle
  PhChatCircleDots
  PhChatCircleText
  PhChatDots
  PhChatTeardrop
  PhChatTeardropDots
  PhChatTeardropText
  PhChatText
  PhChats
  PhChatsCircle
  PhChatsTeardrop
  PhCheck
  PhCheckCircle
  PhCheckSquare
  PhCheckSquareOffset
  PhChecks
  PhCircle
  PhCircleDashed
  PhCircleHalf
  PhCircleHalfTilt
  PhCircleNotch
  PhCircleWavy
  PhCircleWavyCheck
  PhCircleWavyQuestion
  PhCircleWavyWarning
  PhCirclesFour
  PhCirclesThree
  PhCirclesThreePlus
  PhClipboard
  PhClipboardText
  PhClock
  PhClockAfternoon
  PhClockClockwise
  PhClockCounterClockwise
  PhClosedCaptioning
  PhCloud
  PhCloudArrowDown
  PhCloudArrowUp
  PhCloudCheck
  PhCloudFog
  PhCloudLightning
  PhCloudMoon
  PhCloudRain
  PhCloudSlash
  PhCloudSnow
  PhCloudSun
  PhClub
  PhCoatHanger
  PhCode
  PhCodeSimple
  PhCodepenLogo
  PhCodesandboxLogo
  PhCoffee
  PhCoin
  PhCoinVertical
  PhCoins
  PhColumns
  PhCommand
  PhCompass
  PhComputerTower
  PhConfetti
  PhCookie
  PhCookingPot
  PhCopy
  PhCopySimple
  PhCopyleft
  PhCopyright
  PhCornersIn
  PhCornersOut
  PhCpu
  PhCreditCard
  PhCrop
  PhCrosshair
  PhCrosshairSimple
  PhCrown
  PhCrownSimple
  PhCube
  PhCurrencyBtc
  PhCurrencyCircleDollar
  PhCurrencyCny
  PhCurrencyDollar
  PhCurrencyDollarSimple
  PhCurrencyEth
  PhCurrencyEur
  PhCurrencyGbp
  PhCurrencyInr
  PhCurrencyJpy
  PhCurrencyKrw
  PhCurrencyKzt
  PhCurrencyNgn
  PhCurrencyRub
  PhCursor
  PhCursorText
  PhCylinder
  PhDatabase
  PhDesktop
  PhDesktopTower
  PhDetective
  PhDeviceMobile
  PhDeviceMobileCamera
  PhDeviceMobileSpeaker
  PhDeviceTablet
  PhDeviceTabletCamera
  PhDeviceTabletSpeaker
  PhDiamond
  PhDiamondsFour
  PhDiceFive
  PhDiceFour
  PhDiceOne
  PhDiceSix
  PhDiceThree
  PhDiceTwo
  PhDisc
  PhDiscordLogo
  PhDivide
  PhDog
  PhDoor
  PhDotsNine
  PhDotsSix
  PhDotsSixVertical
  PhDotsThree
  PhDotsThreeCircle
  PhDotsThreeCircleVertical
  PhDotsThreeOutline
  PhDotsThreeOutlineVertical
  PhDotsThreeVertical
  PhDownload
  PhDownloadSimple
  PhDribbbleLogo
  PhDrop
  PhDropHalf
  PhDropHalfBottom
  PhEar
  PhEarSlash
  PhEgg
  PhEggCrack
  PhEject
  PhEjectSimple
  PhEnvelope
  PhEnvelopeOpen
  PhEnvelopeSimple
  PhEnvelopeSimpleOpen
  PhEqualizer
  PhEquals
  PhEraser
  PhExam
  PhExport
  PhEye
  PhEyeClosed
  PhEyeSlash
  PhEyedropper
  PhEyedropperSample
  PhEyeglasses
  PhFaceMask
  PhFacebookLogo
  PhFactory
  PhFaders
  PhFadersHorizontal
  PhFastForward
  PhFastForwardCircle
  PhFigmaLogo
  PhFile
  PhFileArrowDown
  PhFileArrowUp
  PhFileAudio
  PhFileCloud
  PhFileCode
  PhFileCss
  PhFileCsv
  PhFileDoc
  PhFileDotted
  PhFileHtml
  PhFileImage
  PhFileJpg
  PhFileJs
  PhFileJsx
  PhFileLock
  PhFileMinus
  PhFilePdf
  PhFilePlus
  PhFilePng
  PhFilePpt
  PhFileRs
  PhFileSearch
  PhFileText
  PhFileTs
  PhFileTsx
  PhFileVideo
  PhFileVue
  PhFileX
  PhFileXls
  PhFileZip
  PhFiles
  PhFilmScript
  PhFilmSlate
  PhFilmStrip
  PhFingerprint
  PhFingerprintSimple
  PhFinnTheHuman
  PhFire
  PhFireSimple
  PhFirstAid
  PhFirstAidKit
  PhFish
  PhFishSimple
  PhFlag
  PhFlagBanner
  PhFlagCheckered
  PhFlame
  PhFlashlight
  PhFlask
  PhFloppyDisk
  PhFloppyDiskBack
  PhFlowArrow
  PhFlower
  PhFlowerLotus
  PhFlyingSaucer
  PhFolder
  PhFolderDotted
  PhFolderLock
  PhFolderMinus
  PhFolderNotch
  PhFolderNotchMinus
  PhFolderNotchOpen
  PhFolderNotchPlus
  PhFolderOpen
  PhFolderPlus
  PhFolderSimple
  PhFolderSimpleDotted
  PhFolderSimpleLock
  PhFolderSimpleMinus
  PhFolderSimplePlus
  PhFolderSimpleStar
  PhFolderSimpleUser
  PhFolderStar
  PhFolderUser
  PhFolders
  PhFootball
  PhForkKnife
  PhFrameCorners
  PhFramerLogo
  PhFunction
  PhFunnel
  PhFunnelSimple
  PhGameController
  PhGasPump
  PhGauge
  PhGear
  PhGearSix
  PhGenderFemale
  PhGenderIntersex
  PhGenderMale
  PhGenderNeuter
  PhGenderNonbinary
  PhGenderTransgender
  PhGhost
  PhGif
  PhGift
  PhGitBranch
  PhGitCommit
  PhGitDiff
  PhGitFork
  PhGitMerge
  PhGitPullRequest
  PhGithubLogo
  PhGitlabLogo
  PhGitlabLogoSimple
  PhGlobe
  PhGlobeHemisphereEast
  PhGlobeHemisphereWest
  PhGlobeSimple
  PhGlobeStand
  PhGoogleChromeLogo
  PhGoogleLogo
  PhGooglePhotosLogo
  PhGooglePlayLogo
  PhGooglePodcastsLogo
  PhGradient
  PhGraduationCap
  PhGraph
  PhGridFour
  PhHamburger
  PhHand
  PhHandEye
  PhHandFist
  PhHandGrabbing
  PhHandPalm
  PhHandPointing
  PhHandSoap
  PhHandWaving
  PhHandbag
  PhHandbagSimple
  PhHandsClapping
  PhHandshake
  PhHardDrive
  PhHardDrives
  PhHash
  PhHashStraight
  PhHeadlights
  PhHeadphones
  PhHeadset
  PhHeart
  PhHeartBreak
  PhHeartStraight
  PhHeartStraightBreak
  PhHeartbeat
  PhHexagon
  PhHighlighterCircle
  PhHorse
  PhHourglass
  PhHourglassHigh
  PhHourglassLow
  PhHourglassMedium
  PhHourglassSimple
  PhHourglassSimpleHigh
  PhHourglassSimpleLow
  PhHourglassSimpleMedium
  PhHouse
  PhHouseLine
  PhHouseSimple
  PhIdentificationBadge
  PhIdentificationCard
  PhImage
  PhImageSquare
  PhInfinity
  PhInfo
  PhInstagramLogo
  PhIntersect
  PhJeep
  PhKanban
  PhKey
  PhKeyReturn
  PhKeyboard
  PhKeyhole
  PhKnife
  PhLadder
  PhLadderSimple
  PhLamp
  PhLaptop
  PhLayout
  PhLeaf
  PhLifebuoy
  PhLightbulb
  PhLightbulbFilament
  PhLightning
  PhLightningSlash
  PhLineSegment
  PhLineSegments
  PhLink
  PhLinkBreak
  PhLinkSimple
  PhLinkSimpleBreak
  PhLinkSimpleHorizontal
  PhLinkSimpleHorizontalBreak
  PhLinkedinLogo
  PhLinuxLogo
  PhList
  PhListBullets
  PhListChecks
  PhListDashes
  PhListNumbers
  PhListPlus
  PhLock
  PhLockKey
  PhLockKeyOpen
  PhLockLaminated
  PhLockLaminatedOpen
  PhLockOpen
  PhLockSimple
  PhLockSimpleOpen
  PhMagicWand
  PhMagnet
  PhMagnetStraight
  PhMagnifyingGlass
  PhMagnifyingGlassMinus
  PhMagnifyingGlassPlus
  PhMapPin
  PhMapPinLine
  PhMapTrifold
  PhMarkerCircle
  PhMartini
  PhMaskHappy
  PhMaskSad
  PhMathOperations
  PhMedal
  PhMediumLogo
  PhMegaphone
  PhMegaphoneSimple
  PhMessengerLogo
  PhMicrophone
  PhMicrophoneSlash
  PhMicrophoneStage
  PhMicrosoftExcelLogo
  PhMicrosoftPowerpointLogo
  PhMicrosoftTeamsLogo
  PhMicrosoftWordLogo
  PhMinus
  PhMinusCircle
  PhMoney
  PhMonitor
  PhMonitorPlay
  PhMoon
  PhMoonStars
  PhMountains
  PhMouse
  PhMouseSimple
  PhMusicNote
  PhMusicNoteSimple
  PhMusicNotes
  PhMusicNotesPlus
  PhMusicNotesSimple
  PhNavigationArrow
  PhNeedle
  PhNewspaper
  PhNewspaperClipping
  PhNote
  PhNoteBlank
  PhNotePencil
  PhNotebook
  PhNotepad
  PhNotification
  PhNumberCircleEight
  PhNumberCircleFive
  PhNumberCircleFour
  PhNumberCircleNine
  PhNumberCircleOne
  PhNumberCircleSeven
  PhNumberCircleSix
  PhNumberCircleThree
  PhNumberCircleTwo
  PhNumberCircleZero
  PhNumberEight
  PhNumberFive
  PhNumberFour
  PhNumberNine
  PhNumberOne
  PhNumberSeven
  PhNumberSix
  PhNumberSquareEight
  PhNumberSquareFive
  PhNumberSquareFour
  PhNumberSquareNine
  PhNumberSquareOne
  PhNumberSquareSeven
  PhNumberSquareSix
  PhNumberSquareThree
  PhNumberSquareTwo
  PhNumberSquareZero
  PhNumberThree
  PhNumberTwo
  PhNumberZero
  PhNut
  PhNyTimesLogo
  PhOctagon
  PhOption
  PhPackage
  PhPaintBrush
  PhPaintBrushBroad
  PhPaintBrushHousehold
  PhPaintBucket
  PhPaintRoller
  PhPalette
  PhPaperPlane
  PhPaperPlaneRight
  PhPaperPlaneTilt
  PhPaperclip
  PhPaperclipHorizontal
  PhParachute
  PhPassword
  PhPath
  PhPause
  PhPauseCircle
  PhPawPrint
  PhPeace
  PhPen
  PhPenNib
  PhPenNibStraight
  PhPencil
  PhPencilCircle
  PhPencilLine
  PhPencilSimple
  PhPencilSimpleLine
  PhPercent
  PhPerson
  PhPersonSimple
  PhPersonSimpleRun
  PhPersonSimpleWalk
  PhPerspective
  PhPhone
  PhPhoneCall
  PhPhoneDisconnect
  PhPhoneIncoming
  PhPhoneOutgoing
  PhPhoneSlash
  PhPhoneX
  PhPhosphorLogo
  PhPianoKeys
  PhPictureInPicture
  PhPill
  PhPinterestLogo
  PhPinwheel
  PhPizza
  PhPlaceholder
  PhPlanet
  PhPlay
  PhPlayCircle
  PhPlaylist
  PhPlug
  PhPlugs
  PhPlugsConnected
  PhPlus
  PhPlusCircle
  PhPlusMinus
  PhPokerChip
  PhPoliceCar
  PhPolygon
  PhPopcorn
  PhPower
  PhPrescription
  PhPresentation
  PhPresentationChart
  PhPrinter
  PhProhibit
  PhProhibitInset
  PhProjectorScreen
  PhProjectorScreenChart
  PhPushPin
  PhPushPinSimple
  PhPushPinSimpleSlash
  PhPushPinSlash
  PhPuzzlePiece
  PhQrCode
  PhQuestion
  PhQueue
  PhQuotes
  PhRadical
  PhRadio
  PhRadioButton
  PhRainbow
  PhRainbowCloud
  PhReceipt
  PhRecord
  PhRectangle
  PhRecycle
  PhRedditLogo
  PhRepeat
  PhRepeatOnce
  PhRewind
  PhRewindCircle
  PhRobot
  PhRocket
  PhRocketLaunch
  PhRows
  PhRss
  PhRssSimple
  PhRug
  PhRuler
  PhScales
  PhScan
  PhScissors
  PhScreencast
  PhScribbleLoop
  PhScroll
  PhSelection
  PhSelectionAll
  PhSelectionBackground
  PhSelectionForeground
  PhSelectionInverse
  PhSelectionPlus
  PhSelectionSlash
  PhShare
  PhShareNetwork
  PhShield
  PhShieldCheck
  PhShieldCheckered
  PhShieldChevron
  PhShieldPlus
  PhShieldSlash
  PhShieldStar
  PhShieldWarning
  PhShoppingBag
  PhShoppingBagOpen
  PhShoppingCart
  PhShoppingCartSimple
  PhShower
  PhShuffle
  PhShuffleAngular
  PhShuffleSimple
  PhSidebar
  PhSidebarSimple
  PhSignIn
  PhSignOut
  PhSignpost
  PhSimCard
  PhSketchLogo
  PhSkipBack
  PhSkipBackCircle
  PhSkipForward
  PhSkipForwardCircle
  PhSkull
  PhSlackLogo
  PhSliders
  PhSlidersHorizontal
  PhSmiley
  PhSmileyBlank
  PhSmileyMeh
  PhSmileyNervous
  PhSmileySad
  PhSmileySticker
  PhSmileyWink
  PhSmileyXEyes
  PhSnapchatLogo
  PhSnowflake
  PhSoccerBall
  PhSortAscending
  PhSortDescending
  PhSpade
  PhSparkle
  PhSpeakerHigh
  PhSpeakerLow
  PhSpeakerNone
  PhSpeakerSimpleHigh
  PhSpeakerSimpleLow
  PhSpeakerSimpleNone
  PhSpeakerSimpleSlash
  PhSpeakerSimpleX
  PhSpeakerSlash
  PhSpeakerX
  PhSpinner
  PhSpinnerGap
  PhSpiral
  PhSpotifyLogo
  PhSquare
  PhSquareHalf
  PhSquareHalfBottom
  PhSquareLogo
  PhSquaresFour
  PhStack
  PhStackOverflowLogo
  PhStackSimple
  PhStamp
  PhStar
  PhStarFour
  PhStarHalf
  PhSticker
  PhStop
  PhStopCircle
  PhStorefront
  PhStrategy
  PhStripeLogo
  PhStudent
  PhSuitcase
  PhSuitcaseSimple
  PhSun
  PhSunDim
  PhSunHorizon
  PhSunglasses
  PhSwap
  PhSwatches
  PhSword
  PhSyringe
  PhTShirt
  PhTable
  PhTabs
  PhTag
  PhTagChevron
  PhTagSimple
  PhTarget
  PhTaxi
  PhTelegramLogo
  PhTelevision
  PhTelevisionSimple
  PhTennisBall
  PhTerminal
  PhTerminalWindow
  PhTestTube
  PhTextAa
  PhTextAlignCenter
  PhTextAlignJustify
  PhTextAlignLeft
  PhTextAlignRight
  PhTextBolder
  PhTextH
  PhTextHFive
  PhTextHFour
  PhTextHOne
  PhTextHSix
  PhTextHThree
  PhTextHTwo
  PhTextIndent
  PhTextItalic
  PhTextOutdent
  PhTextStrikethrough
  PhTextT
  PhTextUnderline
  PhTextbox
  PhThermometer
  PhThermometerCold
  PhThermometerHot
  PhThermometerSimple
  PhThumbsDown
  PhThumbsUp
  PhTicket
  PhTiktokLogo
  PhTimer
  PhToggleLeft
  PhToggleRight
  PhToilet
  PhToiletPaper
  PhTote
  PhToteSimple
  PhTrademarkRegistered
  PhTrafficCone
  PhTrafficSign
  PhTrafficSignal
  PhTrain
  PhTrainRegional
  PhTrainSimple
  PhTranslate
  PhTrash
  PhTrashSimple
  PhTray
  PhTree
  PhTreeEvergreen
  PhTreeStructure
  PhTrendDown
  PhTrendUp
  PhTriangle
  PhTrophy
  PhTruck
  PhTwitchLogo
  PhTwitterLogo
  PhUmbrella
  PhUmbrellaSimple
  PhUpload
  PhUploadSimple
  PhUser
  PhUserCircle
  PhUserCircleGear
  PhUserCircleMinus
  PhUserCirclePlus
  PhUserFocus
  PhUserGear
  PhUserList
  PhUserMinus
  PhUserPlus
  PhUserRectangle
  PhUserSquare
  PhUserSwitch
  PhUsers
  PhUsersFour
  PhUsersThree
  PhVault
  PhVibrate
  PhVideoCamera
  PhVideoCameraSlash
  PhVignette
  PhVoicemail
  PhVolleyball
  PhWall
  PhWallet
  PhWarning
  PhWarningCircle
  PhWarningOctagon
  PhWatch
  PhWaveSawtooth
  PhWaveSine
  PhWaveSquare
  PhWaveTriangle
  PhWaves
  PhWebcam
  PhWhatsappLogo
  PhWheelchair
  PhWifiHigh
  PhWifiLow
  PhWifiMedium
  PhWifiNone
  PhWifiSlash
  PhWifiX
  PhWind
  PhWindowsLogo
  PhWine
  PhWrench
  PhX
  PhXCircle
  PhXSquare
  PhYinYang
  PhYoutubeLogo
}

"""
The input for defining a component type's icon.
"""
input ComponentTypeIconInput {
  """
  The color, represented as a hexcode, for the icon.
  """
  color: String!

  """
  The name of the icon in Phosphor icons for Vue, e.g. `PhBird`. See https://phosphoricons.com/ for a full list.
  """
  name: ComponentTypeIconEnum!
}

"""
Specifies the input fields used to create a component type.
"""
input ComponentTypeInput {
  """
  The unique alias of the component type.
  """
  alias: String

  """
  The category of the component type.
  """
  category: String

  """
  The description of the component type.
  """
  description: String

  """
  The icon associated with the component type.
  """
  icon: ComponentTypeIconInput

  """
  The unique name of the component type.
  """
  name: String

  """
  The owner relationship for the component type.
  """
  ownerRelationship: OwnerRelationshipInput

  """
  A list of property definitions for the component type.
  """
  properties: [ComponentTypePropertyDefinitionInput!]

  """
  The system relationship for the component type.
  """
  systemRelationship: SystemRelationshipInput
}

"""
Return type for the `componentTypeCreate` mutation.
"""
type ComponentTypePayload {
  """
  The created component type.
  """
  componentType: ComponentType

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
The input for defining a property.
"""
input ComponentTypePropertyDefinitionInput {
  """
  The human-friendly, unique identifier for the resource.
  """
  alias: String!

  """
  Whether or not the property is allowed to be set in opslevel.yml config files.
  """
  allowedInConfigFiles: Boolean!

  """
  The description of the property definition.
  """
  description: String!

  """
  Restricts what sources are able to assign values to this property.
  """
  lockedStatus: PropertyLockedStatusEnum

  """
  The name of the property definition.
  """
  name: String!

  """
  The UI display status of the custom property.
  """
  propertyDisplayStatus: PropertyDisplayStatusEnum!

  """
  The schema of the property definition.
  """
  schema: JSONSchema!
}

"""
An error that occurred when syncing an opslevel.yml file.
"""
type ConfigError {
  """
  A description of the error.
  """
  message: String

  """
  The file name where the error was found.
  """
  sourceFilename: String!
}

"""
An OpsLevel config as code definition.
"""
type ConfigFile {
  """
  The relation for which the config was returned.
  """
  ownerType: String!

  """
  The OpsLevel config in yaml format.
  """
  yaml: String!
}

"""
The logical operator to be used in conjunction with multiple filters (requires filters to be supplied).
"""
enum ConnectiveEnum {
  """
  Used to ensure **all** filters match for a given resource.
  """
  and

  """
  Used to ensure **any** filters match for a given resource.
  """
  or
}

"""
A method of contact for a team.
"""
type Contact {
  """
  The contact address. Examples: support@company.com for type `email`, https://opslevel.com for type `web`.
  """
  address: String!

  """
  The name shown in the UI for the contact.
  """
  displayName: String

  """
  The type shown in the UI for the contact.
  """
  displayType: String

  """
  The remote identifier of the contact method.
  """
  externalId: String

  """
  The unique identifier for the contact.
  """
  id: ID!

  """
  Indicates if this address is a team's default for the given type.
  """
  isDefault: Boolean

  """
  The team or user the contact belongs to.
  """
  owner: ContactOwner!

  """
  The team the contact belongs to.
  """
  team: Team @deprecated(reason: "Use Owner field")

  """
  The method of contact [email, slack, slack_handle, web, microsoft_teams].
  """
  type: ContactType!
}

"""
Specifies the input fields used to create a contact.
"""
input ContactCreateInput {
  """
  The contact address. Examples: support@company.com for type `email`, https://opslevel.com for type `web`.
  """
  address: String!

  """
  The name shown in the UI for the contact.
  """
  displayName: String

  """
  The type shown in the UI for the contact.
  """
  displayType: String

  """
  The remote identifier of the contact method.
  """
  externalId: String

  """
  Makes the contact the default for the given type. Only available for team contacts.
  """
  makeDefault: Boolean

  """
  The id of the owner of this contact.
  """
  ownerId: ID

  """
  The alias of the team the contact belongs to.
  """
  teamAlias: String

  """
  The id of the team the contact belongs to.
  """
  teamId: ID @deprecated(reason: "Use owner ID")

  """
  The method of contact [email, slack, slack_handle, web, microsoft_teams].
  """
  type: ContactType!
}

"""
The return type of a `contactCreate` mutation.
"""
type ContactCreatePayload {
  """
  A method of contact for a team.
  """
  contact: Contact

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Specifies the input fields used to delete a contact.
"""
input ContactDeleteInput {
  """
  The `id` of the contact you wish to delete.
  """
  id: ID!
}

"""
The return type of a `contactDelete` mutation.
"""
type ContactDeletePayload {
  """
  The `id` of the deleted contact.
  """
  deletedContactId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Specifies the input fields used to create a contact.
"""
input ContactInput {
  """
  The contact address. Examples: support@company.com for type `email`, https://opslevel.com for type `web`.
  """
  address: String!

  """
  The name shown in the UI for the contact.
  """
  displayName: String

  """
  The method of contact [email, slack, slack_handle, web, microsoft_teams].
  """
  type: ContactType!
}

"""
The owner of this contact.
"""
union ContactOwner = Team | User

"""
The method of contact.
"""
enum ContactType {
  """
  An email contact method.
  """
  email

  """
  A GitHub handle.
  """
  github

  """
  A Microsoft Teams channel.
  """
  microsoft_teams

  """
  A Slack channel contact method.
  """
  slack

  """
  A Slack handle contact method.
  """
  slack_handle

  """
  A website contact method.
  """
  web
}

"""
Specifies the input fields used to update a contact.
"""
input ContactUpdateInput {
  """
  The contact address. Examples: support@company.com for type `email`, https://opslevel.com for type `web`.
  """
  address: String

  """
  The name shown in the UI for the contact.
  """
  displayName: String

  """
  The type shown in the UI for the contact.
  """
  displayType: String

  """
  The remote identifier of the contact method.
  """
  externalId: String

  """
  The unique identifier for the contact.
  """
  id: ID!

  """
  Makes the contact the default for the given type. Only available for team contacts.
  """
  makeDefault: Boolean

  """
  The method of contact [email, slack, slack_handle, web, microsoft_teams].
  """
  type: ContactType
}

"""
The return type of a `contactUpdate` mutation.
"""
type ContactUpdatePayload {
  """
  A method of contact for a team.
  """
  contact: Contact

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
The object that an event was triggered on.
"""
union CustomActionsAssociatedObject = Service

"""
The entity types a custom action can be associated with.
"""
enum CustomActionsEntityTypeEnum {
  """
  A custom action associated with the global scope (no particular entity type).
  """
  GLOBAL

  """
  A custom action associated with services.
  """
  SERVICE
}

"""
An external action to be triggered by a custom action.
"""
interface CustomActionsExternalAction {
  """
  Any aliases for this external action.
  """
  aliases: [String!]!

  """
  Whether the action expects an additional, asynchronous response upon completion.
  """
  async: Boolean!

  """
  A description of what the action should accomplish.
  """
  description: String

  """
  The ID of the external action.
  """
  id: ID!

  """
  The liquid template used to generate the data sent to the external action.
  """
  liquidTemplate: String

  """
  The name of the external action.
  """
  name: String!
}

"""
The connection type for CustomActionsExternalAction.
"""
type CustomActionsExternalActionsConnection {
  """
  A list of edges.
  """
  edges: [CustomActionsExternalActionsEdge]

  """
  A list of nodes.
  """
  nodes: [CustomActionsExternalAction]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type CustomActionsExternalActionsEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: CustomActionsExternalAction
}

"""
An HTTP request method.
"""
enum CustomActionsHttpMethodEnum {
  """
  An HTTP DELETE request.
  """
  DELETE

  """
  An HTTP GET request.
  """
  GET

  """
  An HTTP PATCH request.
  """
  PATCH

  """
  An HTTP POST request.
  """
  POST

  """
  An HTTP PUT request.
  """
  PUT
}

"""
Template of a custom action.
"""
type CustomActionsTemplate {
  """
  The template's action.
  """
  action: CustomActionsTemplatesAction!

  """
  The template's metadata.
  """
  metadata: CustomActionsTemplatesMetadata!

  """
  The template's trigger definition.
  """
  triggerDefinition: CustomActionsTemplatesTriggerDefinition!
}

"""
The action of a custom action template.
"""
type CustomActionsTemplatesAction {
  """
  A description of what the action should accomplish.
  """
  description: String

  """
  The headers sent along with the webhook, if any.
  """
  headers: JSON

  """
  The HTTP Method used to call the webhook action.
  """
  httpMethod: CustomActionsHttpMethodEnum!

  """
  The liquid template used to generate the data sent to the external action.
  """
  liquidTemplate: String

  """
  The name of the external action.
  """
  name: String!

  """
  The URL of the webhook action.
  """
  url: String!
}

"""
The metadata about the custom action template.
"""
type CustomActionsTemplatesMetadata {
  """
  The categories for the custom action template.
  """
  categories: [String!]!

  """
  The description of the custom action template.
  """
  description: String

  """
  The icon for the custom action template.
  """
  icon: String

  """
  The name of the custom action template.
  """
  name: String!
}

"""
The definition of a potential trigger for a template custom action.
"""
type CustomActionsTemplatesTriggerDefinition implements CustomActionsTriggerDefinitionBase {
  """
  The set of users that should be able to use the trigger definition.
  """
  accessControl: CustomActionsTriggerDefinitionAccessControlEnum!

  """
  The description of what the trigger definition will do, supports Markdown.
  """
  description: String

  """
  The YAML definition of any custom inputs for this trigger definition.
  """
  manualInputsDefinition: String

  """
  The name of the trigger definition.
  """
  name: String!

  """
  The published state of the action; true if the definition is ready for use; false if it is a draft.
  """
  published: Boolean!

  """
  The liquid template used to parse the response from the External Action.
  """
  responseTemplate: String
}

"""
The definition of a potential trigger for a custom action.
"""
type CustomActionsTriggerDefinition implements CustomActionsTriggerDefinitionBase {
  """
  The set of users that should be able to use the trigger definition.
  """
  accessControl: CustomActionsTriggerDefinitionAccessControlEnum!

  """
  The action that would be triggered.
  """
  action: CustomActionsExternalAction!

  """
  Any aliases for this trigger definition.
  """
  aliases: [String!]!

  """
  Configuration defining conditions of approval if it is required.
  """
  approvalConfig: ApprovalConfig!

  """
  If the user is authorized to invoke the action on the given associated object.
  """
  authorized(
    """
    The associated object for which the user might invoke the action.
    """
    associatedObject: IdentifierInput
  ): Boolean

  """
  The description of what the trigger definition will do, supports Markdown.
  """
  description: String

  """
  The entity type associated with this trigger definition.
  """
  entityType: CustomActionsEntityTypeEnum!

  """
  The set of additional teams who can invoke this trigger definition.
  """
  extendedTeamAccess(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TeamConnection!

  """
  A filter defining which services this trigger definition applies to, if present.
  """
  filter: Filter

  """
  The ID of the trigger definition.
  """
  id: ID!

  """
  The YAML definition of any custom inputs for this trigger definition.
  """
  manualInputsDefinition: String

  """
  The name of the trigger definition.
  """
  name: String!

  """
  The owner of the trigger definition.
  """
  owner: Team

  """
  The published state of the action; true if the definition is ready for use; false if it is a draft.
  """
  published: Boolean!

  """
  The liquid template used to parse the response from the External Action.
  """
  responseTemplate: String

  """
  Relevant timestamps.
  """
  timestamps: Timestamps!
}

"""
Who can see and use the trigger definition
"""
enum CustomActionsTriggerDefinitionAccessControlEnum {
  """
  Admin users
  """
  admins

  """
  All users of OpsLevel
  """
  everyone

  """
  The owners of a service
  """
  service_owners
}

interface CustomActionsTriggerDefinitionBase {
  """
  The set of users that should be able to use the trigger definition.
  """
  accessControl: CustomActionsTriggerDefinitionAccessControlEnum!

  """
  The description of what the trigger definition will do, supports Markdown.
  """
  description: String

  """
  The YAML definition of any custom inputs for this trigger definition.
  """
  manualInputsDefinition: String

  """
  The name of the trigger definition.
  """
  name: String!

  """
  The published state of the action; true if the definition is ready for use; false if it is a draft.
  """
  published: Boolean!

  """
  The liquid template used to parse the response from the External Action.
  """
  responseTemplate: String
}

"""
The connection type for CustomActionsTriggerDefinition.
"""
type CustomActionsTriggerDefinitionConnection {
  """
  A list of edges.
  """
  edges: [CustomActionsTriggerDefinitionEdge]

  """
  The number of trigger definitions that match the query
  """
  filteredCount: Int!

  """
  A list of nodes.
  """
  nodes: [CustomActionsTriggerDefinition]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The total number of trigger definitions for the account
  """
  totalCount: Int!
}

"""
Specifies the input fields used in the `customActionsTriggerDefinitionCreate` mutation.
"""
input CustomActionsTriggerDefinitionCreateInput {
  """
  The set of users that should be able to use the trigger definition.
  """
  accessControl: CustomActionsTriggerDefinitionAccessControlEnum

  """
  The action that will be triggered by the Trigger Definition.
  """
  actionId: ID

  """
  Config for approval of action.
  """
  approvalConfig: ApprovalConfigInput

  """
  The description of what the Trigger Definition will do, supports Markdown.
  """
  description: String

  """
  The entity type to associate with the Trigger Definition.
  """
  entityType: CustomActionsEntityTypeEnum = SERVICE

  """
  The set of additional teams who can invoke this Trigger Definition.
  """
  extendedTeamAccess: [IdentifierInput!] = []

  """
  The filter that will determine which services apply to the Trigger Definition.
  """
  filterId: ID

  """
  The YAML definition of custom inputs for the Trigger Definition.
  """
  manualInputsDefinition: String

  """
  The name of the Trigger Definition.
  """
  name: String!

  """
  The owner of the Trigger Definition.
  """
  ownerId: ID!

  """
  The published state of the action; true if the definition is ready for use; false if it is a draft.
  """
  published: Boolean

  """
  The liquid template used to parse the response from the External Action.
  """
  responseTemplate: String
}

"""
Return type for the `customActionsTriggerDefinitionCreate` mutation.
"""
type CustomActionsTriggerDefinitionCreatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The definition of a potential trigger for a custom action.
  """
  triggerDefinition: CustomActionsTriggerDefinition
}

"""
An edge in a connection.
"""
type CustomActionsTriggerDefinitionEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: CustomActionsTriggerDefinition
}

"""
Specifies the input fields used in the `customActionsTriggerDefinitionUpdate` mutation.
"""
input CustomActionsTriggerDefinitionUpdateInput {
  """
  The set of users that should be able to use the trigger definition.
  """
  accessControl: CustomActionsTriggerDefinitionAccessControlEnum

  """
  The details for the action to update for the Trigger Definition.
  """
  action: CustomActionsWebhookActionUpdateInput

  """
  The action that will be triggered by the Trigger Definition.
  """
  actionId: ID

  """
  Config for approval of action.
  """
  approvalConfig: ApprovalConfigInput

  """
  The description of what the Trigger Definition will do, support Markdown.
  """
  description: String

  """
  The entity type to associate with the Trigger Definition.
  """
  entityType: CustomActionsEntityTypeEnum = SERVICE

  """
  The set of additional teams who can invoke this Trigger Definition.
  """
  extendedTeamAccess: [IdentifierInput!]

  """
  The filter that will determine which services apply to the Trigger Definition.
  """
  filterId: ID

  """
  The ID of the trigger definition.
  """
  id: ID!

  """
  The YAML definition of custom inputs for the Trigger Definition.
  """
  manualInputsDefinition: String

  """
  The name of the Trigger Definition.
  """
  name: String

  """
  The owner of the Trigger Definition.
  """
  ownerId: ID

  """
  The published state of the action; true if the definition is ready for use; false if it is a draft.
  """
  published: Boolean

  """
  The liquid template used to parse the response from the External Action.
  """
  responseTemplate: String
}

"""
Return type for the `customActionsTriggerDefinitionUpdate` mutation.
"""
type CustomActionsTriggerDefinitionUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The definition of a potential trigger for a custom action.
  """
  triggerDefinition: CustomActionsTriggerDefinition
}

"""
A single instance of an invocation of a trigger definition
"""
type CustomActionsTriggerEvent {
  """
  The actor that triggered the event.
  """
  actor: CustomActionsTriggerEventActor

  """
  If an action is in the PENDING_APPROVAL status, the timestamp when the option to approve it will expire. Otherwise, null.
  """
  approvalExpiresAt: ISO8601DateTime

  """
  Whether or not the approvable event was approved.
  """
  approvalResult: ApprovalResult

  """
  The object that the event was triggered on.
  """
  associatedObject: CustomActionsAssociatedObject

  """
  The time at which the entity was marked as completed.
  """
  completedAt: ISO8601DateTime

  """
  The context values used to render the action's templates.
  """
  context: JSON!

  """
  The definition of the trigger event.
  """
  definition: CustomActionsTriggerDefinition

  """
  The ID of the trigger definition Event.
  """
  id: ID!

  """
  The response to the user, as generated from the template on the Trigger Definition.
  """
  renderedResponse: String

  """
  The request sent to the action.
  """
  request: String

  """
  The response received from the action.
  """
  response: String

  """
  The payload received from updating the status of the action (if asynchronous).
  """
  result: String

  """
  The status of the trigger event.
  """
  status: CustomActionsTriggerEventStatusEnum!

  """
  Relevant timestamps.
  """
  timestamps: Timestamps!

  """
  The user that triggered the event.
  """
  user: User @deprecated(reason: "Use `actor` instead")
}

"""
The actor that triggered the event.
"""
union CustomActionsTriggerEventActor = ApiToken | User

"""
The connection type for CustomActionsTriggerEvent.
"""
type CustomActionsTriggerEventConnection {
  """
  A list of edges.
  """
  edges: [CustomActionsTriggerEventEdge]

  """
  The number of trigger events that match the query
  """
  filteredCount: Int!

  """
  A list of nodes.
  """
  nodes: [CustomActionsTriggerEvent]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The total number of trigger events for the account
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type CustomActionsTriggerEventEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: CustomActionsTriggerEvent
}

"""
The status of the custom action trigger event.
"""
enum CustomActionsTriggerEventStatusEnum {
  """
  The action failed to complete.
  """
  FAILURE

  """
  A result has not been determined.
  """
  PENDING

  """
  The action is waiting for an approval before it executes.
  """
  PENDING_APPROVAL

  """
  The action completed successfully.
  """
  SUCCESS
}

"""
Inputs that specify the trigger definition to invoke, the user that invoked it, and what object it is invoked on.
"""
input CustomActionsTriggerInvokeInput {
  """
  Additional details provided for a specific invocation of this Custom Action.
  """
  manualInputs: JSON = "{}"

  """
  The identifier of the object to perform the custom action on.
  """
  targetObject: IdentifierInput

  """
  The trigger definition to invoke.
  """
  triggerDefinition: IdentifierInput!
}

"""
The response returned after invoking a custom action trigger.
"""
type CustomActionsTriggerInvokePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A single instance of an invocation of a trigger definition
  """
  triggerEvent: CustomActionsTriggerEvent
}

"""
An external webhook action to be triggered by a custom action.
"""
type CustomActionsWebhookAction implements CustomActionsExternalAction {
  """
  Any aliases for this external action.
  """
  aliases: [String!]!

  """
  Whether the action expects an additional, asynchronous response upon completion.
  """
  async: Boolean!

  """
  A description of what the action should accomplish.
  """
  description: String

  """
  The headers sent along with the webhook, if any.
  """
  headers: JSON

  """
  The HTTP Method used to call the webhook action.
  """
  httpMethod: CustomActionsHttpMethodEnum!

  """
  The ID of the external action.
  """
  id: ID!

  """
  The liquid template used to generate the data sent to the external action.
  """
  liquidTemplate: String

  """
  The name of the external action.
  """
  name: String!

  """
  The URL of the webhook action.
  """
  webhookUrl: String!
}

"""
Specifies the input fields used in the `customActionsWebhookActionCreate` mutation.
"""
input CustomActionsWebhookActionCreateInput {
  """
  Whether the action expects an additional, asynchronous response upon completion.
  """
  async: Boolean! = false

  """
  The description that gets assigned to the Webhook Action you're creating.
  """
  description: String

  """
  HTTP headers be passed along with your Webhook when triggered.
  """
  headers: JSON

  """
  HTTP used when the Webhook is triggered. Either POST or PUT.
  """
  httpMethod: CustomActionsHttpMethodEnum!

  """
  Template that can be used to generate a Webhook payload.
  """
  liquidTemplate: String

  """
  The name that gets assigned to the Webhook Action you're creating.
  """
  name: String!

  """
  The URL that you wish to send the Webhook to when triggered.
  """
  webhookUrl: String!
}

"""
Return type for the `customActionsWebhookActionCreate` mutation.
"""
type CustomActionsWebhookActionCreatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  An external webhook action to be triggered by a custom action.
  """
  webhookAction: CustomActionsWebhookAction
}

"""
Inputs that specify the details of a Webhook Action you wish to update
"""
input CustomActionsWebhookActionUpdateInput {
  """
  Whether the action expects an additional, asynchronous response upon completion.
  """
  async: Boolean

  """
  The description that gets assigned to the Webhook Action you're creating.
  """
  description: String

  """
  HTTP headers be passed along with your Webhook when triggered.
  """
  headers: JSON

  """
  HTTP used when the Webhook is triggered. Either POST or PUT.
  """
  httpMethod: CustomActionsHttpMethodEnum

  """
  The ID of the Webhook Action you wish to update.
  """
  id: ID!

  """
  Template that can be used to generate a Webhook payload.
  """
  liquidTemplate: String

  """
  The name that gets assigned to the Webhook Action you're creating.
  """
  name: String

  """
  The URL that you wish to send the Webhook too when triggered.
  """
  webhookUrl: String
}

"""
The response returned after updating a Webhook Action
"""
type CustomActionsWebhookActionUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  An external webhook action to be triggered by a custom action.
  """
  webhookAction: CustomActionsWebhookAction
}

type CustomCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

type CustomEventCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  True if this check should pass by default. Otherwise the default 'pending' state counts as a failure.
  """
  passPending: Boolean!

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The check result message template.
  """
  resultMessage: String

  """
  A jq expression that will be ran against your payload to select the service.
  """
  serviceSelector: String!

  """
  A jq expression that will be ran against your payload to evaluate the check
  result. A truthy value will result in the check passing.
  """
  successCondition: String!

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

type CustomIntegration implements HasEtlConfig & Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The configured definition for extracting data from inbound webhooks or HTTP polling.
  """
  extractDefinition: YAML

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The configured definition for transforming extracted data from inbound webhooks or HTTP polling to another resource.
  """
  transformDefinition: YAML

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
Input for upserting a custom integration.
"""
input CustomIntegrationInput {
  """
  The configured definition for extracting data from inbound webhooks or HTTP polling.
  """
  extractDefinition: YAML

  """
  Name of the custom integration type.
  """
  name: String

  """
  The configured definition for transforming extracted data from inbound webhooks or HTTP polling to another resource.
  """
  transformDefinition: YAML
}

type DatadogIntegration implements Integration & ManualAlertSourceSync {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  Indicates if manual alert source synchronization can be triggered.
  """
  allowManualSyncAlertSources: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The time that alert sources were last manually synchronized at.
  """
  lastManualSyncAlertSources: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
Possible days of the week.
"""
enum DayOfWeekEnum {
  """
  Yesterday was Thursday. Tomorrow is Saturday. We so excited.
  """
  friday

  """
  Monday is the day of the week that takes place between Sunday and Tuesday.
  """
  monday

  """
  The day of the week before Sunday and following Friday, and (together with Sunday) forming part of the weekend.
  """
  saturday

  """
  The day of the week before Monday and following Saturday, (together with Saturday) forming part of the weekend.
  """
  sunday

  """
  The day of the week before Friday and following Wednesday.
  """
  thursday

  """
  Tuesday is the day of the week between Monday and Wednesday.
  """
  tuesday

  """
  The day of the week before Thursday and following Tuesday.
  """
  wednesday
}

"""
Specifies the input fields used to delete an entity.
"""
input DeleteInput {
  """
  The id of the entity to be deleted.
  """
  id: ID!
}

"""
The return type of the delete mutation.
"""
type DeletePayload {
  """
  The id of the deleted entity.
  """
  deletedId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
An event sent via webhook to track deploys.
"""
type Deploy {
  """
  The associated OpsLevel user for the deploy.
  """
  associatedUser: User

  """
  The author of the deploy.
  """
  author: String

  """
  The email of the commit.
  """
  commitAuthorEmail: String

  """
  The author of the commit.
  """
  commitAuthorName: String

  """
  The time the commit was authored.
  """
  commitAuthoringDate: ISO8601DateTime

  """
  The branch the commit took place on.
  """
  commitBranch: String

  """
  The commit message associated with the deploy.
  """
  commitMessage: String

  """
  The sha associated with the commit of the deploy.
  """
  commitSha: String

  """
  The time the commit happened.
  """
  committedAt: ISO8601DateTime

  """
  The email of the person who created the commit.
  """
  committerEmail: String

  """
  The name of the person who created the commit.
  """
  committerName: String

  """
  The deduplication ID provided to prevent duplicate deploys.
  """
  dedupId: String

  """
  An identifier to keep track of the version of the deploy.
  """
  deployNumber: String

  """
  The normalized status of the deploy. This is derived from the status field.
  """
  deployStatus: DeployStatusEnum

  """
  The url the where the deployment can be found.
  """
  deployUrl: String

  """
  The time the deployment happened.
  """
  deployedAt: ISO8601DateTime

  """
  The email of who is responsible for the deployment.
  """
  deployerEmail: String

  """
  An external id of who deployed.
  """
  deployerId: String

  """
  The name of who is responsible for the deployment.
  """
  deployerName: String

  """
  The given description of the deploy.
  """
  description: String!

  """
  The duration of the deploy.
  """
  duration: Int

  """
  The environment in which the deployment happened in.
  """
  environment: String

  """
  The id of the deploy.
  """
  id: ID!

  """
  The integration name of the deploy.
  """
  providerName: String

  """
  The integration type used the deploy.
  """
  providerType: String

  """
  The url to the deploy integration.
  """
  providerUrl: String

  """
  The service object the deploy is attached to.
  """
  service: Service

  """
  The alias used to associated this deploy to its service.
  """
  serviceAlias: String!

  """
  The id the deploy is associated to.
  """
  serviceId: String

  """
  The time the deploy started.
  """
  startedAt: ISO8601DateTime

  """
  The deployment status.
  """
  status: String
}

"""
The connection type for Deploy.
"""
type DeployConnection {
  """
  A list of edges.
  """
  edges: [DeployEdge]

  """
  the total number of deploys that match the query criteria.
  """
  filteredCount: Int!

  """
  Whether or not deploys exist for the given service.
  """
  hasDeploys: Boolean!

  """
  A list of nodes.
  """
  nodes: [Deploy]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The total number of deploys for an account.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type DeployEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Deploy
}

type DeployIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
The possible statuses of a deploy.
"""
enum DeployStatusEnum {
  """
  The deploy was canceled.
  """
  canceled

  """
  The deploy failed.
  """
  failure

  """
  The deploy has no recognized status.
  """
  no_status

  """
  The deploy is queued.
  """
  queued

  """
  The deploy is currently running.
  """
  running

  """
  The deploy was successful.
  """
  success
}

"""
A document that is attached to resource(s) in OpsLevel.
"""
type Document {
  """
  The contents of the document.
  """
  content: String

  """
  The URL of the document, if any.
  """
  htmlUrl: String

  """
  The ID of the Document.
  """
  id: ID!

  """
  The source of the document.
  """
  source: DocumentSource!

  """
  When the document was created and updated.
  """
  timestamps: Timestamps!
}

"""
The connection type for Document.
"""
type DocumentConnection {
  """
  A list of edges.
  """
  edges: [DocumentEdge]

  """
  A list of nodes.
  """
  nodes: [Document]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type DocumentEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Document
}

"""
The source of a document.
"""
union DocumentSource = ApiDocIntegration | Repository | Service | ServiceRepository

"""
A collection of related Systems.
"""
type Domain {
  """
  All of the aliases attached to the resource.
  """
  aliases: [String!]!

  """
  All systems that belong to the resource.
  """
  childSystems(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): SystemConnection

  """
  All infrastructure resources that belong to Systems in the Domain.
  """
  descendantInfrastructureResources(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): InfrastructureResourceConnection

  """
  All services that belong to Systems in the Domain.
  """
  descendantServices(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): ServiceConnection!

  """
  The description of the Domain.
  """
  description: String

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The identifier of the object.
  """
  id: ID!

  """
  A list of aliases that can be set by users. The unique identifier for the resource is omitted.
  """
  managedAliases: [String!]!

  """
  The name of the object.
  """
  name: String!

  """
  Additional information about the domain.
  """
  note: String

  """
  The owner of the object.
  """
  owner: EntityOwner

  """
  The tags applied to the object.
  """
  tags(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TagConnection
}

"""
Return type for the `domainChildAssign` mutation.
"""
type DomainChildAssignPayload {
  """
  The domain after children have been assigned.
  """
  domain: Domain

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Return type for the `domainChildRemove` mutation.
"""
type DomainChildRemovePayload {
  """
  The domain after children have been removed.
  """
  domain: Domain

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
The connection type for Domain.
"""
type DomainConnection {
  """
  A list of edges.
  """
  edges: [DomainEdge]

  """
  The number of domains that match the provided filters or search criteria.
  """
  filteredCount: Int

  """
  A list of nodes.
  """
  nodes: [Domain]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type DomainEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  A hash of the fields and their associated highlights from a domains query.
  """
  highlights: JSON

  """
  The item at the end of the edge.
  """
  node: Domain
}

"""
Specifies the input fields for a domain.
"""
input DomainInput {
  """
  The description for the domain.
  """
  description: String

  """
  The name for the domain.
  """
  name: String

  """
  Additional information about the domain.
  """
  note: String

  """
  The id of the owner for the domain.
  """
  ownerId: ID
}

"""
Return type for `domainCreate` and `domainUpdate` mutations.
"""
type DomainPayload {
  """
  A collection of related Systems.
  """
  domain: Domain

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
The Group or Team owning the entity.
"""
union EntityOwner = Group | Team

"""
The input error of a mutation.
"""
type Error {
  """
  The error message.
  """
  message: String!

  """
  The path to the input field with an error.
  """
  path: [String!]!
}

"""
The type of event integration.
"""
enum EventIntegrationEnum {
  """
  API Documentation integration
  """
  apiDoc

  """
  Aqua Security Custom Event Check integration
  """
  aquaSecurity

  """
  ArgoCD deploy integration
  """
  argocd

  """
  AWS ECR Custom Event Check integration
  """
  awsEcr

  """
  Bugsnag Custom Event Check integration
  """
  bugsnag

  """
  CircleCI deploy integration
  """
  circleci

  """
  Codacy Custom Event Check integration
  """
  codacy

  """
  Coveralls Custom Event Check integration
  """
  coveralls

  """
  Custom Event integration.
  """
  customEvent

  """
  Datadog Check integration
  """
  datadogCheck

  """
  Deploy integration
  """
  deploy

  """
  Dynatrace Custom Event Check integration
  """
  dynatrace

  """
  Flux deploy integration
  """
  flux @deprecated(reason: "Weaveworks has shutdown and the Flux integration has been removed.")

  """
  Github Actions deploy integration
  """
  githubActions

  """
  Gitlab CI deploy integration
  """
  gitlabCi

  """
  Grafana Custom Event Check integration
  """
  grafana

  """
  Grype Custom Event Check integration
  """
  grype

  """
  Jenkins deploy integration
  """
  jenkins

  """
  JFrog Xray Custom Event Check integration
  """
  jfrogXray

  """
  Lacework Custom Event Check integration
  """
  lacework

  """
  New Relic Check integration
  """
  newRelicCheck

  """
  Octopus deploy integration
  """
  octopus

  """
  Prisma Cloud Custom Event Check integration
  """
  prismaCloud

  """
  Prometheus Custom Event Check integration
  """
  prometheus

  """
  Rollbar Custom Event Check integration
  """
  rollbar

  """
  Sentry Custom Event Check integration
  """
  sentry

  """
  Snyk Custom Event Check integration
  """
  snyk @deprecated(reason: "Replaced by Generic Snyk Event Integration (snyk_event).")

  """
  Snyk Custom Event Check integration
  """
  snykEvent

  """
  SonarQube Custom Event Check integration
  """
  sonarqube @deprecated(reason: "Replaced by Generic Snyk Event Integration (sonarqube_event).")

  """
  SonarQube Custom Event Check integration
  """
  sonarqubeEvent

  """
  StackHawk Custom Event Check integration
  """
  stackhawk

  """
  Sumo Logic Custom Event Check integration
  """
  sumoLogic

  """
  Veracode Custom Event Check integration
  """
  veracode
}

input EventIntegrationInput {
  """
  The name of the event integration.
  """
  name: String

  """
  The type of event integration to create.
  """
  type: EventIntegrationEnum!
}

input EventIntegrationUpdateInput {
  """
  The ID of the event integration to update.
  """
  id: ID!

  """
  The name of the event integration.
  """
  name: String!
}

"""
The result of exporting an object as YAML.
"""
type ExportConfigFilePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The GraphQL type that represents the exported object
  """
  kind: String

  """
  The YAML representation of the object.
  """
  yaml: String
}

"""
Specifies the input fields to locate resouce created via API in OpsLevel.
"""
input ExternalResourceIdentifierInput {
  """
  The id of the resource in your system
  """
  externalId: String!

  """
  The integration identifier
  """
  integration: IdentifierInput!
}

"""
Specifies the input used for modifying a resource's external UUID.
"""
input ExternalUuidMutationInput {
  """
  The id of the resource.
  """
  resourceId: ID!
}

"""
Return type for the external UUID mutations.
"""
type ExternalUuidMutationPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The updated external UUID of the resource.
  """
  externalUuid: String
}

"""
A filter is used to select which services will have checks applied. It can also be used to filter services in reports.
"""
type Filter {
  """
  The logical operator to be used in conjunction with predicates.
  """
  connective: ConnectiveEnum

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the filter.
  """
  id: ID!

  """
  The display name of the filter.
  """
  name: String!

  """
  The predicates used to select services.
  """
  predicates: [FilterPredicate!]!
}

"""
The connection type for Filter.
"""
type FilterConnection {
  """
  A list of edges.
  """
  edges: [FilterEdge]

  """
  A list of nodes.
  """
  nodes: [Filter]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
Specifies the input fields used to create a filter.
"""
input FilterCreateInput {
  """
  The logical operator to be used in conjunction with predicates.
  """
  connective: ConnectiveEnum

  """
  The display name of the filter.
  """
  name: String!

  """
  The list of predicates used to select which services apply to the filter.
  """
  predicates: [FilterPredicateInput!]
}

"""
The return type of a `filterCreatePayload` mutation.
"""
type FilterCreatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The newly created filter.
  """
  filter: Filter
}

"""
An edge in a connection.
"""
type FilterEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Filter
}

"""
A condition used to select services.
"""
type FilterPredicate {
  """
  Option for determining whether to compare strings case-sensitively.
  """
  caseSensitive: Boolean

  """
  The key of the condition.
  """
  key: PredicateKeyEnum!

  """
  Additional data used in the condition.
  """
  keyData: String

  """
  Type of operation to be used in the condition.
  """
  type: PredicateTypeEnum!

  """
  The value of the condition.
  """
  value: String
}

"""
A condition that should be satisfied.
"""
input FilterPredicateInput {
  caseSensitive: Boolean

  """
  The condition key used by the predicate.
  """
  key: PredicateKeyEnum!

  """
  Additional data used by the predicate. This field is used by predicates with
  key = 'tags' to specify the tag key. For example, to create a predicate for
  services containing the tag 'db:mysql', set keyData = 'db' and value = 'mysql'.
  """
  keyData: String

  """
  The condition type used by the predicate.
  """
  type: PredicateTypeEnum!

  """
  The condition value used by the predicate.
  """
  value: String
}

"""
Specifies the input fields used to update a filter.
"""
input FilterUpdateInput {
  """
  The logical operator to be used in conjunction with predicates.
  """
  connective: ConnectiveEnum

  """
  The id of the filter.
  """
  id: ID!

  """
  The display name of the filter.
  """
  name: String

  """
  The list of predicates used to select which services apply to the filter. All
  existing predicates will be replaced by these predicates.
  """
  predicates: [FilterPredicateInput!]
}

"""
The return type of the `filterUpdate` mutation.
"""
type FilterUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The updated filter.
  """
  filter: Filter
}

type FireHydrantIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The status of the Webhook connection.
  """
  webhookStatus: String

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
A FireHydrant integration input
"""
input FireHydrantIntegrationInput {
  """
  The API Key for the FireHydrant API.
  """
  apiKey: String

  """
  The name for the FireHydrant integration.
  """
  name: String
}

"""
Deprecated: Weaveworks has shutdown and the Flux integration has been removed.
"""
type FluxIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
The time scale type for the frequency.
"""
enum FrequencyTimeScale {
  """
  Consider the time scale of days.
  """
  day

  """
  Consider the time scale of months.
  """
  month

  """
  Consider the time scale of weeks.
  """
  week

  """
  Consider the time scale of years.
  """
  year
}

type GenericIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

type GitBranchProtectionCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

type GitLabCIIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

type GithubActionsIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

type GithubIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

type GitlabIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

type GoogleCloudIntegration implements HasEtlConfig & Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  All of the aliases attached to the integration.
  """
  aliases: [String!]!

  """
  The service account email OpsLevel uses to access the Google Cloud account.
  """
  clientEmail: String!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The configured definition for extracting data from inbound webhooks or HTTP polling.
  """
  extractDefinition: YAML

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  An array of tag keys used to associate ownership from an integration. Max 5.
  """
  ownershipTagKeys: [String!]!

  """
  A list of the Google Cloud projects that were imported by the integration.
  """
  projects: [GoogleCloudProject!]!

  """
  Set of keys used to generate relationships from the tags imported by this integration.
  """
  tagRelationshipKeys: TagRelationshipKeys!

  """
  Allow tags imported from Google Cloud to override ownership set in OpsLevel directly.
  """
  tagsOverrideOwnership: Boolean!

  """
  The configured definition for transforming extracted data from inbound webhooks or HTTP polling to another resource.
  """
  transformDefinition: YAML

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
Specifies the input fields used to create and update a Google Cloud integration.
"""
input GoogleCloudIntegrationInput {
  """
  The service account email OpsLevel uses to access the Google Cloud account.
  """
  clientEmail: String

  """
  The name of the integration.
  """
  name: String

  """
  An array of tag keys used to associate ownership from an integration. Max 5.
  """
  ownershipTagKeys: [String!]

  """
  The private key for the service account that OpsLevel uses to access the Google Cloud account.
  """
  privateKey: String

  """
  Allow tags imported from Google Cloud to override ownership set in OpsLevel directly.
  """
  tagsOverrideOwnership: Boolean
}

type GoogleCloudProject {
  """
  The ID of the Google Cloud project.
  """
  id: String!

  """
  The name of the Google Cloud project.
  """
  name: String!

  """
  The URL to the Google Cloud project.
  """
  url: String!
}

"""
A group represents a collection of teams and/or other groups used to reflect your organization's functional structure.
"""
type Group {
  """
  A human-friendly, unique identifier for the group.
  """
  alias: String!

  """
  A list of human-friendly, unique identifiers for the group.
  """
  aliases: [String!]!

  """
  A list of groups that are ancestors of this group.
  """
  ancestors(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): AncestorGroupsConnection

  """
  The groups where this group is the direct parent.
  """
  childSubgroups(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): SubgroupConnection

  """
  The teams where this group is the direct parent.
  """
  childTeams(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TeamConnection

  """
  All the domains that are owned by this group and its descendants.
  """
  descendantDomains(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): DomainConnection

  """
  All the infrastructure resources that are owned by descendants of this group.
  """
  descendantInfrastructureResources(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): InfrastructureResourceConnection

  """
  All the repositories that fall under this group - ex. this group's child
  repositories, all the child repositories of this group's descendants, etc.
  """
  descendantRepositories(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): RepositoryConnection

  """
  All the services that fall under this group - ex. this group's child services,
  all the child services of this group's descendants, etc.
  """
  descendantServices(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): ServiceConnection

  """
  All the groups that fall under this group - ex. this group's child groups, children of those groups, etc.
  """
  descendantSubgroups(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): SubgroupConnection

  """
  All the systems that are owned by this group and its descendants.
  """
  descendantSystems(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): SystemConnection

  """
  All the teams that fall under this group - ex. this group's child teams, all
  the child teams of this group's descendants, etc.
  """
  descendantTeams(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TeamConnection

  """
  The description of the group.
  """
  description: String

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the group.
  """
  id: ID!

  """
  The users who are members of the group.
  """
  members(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): UserConnection

  """
  The name of the group.
  """
  name: String!

  """
  The parent of the group.
  """
  parent: Group
}

"""
The connection type for Group.
"""
type GroupConnection {
  """
  A list of edges.
  """
  edges: [GroupEdge]

  """
  A list of nodes.
  """
  nodes: [Group]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type GroupEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Group
}

"""
Specifies the input fields used to create and update a group.
"""
input GroupInput {
  """
  The description of the group.
  """
  description: String

  """
  The users who are members of the group.
  """
  members: [MemberInput!]

  """
  The name of the group.
  """
  name: String

  """
  The parent of the group
  """
  parent: IdentifierInput

  """
  The teams where this group is the direct parent.
  """
  teams: [IdentifierInput!]
}

"""
Specifies the fields returned when creating or updating a group.
"""
type GroupPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A group represents a collection of teams and/or other groups used to reflect your organization's functional structure.
  """
  group: Group
}

type HasDocumentationCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The subtype of the document.
  """
  documentSubtype: String!

  """
  The type of the document.
  """
  documentType: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
The subtype of the document.
"""
enum HasDocumentationSubtypeEnum {
  """
  Document is an OpenAPI document.
  """
  openapi
}

"""
The type of the document.
"""
enum HasDocumentationTypeEnum {
  """
  Document is an API document.
  """
  api

  """
  Document is a Tech document.
  """
  tech
}

"""
An entity type that can have an ETL configuration.
"""
interface HasEtlConfig {
  """
  The configured definition for extracting data from inbound webhooks or HTTP polling.
  """
  extractDefinition: YAML

  """
  The configured definition for transforming extracted data from inbound webhooks or HTTP polling to another resource.
  """
  transformDefinition: YAML
}

"""
An entity type that can have custom properties.
"""
interface HasProperties {
  """
  Custom properties assigned to this entity.
  """
  properties(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Optionally filter the properties by display status.
    """
    displayStatus: PropertyDisplayStatusEnum

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): PropertyConnection!

  """
  A custom property value assigned to this entity.
  """
  property(definition: IdentifierInput!): Property
}

type HasRecentDeployCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  The number of days to check since the last deploy.
  """
  days: Int!

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
An ISO 8601-encoded datetime
"""
scalar ISO8601DateTime @specifiedBy(url: "https://tools.ietf.org/html/rfc3339")

"""
Specifies the input fields used to identify a resource.
"""
input IdentifierInput {
  """
  The human-friendly, unique identifier for the resource.
  """
  alias: String

  """
  The id of the resource.
  """
  id: ID
}

"""
Results of importing an Entity from Backstage into OpsLevel.
"""
type ImportEntityFromBackstagePayload {
  """
  The action taken by OpsLevel (ie: service created).
  """
  actionMessage: String!

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A link to the created or updated object in OpsLevel, if any.
  """
  htmlUrl: String
}

type IncidentIoIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
An Infrastructure Resource.
"""
type InfrastructureResource {
  """
  The aliases attached to the infrastructure resource.
  """
  aliases: [String!]!

  """
  The properties that describe the Infrastructure Resource.
  """
  data: JSON

  """
  The relative path for this. Ex. /services/shopping_cart
  """
  href: String!

  """
  The identifier of the object.
  """
  id: ID!

  """
  The Integration that was used to import the InfrastructureResource data.
  """
  integration: Integration

  """
  The date that the InfrastructureResource data was last refreshed.
  """
  lastSyncedAt: ISO8601DateTime

  """
  The name of the object.
  """
  name: String!

  """
  The owner of the object.
  """
  owner: EntityOwner

  """
  Whether the resource's owner is locked.
  """
  ownerLocked: Boolean

  """
  Data about the provider the infrastructure resource is from.
  """
  providerData: InfrastructureResourceProviderData

  """
  The type of the infrastructure resource in its provider.
  """
  providerResourceType: String

  """
  The raw, untransformed data used by OpsLevel to populate the InfrastructureResource.
  """
  rawData: JSON

  """
  A list of related resources.
  """
  relatedResources(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): RelatedResourceConnection

  """
  The tags applied to the object.
  """
  tags(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TagConnection

  """
  The type of Infrastructure Resource.
  """
  type: String!
}

"""
The connection type for InfrastructureResource.
"""
type InfrastructureResourceConnection {
  """
  A list of edges.
  """
  edges: [InfrastructureResourceEdge]

  """
  A list of nodes.
  """
  nodes: [InfrastructureResource]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type InfrastructureResourceEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: InfrastructureResource
}

"""
Specifies the input fields for a infrastructure resource.
"""
input InfrastructureResourceInput {
  """
  The data for the infrastructure_resource.
  """
  data: JSON

  """
  The id of the owner for the infrastructure_resource.
  """
  ownerId: ID

  """
  Data about the provider of the infrastructure resource.
  """
  providerData: InfrastructureResourceProviderDataInput

  """
  The type of the infrastructure resource in its provider.
  """
  providerResourceType: String

  """
  The schema for the infrastructure_resource that determines its type.
  """
  schema: InfrastructureResourceSchemaInput
}

"""
Return type for the `infrastructureResourceUpdate` mutation.
"""
type InfrastructureResourcePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  An Infrastructure Resource.
  """
  infrastructureResource: InfrastructureResource

  """
  The warnings of the mutation.
  """
  warnings: [Warning!]!
}

"""
Data about the provider the infrastructure resource is from.
"""
type InfrastructureResourceProviderData {
  """
  The account name of the provider.
  """
  accountName: String!

  """
  The external URL of the infrastructure resource in its provider.
  """
  externalUrl: String

  """
  The name of the provider (e.g. AWS, GCP, Azure).
  """
  providerName: String
}

"""
Specifies the input fields for data about an infrastructure resource's provider.
"""
input InfrastructureResourceProviderDataInput {
  """
  The account name of the provider.
  """
  accountName: String!

  """
  The external URL of the infrastructure resource in its provider.
  """
  externalUrl: String

  """
  The name of the provider (e.g. AWS, GCP, Azure).
  """
  providerName: String
}

"""
A schema for Infrastructure Resources.
"""
type InfrastructureResourceSchema {
  """
  The schema definition.
  """
  schema: JSONSchema!

  """
  The schema type.
  """
  type: String!
}

"""
The connection type for InfrastructureResourceSchema.
"""
type InfrastructureResourceSchemaConnection {
  """
  A list of edges.
  """
  edges: [InfrastructureResourceSchemaEdge]

  """
  A list of nodes.
  """
  nodes: [InfrastructureResourceSchema]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type InfrastructureResourceSchemaEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: InfrastructureResourceSchema
}

"""
Specifies the schema for an infrastructure resource.
"""
input InfrastructureResourceSchemaInput {
  """
  The type of the infrastructure resource.
  """
  type: String!
}

"""
An integration is a way of extending OpsLevel functionality.
"""
interface Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
The connection type for Integration.
"""
type IntegrationConnection {
  """
  A list of edges.
  """
  edges: [IntegrationEdge]

  """
  A list of nodes.
  """
  nodes: [Integration]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
The result of creating an integration.
"""
type IntegrationCreatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The newly created integration.
  """
  integration: Integration
}

"""
An edge in a connection.
"""
type IntegrationEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Integration
}

"""
The return type of a 'integrationReactivate' mutation.
"""
type IntegrationReactivatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The newly reactivated integration.
  """
  integration: Integration
}

"""
The return type of a 'integrationSourceObjectDelete' mutation.
"""
type IntegrationSourceObjectDeletePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The integration that the source object was deleted from.
  """
  integration: Integration
}

"""
The return type of a 'integrationSourceObjectUpsert' mutation.
"""
type IntegrationSourceObjectUpsertPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The integration that the source object was upserted to.
  """
  integration: Integration
}

"""
The return type of a 'integrationUpdate' mutation.
"""
type IntegrationUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The newly updated integration.
  """
  integration: Integration
}

type IssueTrackingIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
Represents untyped JSON
"""
scalar JSON

"""
A JSON schema.
"""
scalar JSONSchema

type JenkinsIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
A scalar for stringified (aka string-serialized) JSON input/output values. "Raw" JSON is not supported.
"""
scalar JsonString

type KubernetesIntegration implements HasEtlConfig & Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The configured definition for extracting data from inbound webhooks or HTTP polling.
  """
  extractDefinition: YAML

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The configured definition for transforming extracted data from inbound webhooks or HTTP polling to another resource.
  """
  transformDefinition: YAML

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
A language that can be assigned to a repository.
"""
type Language {
  """
  The name of the language
  """
  name: String!

  """
  The percentage of the code written in that language
  """
  usage: Float!
}

"""
A performance rating that is used to grade your services against.
"""
type Level {
  """
  The human-friendly, unique identifier for the level.
  """
  alias: String

  """
  The checks that belong to the level.
  """
  checks: [Check!]

  """
  A brief description of the level.
  """
  description: String

  """
  The unique identifier for the level.
  """
  id: ID!

  """
  The numerical representation of the level (highest is better).
  """
  index: Int

  """
  The display name of the level.
  """
  name: String
}

"""
The connection type for Level.
"""
type LevelConnection {
  """
  A list of edges.
  """
  edges: [LevelEdge]

  """
  A list of nodes.
  """
  nodes: [Level]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
The total number of services in each level.
"""
type LevelCount {
  """
  A performance rating that is used to grade your services against.
  """
  level: Level!

  """
  The number of services.
  """
  serviceCount: Int!
}

"""
Specifies the input fields used to create a level. The new level will be added as the highest level (greatest level index).
"""
input LevelCreateInput {
  """
  The description of the level.
  """
  description: String

  """
  an integer allowing this level to be inserted between others. Must be unique per Rubric.
  """
  index: Int

  """
  The display name of the level.
  """
  name: String!
}

"""
The return type of the `levelCreate` mutation.
"""
type LevelCreatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A performance rating that is used to grade your services against.
  """
  level: Level
}

"""
Specifies the input fields used to delete a level.
"""
input LevelDeleteInput {
  """
  The id of the level to be deleted.
  """
  id: ID!
}

"""
The return type of the `levelDelete` mutation.
"""
type LevelDeletePayload {
  """
  The id of the deleted level.
  """
  deletedLevelId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
An edge in a connection.
"""
type LevelEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Level
}

"""
Specifies the input fields used to update a level.
"""
input LevelUpdateInput {
  """
  The description of the level.
  """
  description: String

  """
  The id of the level to be updated.
  """
  id: ID!

  """
  The display name of the level.
  """
  name: String
}

"""
The return type of the `levelUpdate` mutation.
"""
type LevelUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A performance rating that is used to grade your services against.
  """
  level: Level
}

"""
A lifecycle represents the current development stage of a service.
"""
type Lifecycle {
  """
  The human-friendly, unique identifier for the lifecycle.
  """
  alias: String

  """
  The lifecycle's description.
  """
  description: String

  """
  The unique identifier for the lifecycle.
  """
  id: ID!

  """
  The numerical representation of the lifecycle.
  """
  index: Int

  """
  The lifecycle's display name.
  """
  name: String
}

"""
Input fields for updating a lifecycle
"""
input LifecycleUpdateInput {
  """
  The new description for the lifecycle.
  """
  description: String

  """
  The unique identifier of the lifecycle to update.
  """
  id: ID!

  """
  The new name for the lifecycle.
  """
  name: String
}

"""
The response payload for updating a lifecycle.
"""
type LifecycleUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The updated lifecycle object.
  """
  lifecycle: Lifecycle
}

"""
A rule that defines how a relationship is automatically managed.
"""
input ManagementRuleInput {
  """
  The operator used to compare the source and target properties.
  """
  operator: RelationshipDefinitionManagementRuleOperator! = EQUALS

  """
  The property on the source component type that is used in the rule.
  """
  sourceProperty: String!

  """
  Whether the source property is a built-in property.
  """
  sourcePropertyBuiltin: Boolean!

  """
  A component type category that is the target category for the rule.
  """
  targetCategory: String

  """
  The property on the target type that is used in the rule.
  """
  targetProperty: String!

  """
  Whether the target property is a built-in property.
  """
  targetPropertyBuiltin: Boolean!

  """
  The target type for the rule (i.e., a component type alias, 'team', or 'user').
  """
  targetType: String
}

interface ManualAlertSourceSync {
  """
  Indicates if manual alert source synchronization can be triggered.
  """
  allowManualSyncAlertSources: Boolean!

  """
  The time that alert sources were last manually synchronized at.
  """
  lastManualSyncAlertSources: ISO8601DateTime
}

type ManualCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The minimum frequency of the updates.
  """
  updateFrequency: ManualCheckFrequency

  """
  Whether the check requires a comment or not.
  """
  updateRequiresComment: Boolean!

  """
  The url to the check.
  """
  url: String!
}

type ManualCheckFrequency {
  """
  The time scale type for the frequency.
  """
  frequencyTimeScale: FrequencyTimeScale!

  """
  The value to be used together with the frequency scale.
  """
  frequencyValue: Int!

  """
  The date that the check will start to evaluate.
  """
  startingDate: ISO8601DateTime!
}

"""
Defines a frequency for the check update.
"""
input ManualCheckFrequencyInput {
  """
  The time scale type for the frequency.
  """
  frequencyTimeScale: FrequencyTimeScale!

  """
  The value to be used together with the frequency scale.
  """
  frequencyValue: Int!

  """
  The date that the check will start to evaluate.
  """
  startingDate: ISO8601DateTime!
}

"""
Defines a frequency for the check update.
"""
input ManualCheckFrequencyUpdateInput {
  """
  The time scale type for the frequency.
  """
  frequencyTimeScale: FrequencyTimeScale

  """
  The value to be used together with the frequency scale.
  """
  frequencyValue: Int

  """
  The date that the check will start to evaluate.
  """
  startingDate: ISO8601DateTime
}

"""
Input for specifying members on a group.
"""
input MemberInput {
  """
  The user's email.
  """
  email: String!
}

type MicrosoftTeamsIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

type Mutation {
  """
  Deletes and alert source.
  """
  alertSourceDelete(input: ExternalResourceIdentifierInput!): ResourceDeletePayload!

  """
  Attaches a single alert source to a service.
  """
  alertSourceServiceCreate(
    """
    Specifies the input used for attaching an alert source to a service.
    """
    input: AlertSourceServiceCreateInput!
  ): AlertSourceServiceCreatePayload!

  """
  Removes an alert source from a service.
  """
  alertSourceServiceDelete(
    """
    Specifies the input fields used in the `alertSourceServiceDelete` mutation.
    """
    input: AlertSourceServiceDeleteInput!
  ): AlertSourceServiceDeletePayload!

  """
  Updates the status of an alert source to ALL its associated services.
  """
  alertSourceStatusUpdate(
    """
    Specifies the input fields used in the `alertSourceStatusUpdate` mutation.
    """
    input: AlertSourceStatusUpdateInput!
  ): AlertSourcePayload!

  """
  Upserts an alert source.
  """
  alertSourceUpsert(
    """
    Input fields for the mutations to manage Alert Sources
    """
    input: AlertSourceInput!
  ): AlertSourcePayload!

  """
  Creates an alias on a resource.
  """
  aliasCreate(
    """
    The input for the `aliasCreate` mutation.
    """
    input: AliasCreateInput!
  ): AliasCreatePayload!

  """
  Deletes an alias.
  """
  aliasDelete(
    """
    The input for the `aliasDelete` mutation.
    """
    input: AliasDeleteInput!
  ): AliasDeletePayload!

  """
  Generates a new API token
  """
  apiTokenCreate(input: ApiTokenCreateInput!): ApiTokenCreatePayload!

  """
  Remove an Api Token
  """
  apiTokenDelete(resource: IdentifierInput!): ResourceDeletePayload!

  """
  Creates an AWS integration.
  """
  awsIntegrationCreate(input: AwsIntegrationInput!): IntegrationCreatePayload!

  """
  Updates an AWS integration.
  """
  awsIntegrationUpdate(input: AwsIntegrationInput!, integration: IdentifierInput!): IntegrationUpdatePayload!

  """
  Creates an Azure resources integration.
  """
  azureResourcesIntegrationCreate(input: AzureResourcesIntegrationInput!): IntegrationCreatePayload!

  """
  Updates an Azure resources integration.
  """
  azureResourcesIntegrationUpdate(input: AzureResourcesIntegrationInput!, integration: IdentifierInput!): IntegrationUpdatePayload!

  """
  Creates a campaign.
  """
  campaignCreate(
    """
    Specifies the input fields used to create a campaign.
    """
    input: CampaignCreateInput!
  ): CampaignCreatePayload!

  """
  Deletes a campaign.
  """
  campaignDelete(input: DeleteInput!): DeletePayload!

  """
  End a campaign and promote checks to the rubric.
  """
  campaignEnd(
    """
    Specifies the input fields used to end a campaign and promote checks to the rubric.
    """
    input: CampaignEndInput!
  ): CampaignEndPayload!

  """
  Schedules or updates a campaigns start and target dates.
  """
  campaignScheduleUpdate(
    """
    Specifies the input fields used to update a campaign schedule.
    """
    input: CampaignScheduleUpdateInput!
  ): CampaignScheduleUpdatePayload!

  """
  Sends a reminder message to teams about incomplete work for this campaign.
  """
  campaignSendReminder(
    """
    Specifies the input fields used to coordinate sending notifications to team members about a campaign.
    """
    input: CampaignSendReminderInput!
  ): CampaignSendReminderPayload!

  """
  Reverts a campaign to draft clearing the start and target dates.
  """
  campaignUnschedule(
    """
    Specifies the input fields used to unschedule a campaign.
    """
    input: CampaignUnscheduleInput!
  ): CampaignUnschedulePayload!

  """
  Updates a campaign.
  """
  campaignUpdate(
    """
    Specifies the input fields used to update a campaign.
    """
    input: CampaignUpdateInput!
  ): CampaignUpdatePayload!

  """
  Creates a category.
  """
  categoryCreate(
    """
    Specifies the input fields used to create a category.
    """
    input: CategoryCreateInput!
  ): CategoryCreatePayload!

  """
  Deletes a category.
  """
  categoryDelete(
    """
    Specifies the input fields used to delete a category.
    """
    input: CategoryDeleteInput!
  ): CategoryDeletePayload!

  """
  Updates a category.
  """
  categoryUpdate(
    """
    Specifies the input fields used to update a category.
    """
    input: CategoryUpdateInput!
  ): CategoryUpdatePayload!

  """
  Creates an alert source usage check.
  """
  checkAlertSourceUsageCreate(
    """
    Specifies the input fields used to create an alert source usage check.
    """
    input: CheckAlertSourceUsageCreateInput!
  ): CheckCreatePayload!

  """
  Updates an alert source usage check.
  """
  checkAlertSourceUsageUpdate(
    """
    Specifies the input fields used to update an alert source usage check.
    """
    input: CheckAlertSourceUsageUpdateInput!
  ): CheckUpdatePayload!

  """
  Creates a code issue check.
  """
  checkCodeIssueCreate(
    """
    Specifies the input fields used to create a code issue check.
    """
    input: CheckCodeIssueCreateInput!
  ): CheckCreatePayload!

  """
  Updates a code issue check.
  """
  checkCodeIssueUpdate(input: CheckCodeIssueUpdateInput!): CheckUpdatePayload!

  """
  Copies or moves a number of checks to a rubric or scorecard category.
  """
  checkCopy(
    """
    Information about the check(s) that are to be copied.
    """
    input: CheckCopyInput!
  ): CheckCopyPayload!

  """
  Creates a custom event check.
  """
  checkCustomEventCreate(
    """
    Creates a custom event check.
    """
    input: CheckCustomEventCreateInput!
  ): CheckCreatePayload!

  """
  Updates a custom event check.
  """
  checkCustomEventUpdate(
    """
    Specifies the input fields used to update a custom event check.
    """
    input: CheckCustomEventUpdateInput!
  ): CheckCreatePayload!

  """
  Deletes a check.
  """
  checkDelete(
    """
    Specifies the input fields used to delete a check.
    """
    input: CheckDeleteInput!
  ): CheckDeletePayload!

  """
  Creates a branch protection check
  """
  checkGitBranchProtectionCreate(
    """
    Specifies the input fields used to create a branch protection check.
    """
    input: CheckGitBranchProtectionCreateInput!
  ): CheckCreatePayload!

  """
  Updates a branch protection check
  """
  checkGitBranchProtectionUpdate(
    """
    Specifies the input fields used to create a branch protection check.
    """
    input: CheckGitBranchProtectionUpdateInput!
  ): CheckCreatePayload!

  """
  Creates a documentation check.
  """
  checkHasDocumentationCreate(
    """
    Specifies the input fields used to create a documentation check.
    """
    input: CheckHasDocumentationCreateInput!
  ): CheckCreatePayload!

  """
  Updates a documentation check.
  """
  checkHasDocumentationUpdate(
    """
    Specifies the input fields used to update a documentation check.
    """
    input: CheckHasDocumentationUpdateInput!
  ): CheckUpdatePayload!

  """
  Creates a recent deploy check.
  """
  checkHasRecentDeployCreate(
    """
    Specifies the input fields used to create a recent deploys check.
    """
    input: CheckHasRecentDeployCreateInput!
  ): CheckCreatePayload!

  """
  Updates a recent deploy check.
  """
  checkHasRecentDeployUpdate(
    """
    Specifies the input fields used to update a has recent deploy check.
    """
    input: CheckHasRecentDeployUpdateInput!
  ): CheckCreatePayload!

  """
  Creates a manual check.
  """
  checkManualCreate(
    """
    Specifies the input fields used to create a manual check.
    """
    input: CheckManualCreateInput!
  ): CheckCreatePayload!

  """
  Updates a manual check.
  """
  checkManualUpdate(
    """
    Specifies the input fields used to update a manual check.
    """
    input: CheckManualUpdateInput!
  ): CheckUpdatePayload!

  """
  Creates a package version check.
  """
  checkPackageVersionCreate(
    """
    Information about the package version check to be created.
    """
    input: CheckPackageVersionCreateInput!
  ): CheckCreatePayload!

  """
  Updates a package version check.
  """
  checkPackageVersionUpdate(
    """
    Information about the package version check to be updated.
    """
    input: CheckPackageVersionUpdateInput!
  ): CheckUpdatePayload!

  """
  Creates a relationship check.
  """
  checkRelationshipCreate(
    """
    Specifies the input fields used to create a relationships check.
    """
    input: CheckRelationshipCreateInput!
  ): CheckCreatePayload!

  """
  Updates a relationship check.
  """
  checkRelationshipUpdate(
    """
    Specifies the input fields used to update a relationships check.
    """
    input: CheckRelationshipUpdateInput!
  ): CheckUpdatePayload!

  """
  Creates a repository file check.
  """
  checkRepositoryFileCreate(
    """
    Specifies the input fields used to create a repo file check.
    """
    input: CheckRepositoryFileCreateInput!
  ): CheckCreatePayload!

  """
  Updates a repository file check.
  """
  checkRepositoryFileUpdate(
    """
    Specifies the input fields used to update a repo file check.
    """
    input: CheckRepositoryFileUpdateInput!
  ): CheckUpdatePayload!

  """
  Creates a repository grep check.
  """
  checkRepositoryGrepCreate(input: CheckRepositoryGrepCreateInput!): CheckCreatePayload!

  """
  Updates a repository grep check.
  """
  checkRepositoryGrepUpdate(input: CheckRepositoryGrepUpdateInput!): CheckUpdatePayload!

  """
  Creates a repository integrated check.
  """
  checkRepositoryIntegratedCreate(
    """
    Specifies the input fields used to create a repository integrated check.
    """
    input: CheckRepositoryIntegratedCreateInput!
  ): CheckCreatePayload!

  """
  Updates a repository integrated check.
  """
  checkRepositoryIntegratedUpdate(
    """
    Specifies the input fields used to update a repository integrated check.
    """
    input: CheckRepositoryIntegratedUpdateInput!
  ): CheckUpdatePayload!

  """
  Creates a repo search check.
  """
  checkRepositorySearchCreate(
    """
    Specifies the input fields used to create a repo search check.
    """
    input: CheckRepositorySearchCreateInput!
  ): CheckCreatePayload!

  """
  Updates a repository search check.
  """
  checkRepositorySearchUpdate(
    """
    Specifies the input fields used to update a repo search check.
    """
    input: CheckRepositorySearchUpdateInput!
  ): CheckUpdatePayload!

  """
  Creates a service configuration check.
  """
  checkServiceConfigurationCreate(
    """
    Specifies the input fields used to create a configuration check.
    """
    input: CheckServiceConfigurationCreateInput!
  ): CheckCreatePayload!

  """
  Updates a service configuration check.
  """
  checkServiceConfigurationUpdate(
    """
    Specifies the input fields used to update a configuration check.
    """
    input: CheckServiceConfigurationUpdateInput!
  ): CheckUpdatePayload!

  """
  Creates a service dependency check.
  """
  checkServiceDependencyCreate(
    """
    Specifies the input fields used to create a service dependency check.
    """
    input: CheckServiceDependencyCreateInput!
  ): CheckCreatePayload!

  """
  Updates a service dependency check.
  """
  checkServiceDependencyUpdate(
    """
    Specifies the input fields used to update a service dependency check.
    """
    input: CheckServiceDependencyUpdateInput!
  ): CheckUpdatePayload!

  """
  Creates a service ownership check.
  """
  checkServiceOwnershipCreate(
    """
    Specifies the input fields used to create an ownership check.
    """
    input: CheckServiceOwnershipCreateInput!
  ): CheckCreatePayload!

  """
  Updates a service ownership check.
  """
  checkServiceOwnershipUpdate(
    """
    Specifies the input fields used to update an ownership check.
    """
    input: CheckServiceOwnershipUpdateInput!
  ): CheckUpdatePayload!

  """
  Creates a service property check.
  """
  checkServicePropertyCreate(
    """
    Specifies the input fields used to create a service property check.
    """
    input: CheckServicePropertyCreateInput!
  ): CheckCreatePayload!

  """
  Updates a service property check.
  """
  checkServicePropertyUpdate(
    """
    Specifies the input fields used to update a service property check.
    """
    input: CheckServicePropertyUpdateInput!
  ): CheckUpdatePayload!

  """
  Creates a tag defined check.
  """
  checkTagDefinedCreate(
    """
    Specifies the input fields used to create a tag check.
    """
    input: CheckTagDefinedCreateInput!
  ): CheckCreatePayload!

  """
  Updates a tag defined check.
  """
  checkTagDefinedUpdate(
    """
    Specifies the input fields used to update a tag defined check.
    """
    input: CheckTagDefinedUpdateInput!
  ): CheckUpdatePayload!

  """
  Creates a tool usage check.
  """
  checkToolUsageCreate(
    """
    Specifies the input fields used to create a tool usage check.
    """
    input: CheckToolUsageCreateInput!
  ): CheckCreatePayload!

  """
  Updates a tool usage check.
  """
  checkToolUsageUpdate(
    """
    Specifies the input fields used to update a tool usage check.
    """
    input: CheckToolUsageUpdateInput!
  ): CheckUpdatePayload!

  """
  Copies selected rubric checks to an existing campaign.
  """
  checksCopyToCampaign(
    """
    Specifies the input fields used to copy selected rubric checks to an existing campaign.
    """
    input: ChecksCopyToCampaignInput!
  ): ChecksCopyToCampaignPayload!

  """
  Delete a code issue
  """
  codeIssueDelete(
    """
    Input for identifying a code issue
    """
    input: CodeIssueIdentifierInput!
  ): ResourceDeletePayload!

  """
  Delete a code issue project by integration/external_id
  """
  codeIssueProjectDelete(input: ExternalResourceIdentifierInput!): ResourceDeletePayload!

  """
  Connect a code issue project to a service/repository
  """
  codeIssueProjectResourceConnect(
    """
    Input for connecting a code issue project to a service / repository using their IDs
    """
    input: CodeIssueProjectResourceConnectInput!
  ): CodeIssueProjectResourceConnectPayload!

  """
  Disconnect a code issue project from a service/repository
  """
  codeIssueProjectResourceDisconnect(
    """
    Input for disconnecting a code issue project from a service using their IDs
    """
    input: CodeIssueProjectResourceDisconnectInput!
  ): CodeIssueProjectResourceDisconnectPayload!

  """
  Upsert a code issue project by external ID
  """
  codeIssueProjectUpsert(
    """
    Input for upserting a code issue project by external ID
    """
    input: CodeIssueProjectInput!
  ): CodeIssueProjectPayload!

  """
  Create or update a code issue
  """
  codeIssueUpsert(
    """
    Input for creating a new code issue
    """
    input: CodeIssueInput!
  ): CodeIssuePayload!

  """
  Creates a new component type.
  """
  componentTypeCreate(input: ComponentTypeInput!): ComponentTypePayload!

  """
  Deletes a component type.
  """
  componentTypeDelete(resource: IdentifierInput!): ResourceDeletePayload!

  """
  Updates a component type.
  """
  componentTypeUpdate(componentType: IdentifierInput!, input: ComponentTypeInput!): ComponentTypePayload!

  """
  Creates a new contact for a team.
  """
  contactCreate(
    """
    Specifies the input fields used to create a contact.
    """
    input: ContactCreateInput!
  ): ContactCreatePayload!

  """
  Deletes a contact.
  """
  contactDelete(
    """
    Specifies the input fields used to delete a contact.
    """
    input: ContactDeleteInput!
  ): ContactDeletePayload!

  """
  Updates a contact's attributes.
  """
  contactUpdate(
    """
    Specifies the input fields used to update a contact.
    """
    input: ContactUpdateInput!
  ): ContactUpdatePayload!

  """
  Creates a Trigger Definition for Custom Actions in OpsLevel.
  """
  customActionsTriggerDefinitionCreate(input: CustomActionsTriggerDefinitionCreateInput!): CustomActionsTriggerDefinitionCreatePayload!

  """
  Deletes a Trigger Definition for Custom Actions in OpsLevel.
  """
  customActionsTriggerDefinitionDelete(resource: IdentifierInput!): ResourceDeletePayload!

  """
  Updates a Trigger Definition for Custom Actions in OpsLevel.
  """
  customActionsTriggerDefinitionUpdate(input: CustomActionsTriggerDefinitionUpdateInput!): CustomActionsTriggerDefinitionUpdatePayload!

  """
  Invoke a custom action trigger definition for a user.
  """
  customActionsTriggerInvoke(input: CustomActionsTriggerInvokeInput!): CustomActionsTriggerInvokePayload!

  """
  Creates a Webhook Action for Custom Actions in OpsLevel.
  """
  customActionsWebhookActionCreate(input: CustomActionsWebhookActionCreateInput!): CustomActionsWebhookActionCreatePayload!

  """
  Deletes a Webhook Action for Custom Actions in OpsLevel.
  """
  customActionsWebhookActionDelete(resource: IdentifierInput!): ResourceDeletePayload!

  """
  Updates a Webhook Action for Custom Actions in OpsLevel.
  """
  customActionsWebhookActionUpdate(input: CustomActionsWebhookActionUpdateInput!): CustomActionsWebhookActionUpdatePayload!

  """
  Creates a custom integration.
  """
  customIntegrationCreate(input: CustomIntegrationInput!): IntegrationCreatePayload!

  """
  Updates a custom integration.
  """
  customIntegrationUpdate(input: CustomIntegrationInput!, integration: IdentifierInput!): IntegrationUpdatePayload!

  """
  Delete a deploy.
  """
  deployDelete(input: DeleteInput!): DeletePayload!

  """
  Assign Systems as children of a Domain.
  """
  domainChildAssign(childSystems: [IdentifierInput!]!, domain: IdentifierInput!): DomainChildAssignPayload!

  """
  Disconnect Systems from their parent Domain.
  """
  domainChildRemove(childSystems: [IdentifierInput!]!, domain: IdentifierInput!): DomainChildRemovePayload!

  """
  Creates a domain.
  """
  domainCreate(
    """
    Specifies the input fields for a domain.
    """
    input: DomainInput!
  ): DomainPayload!

  """
  Deletes a domain.
  """
  domainDelete(resource: IdentifierInput!): ResourceDeletePayload!

  """
  Updates a domain.
  """
  domainUpdate(
    """
    Specifies the input fields used to identify a domain. Exactly one field should be provided.
    """
    domain: IdentifierInput!

    """
    Specifies the input fields for a domain.
    """
    input: DomainInput!
  ): DomainPayload!

  """
  Creates an Event integration.
  """
  eventIntegrationCreate(
    """
    Arguments to create an event integration.
    """
    input: EventIntegrationInput!
  ): IntegrationCreatePayload!

  """
  Updates an Event integration.
  """
  eventIntegrationUpdate(
    """
    Arguments to create an event integration.
    """
    input: EventIntegrationUpdateInput!
  ): IntegrationUpdatePayload!

  """
  Creates an external UUID for a resource (ex. Service).
  """
  externalUuidCreate(
    """
    Specifies the input used for modifying a resource's external UUID.
    """
    input: ExternalUuidMutationInput!
  ): ExternalUuidMutationPayload!

  """
  Deletes a resource's external UUID.
  """
  externalUuidDelete(
    """
    Specifies the input used for modifying a resource's external UUID.
    """
    input: ExternalUuidMutationInput!
  ): ExternalUuidMutationPayload!

  """
  Creates a filter.
  """
  filterCreate(
    """
    Specifies the input fields used to create a filter.
    """
    input: FilterCreateInput!
  ): FilterCreatePayload!

  """
  Deletes a filter.
  """
  filterDelete(input: DeleteInput!): DeletePayload!

  """
  Updates a filter.
  """
  filterUpdate(
    """
    Specifies the input fields used to update a filter.
    """
    input: FilterUpdateInput!
  ): FilterUpdatePayload!

  """
  Creates a FireHydrant integration.
  """
  fireHydrantIntegrationCreate(input: FireHydrantIntegrationInput!): IntegrationCreatePayload!

  """
  Updates a FireHydrant integration.
  """
  fireHydrantIntegrationUpdate(input: FireHydrantIntegrationInput!, integration: IdentifierInput!): IntegrationUpdatePayload!

  """
  Creates a Google Cloud integration.
  """
  googleCloudIntegrationCreate(input: GoogleCloudIntegrationInput!): IntegrationCreatePayload!

  """
  Updates a Google Cloud integration.
  """
  googleCloudIntegrationUpdate(input: GoogleCloudIntegrationInput!, integration: IdentifierInput!): IntegrationUpdatePayload!

  """
  Create a group.
  """
  groupCreate(input: GroupInput!): GroupPayload!

  """
  Delete a group.
  """
  groupDelete(resource: IdentifierInput!): ResourceDeletePayload!

  """
  Update a group.
  """
  groupUpdate(group: IdentifierInput!, input: GroupInput!): GroupPayload!

  """
  Given a Backstage Entity, create or update the corresponding object in OpsLevel.
  """
  importEntityFromBackstage(entity: JSON!, entityRef: String!): ImportEntityFromBackstagePayload!

  """
  Creates an infrastructure resource.
  """
  infrastructureResourceCreate(
    """
    Specifies the input fields for a infrastructure resource.
    """
    input: InfrastructureResourceInput!
  ): InfrastructureResourcePayload!

  """
  Deletes an infrastructure resource.
  """
  infrastructureResourceDelete(resource: IdentifierInput!): ResourceDeletePayload!

  """
  Updates an infrastructure resource.
  """
  infrastructureResourceUpdate(
    """
    Specifies the input fields used to identify a resource.
    """
    infrastructureResource: IdentifierInput!

    """
    Specifies the input fields for a infrastructure resource.
    """
    input: InfrastructureResourceInput!
  ): InfrastructureResourcePayload!

  """
  Delete an installed integration. Currently supports only AWS integrations.
  """
  integrationDelete(resource: IdentifierInput!): ResourceDeletePayload!

  """
  Reactivate an invalidated or deactivated integration, so that it will begin
  synchronizing again on schedule. This does not trigger an immediate sync.
  """
  integrationReactivate(
    """
    The integration to reactivate.
    """
    integration: IdentifierInput!
  ): IntegrationReactivatePayload!

  """
  Rotates the inbound webhook URL for a supported integration.
  """
  integrationRotateWebhookUuid(integration: IdentifierInput!): IntegrationUpdatePayload!

  """
  Delete a source object from an integration. For supported integrations, this
  lets you remove raw integration data from OpsLevel.
  """
  integrationSourceObjectDelete(
    """
    The id of the source object in the external or upstream service. Together
    with externalKind this must uniquely identify the object.
    """
    externalId: String!

    """
    The type of the source object in the external or upstream service.
    """
    externalKind: String!

    """
    The integration to delete the custom source object from.
    """
    integration: IdentifierInput!
  ): IntegrationSourceObjectDeletePayload!

  """
  Upsert a source object onto an integration. For supported integrations, this
  lets you push raw integration data into OpsLevel.
  """
  integrationSourceObjectUpsert(
    """
    The id of the source object in the external or upstream service. Together
    with externalKind this must uniquely identify the object.
    """
    externalId: String!

    """
    The type of the source object in the external or upstream service. This determines the expected schema of 'value'.
    """
    externalKind: String!

    """
    The integration to upsert the custom source object onto.
    """
    integration: IdentifierInput!

    """
    The raw JSON data of the source object to upsert.
    """
    value: JSON!
  ): IntegrationSourceObjectUpsertPayload!

  """
  Creates a level.
  """
  levelCreate(
    """
    Specifies the input fields used to create a level. The new level will be
    added as the highest level (greatest level index).
    """
    input: LevelCreateInput!
  ): LevelCreatePayload!

  """
  Deletes a level.
  """
  levelDelete(
    """
    Specifies the input fields used to delete a level.
    """
    input: LevelDeleteInput!
  ): LevelDeletePayload!

  """
  Updates a level.
  """
  levelUpdate(
    """
    Specifies the input fields used to update a level.
    """
    input: LevelUpdateInput!
  ): LevelUpdatePayload!

  """
  Updates an existing lifecycle.
  """
  lifecycleUpdate(input: LifecycleUpdateInput!): LifecycleUpdatePayload!

  """
  Get the New Relic accounts that can be used by the provided API key.
  """
  newRelicAccounts(
    """
    Specifies the input fields used in the `newRelicAccounts` mutation.
    """
    input: NewRelicIntegrationAccountsInput!
  ): NewRelicAccountsPayload!

  """
  Creates a New Relic integration.
  """
  newRelicIntegrationCreate(
    """
    Specifies the input fields used in the `newRelicIntegrationCreate` and `newRelicIntegrationUpdate` mutation.
    """
    input: NewRelicIntegrationInput!
  ): IntegrationCreatePayload!

  """
  Updates a New Relic integration.
  """
  newRelicIntegrationUpdate(
    """
    Specifies the input fields used in the `newRelicIntegrationCreate` and `newRelicIntegrationUpdate` mutation.
    """
    input: NewRelicIntegrationInput!
    resource: IdentifierInput!
  ): IntegrationUpdatePayload!

  """
  Creates an Octopus Deploy integration.
  """
  octopusDeployIntegrationCreate(input: OctopusDeployIntegrationInput!): IntegrationCreatePayload!

  """
  Updates an Octopus Deploy integration.
  """
  octopusDeployIntegrationUpdate(input: OctopusDeployIntegrationInput!, integration: IdentifierInput!): IntegrationUpdatePayload!

  """
  Assign a property value to an entity, replacing the existing value, if any.
  """
  propertyAssign(input: PropertyInput!): PropertyPayload!

  """
  Define a new property.
  """
  propertyDefinitionCreate(input: PropertyDefinitionInput!): PropertyDefinitionPayload!

  """
  Deletes a custom attribute definition.
  """
  propertyDefinitionDelete(resource: IdentifierInput!): ResourceDeletePayload!

  """
  Update a property.
  """
  propertyDefinitionUpdate(input: PropertyDefinitionInput!, propertyDefinition: IdentifierInput!): PropertyDefinitionPayload!

  """
  Remove a property value from an entity.
  """
  propertyUnassign(
    """
    The definition of the property.
    """
    definition: IdentifierInput!

    """
    The entity that the property is unassigned from.
    """
    owner: IdentifierInput!

    """
    The entity that the property is unassigned from.
    """
    ownerType: PropertyOwnerTypeEnum
  ): PropertyUnassignPayload!

  """
  Creates a new SAML identity provider for the current account.
  """
  providerCreate: ProviderCreatePayload!

  """
  Deletes a SAML identity provider from the current account.
  """
  providerDelete(resource: IdentifierInput!): ResourceDeletePayload!

  """
  Updates an existing SAML identity provider configuration.
  """
  providerUpdate(provider: ProviderUpdateInput!): ProviderUpdatePayload!

  """
  Create a relationship between two resources.
  """
  relationshipCreate(
    """
    A source, target and relationship type specifying a relationship between two resources.
    """
    relationshipDefinition: RelationshipDefinition!
  ): RelationshipPayload!

  """
  Define a new relationship between a component type and one or many teams, users, or other component types.
  """
  relationshipDefinitionCreate(input: RelationshipDefinitionInput!): RelationshipDefinitionPayload!

  """
  Delete a relationship definition.
  """
  relationshipDefinitionDelete(resource: IdentifierInput!): ResourceDeletePayload!

  """
  Update a relationship definition.
  """
  relationshipDefinitionUpdate(input: RelationshipDefinitionInput!, relationshipDefinition: IdentifierInput!): RelationshipDefinitionPayload!

  """
  Deletes a relationship between two resources.
  """
  relationshipDelete(input: DeleteInput!): DeletePayload!

  """
  Updates repositories attributes in a bulk operation.
  """
  repositoriesUpdate(
    """
    The team that owns the repository.
    """
    owner: IdentifierInput

    """
    The repositories to update.
    """
    repositories: [IdentifierInput!]!

    """
    Flag to update linked services along with the repository.
    """
    syncLinkedServices: Boolean

    """
    Indicates if the repository is visible.
    """
    visible: Boolean
  ): RepositoriesUpdatePayload!

  """
  Updates a repository's attributes.
  """
  repositoryUpdate(
    """
    Specifies the input fields used to update a repository.
    """
    input: RepositoryUpdateInput!

    """
    Flag to update linked services along with the repository.
    """
    syncLinkedServices: Boolean = false
  ): RepositoryUpdatePayload!

  """
  Create a new scorecard
  """
  scorecardCreate(
    """
    Input used to create scorecards.
    """
    input: ScorecardInput!
  ): ScorecardPayload!

  """
  Removes a scorecard.
  """
  scorecardDelete(
    """
    Specifies the input fields used to identify a scorecard. Exactly one field should be provided.
    """
    input: IdentifierInput!
  ): ScorecardDeletePayload!

  """
  Update an existing scorecard
  """
  scorecardUpdate(
    """
    Input used to create scorecards.
    """
    input: ScorecardInput!
    scorecard: IdentifierInput!
  ): ScorecardPayload!

  """
  Create a Secrets Vault secret entry.
  """
  secretsVaultsSecretCreate(alias: String!, input: SecretInput!): SecretPayload!

  """
  Delete a Secrets Vault secret entry.
  """
  secretsVaultsSecretDelete(resource: IdentifierInput!): ResourceDeletePayload!

  """
  Update a Secrets Vault secret entry.
  """
  secretsVaultsSecretUpdate(input: SecretInput!, secret: IdentifierInput!): SecretPayload!

  """
  Updates the API Docs settings for a service.
  """
  serviceApiDocSettingsUpdate(
    """
    The path, relative to the service repository's base directory, from which to
    fetch the API document. If null, the API document is fetched from the path
    in the account's apiDocsDefaultPath field.
    """
    apiDocumentPath: String

    """
    The API document source (push or pull) used to determine the preferred API
    document. If null, we try the pushed doc and then the pulled doc (in that order).
    """
    preferredApiDocumentSource: ApiDocumentSourceEnum

    """
    The service whose API Doc settings will be updated.
    """
    service: IdentifierInput!
  ): ServiceUpdatePayload!

  """
  Creates a service.
  """
  serviceCreate(
    """
    Specifies the input fields used in the `serviceCreate` mutation.
    """
    input: ServiceCreateInput!
  ): ServiceCreatePayload!

  """
  Deletes a service.
  """
  serviceDelete(
    """
    Specifies the input fields used in the `serviceDelete` mutation.
    """
    input: ServiceDeleteInput!
  ): ServiceDeletePayload!

  """
  Create a dependency from one service to another.
  """
  serviceDependencyCreate(
    """
    A source, destination pair specifying a dependency between services.
    """
    input: ServiceDependencyKey @deprecated(reason: "Replaced by inputV2")

    """
    Specifies the input fields used for creating a service dependency.
    """
    inputV2: ServiceDependencyCreateInput
  ): ServiceDependencyPayload!

  """
  Deletes a service dependency.
  """
  serviceDependencyDelete(input: DeleteInput!): DeletePayload!

  """
  Update the notification settings for service level changes on your account.
  """
  serviceLevelNotificationsUpdate(
    """
    Specifies the input fields used to update a service repository.
    """
    input: ServiceLevelNotificationsUpdateInput!
  ): ServiceLevelNotificationsPayload!

  """
  Updates a service note.
  """
  serviceNoteUpdate(
    """
    Specifies the input fields used in the `serviceNoteUpdate` mutation.
    """
    input: ServiceNoteUpdateInput!
  ): ServiceNoteUpdatePayload!

  """
  Links a repository to a service.
  """
  serviceRepositoryCreate(
    """
    Specifies the input fields used in the `serviceRepositoryCreate` mutation.
    """
    input: ServiceRepositoryCreateInput!
  ): ServiceRepositoryCreatePayload!

  """
  Deletes a service repository.
  """
  serviceRepositoryDelete(input: DeleteInput!): DeletePayload!

  """
  Updates a service repository.
  """
  serviceRepositoryUpdate(
    """
    Specifies the input fields used to update a service repository.
    """
    input: ServiceRepositoryUpdateInput!
  ): ServiceRepositoryUpdatePayload!

  """
  Updates a service.
  """
  serviceUpdate(
    """
    Specifies the input fields used in the `serviceUpdate` mutation.
    """
    input: ServiceUpdateInput!
  ): ServiceUpdatePayload!

  """
  Creates a Snyk integration.
  """
  snykIntegrationCreate(input: SnykIntegrationInput!): IntegrationCreatePayload!

  """
  Updates a Snyk integration.
  """
  snykIntegrationUpdate(input: SnykIntegrationInput!, integration: IdentifierInput!): IntegrationUpdatePayload!

  """
  Creates a Sonarqube Cloud integration.
  """
  sonarqubeCloudIntegrationCreate(input: SonarqubeCloudIntegrationInput!): IntegrationCreatePayload!

  """
  Updates a Sonarqube Cloud integration.
  """
  sonarqubeCloudIntegrationUpdate(input: SonarqubeCloudIntegrationInput!, integration: IdentifierInput!): IntegrationUpdatePayload!

  """
  Creates a Sonarqube integration.
  """
  sonarqubeIntegrationCreate(input: SonarqubeIntegrationInput!): IntegrationCreatePayload!

  """
  Updates a Sonarqube integration.
  """
  sonarqubeIntegrationUpdate(input: SonarqubeIntegrationInput!, integration: IdentifierInput!): IntegrationUpdatePayload!

  """
  Assign Services as children of a System.
  """
  systemChildAssign(childServices: [IdentifierInput!]!, system: IdentifierInput!): SystemChildAssignPayload!

  """
  Disconnect Services from their parent System.
  """
  systemChildRemove(childServices: [IdentifierInput!]!, system: IdentifierInput!): SystemChildRemovePayload!

  """
  Creates a system.
  """
  systemCreate(
    """
    Specifies the input fields for a system.
    """
    input: SystemInput!
  ): SystemPayload!

  """
  Deletes a system.
  """
  systemDelete(resource: IdentifierInput!): ResourceDeletePayload!

  """
  Updates a system.
  """
  systemUpdate(
    """
    Specifies the input fields for a system.
    """
    input: SystemInput!

    """
    Specifies the input fields used to identify a system. Exactly one field should be provided.
    """
    system: IdentifierInput!
  ): SystemPayload!

  """
  Creates new tags on a resource, replacing any existing keys specified in the payload. Max 100 tags in a single request.
  """
  tagAssign(
    """
    Specifies the input fields used to assign tags.
    """
    input: TagAssignInput!
  ): TagAssignPayload!

  """
  Creates a tag.
  """
  tagCreate(
    """
    Specifies the input fields used to create a tag.
    """
    input: TagCreateInput!
  ): TagCreatePayload!

  """
  Deletes a tag.
  """
  tagDelete(
    """
    Specifies the input fields used to delete a tag.
    """
    input: TagDeleteInput!
  ): TagDeletePayload!

  """
  Assign the tag keys that will create relationships when imported from AWS.
  """
  tagRelationshipKeysAssign(input: TagRelationshipKeysAssignInput!): TagRelationshipKeysAssignPayload!

  """
  Updates a tag's attributes.
  """
  tagUpdate(
    """
    Specifies the input fields used to update a tag.
    """
    input: TagUpdateInput!
  ): TagUpdatePayload!

  """
  Creates a new team.
  """
  teamCreate(
    """
    Specifies the input fields used to create a team.
    """
    input: TeamCreateInput!
  ): TeamCreatePayload!

  """
  Deletes a team.
  """
  teamDelete(
    """
    Specifies the input fields used to delete a team.
    """
    input: TeamDeleteInput!
  ): TeamDeletePayload!

  """
  Add members to a team
  """
  teamMembershipCreate(
    """
    Input for adding members to a team
    """
    input: TeamMembershipCreateInput!
  ): TeamMembershipCreatePayload!

  """
  Remove members from a team
  """
  teamMembershipDelete(
    """
    Input for removing members from a team
    """
    input: TeamMembershipDeleteInput!
  ): TeamMembershipDeletePayload!

  """
  Define a new team property.
  """
  teamPropertyDefinitionCreate(input: TeamPropertyDefinitionInput!): TeamPropertyDefinitionPayload!

  """
  Update a team property.
  """
  teamPropertyDefinitionUpdate(input: TeamPropertyDefinitionInput!, propertyDefinition: IdentifierInput!): TeamPropertyDefinitionPayload!

  """
  Define custom properties that apply to teams.
  """
  teamPropertyDefinitionsAssign(input: TeamPropertyDefinitionsAssignInput!): TeamPropertyDefinitionsAssignPayload!

  """
  Updates a team's attributes.
  """
  teamUpdate(
    """
    Specifies the input fields used to update a team.
    """
    input: TeamUpdateInput!
  ): TeamUpdatePayload!

  """
  Updates an existing tier's name and description.
  """
  tierUpdate(input: TierUpdateInput!): TierUpdatePayload!

  """
  Creates a new tool attached to a service.
  """
  toolCreate(
    """
    Specifies the input fields used to create a tool.
    """
    input: ToolCreateInput!
  ): ToolCreatePayload!

  """
  Deletes a tool.
  """
  toolDelete(
    """
    Specifies the input fields used to delete a tool.
    """
    input: ToolDeleteInput!
  ): ToolDeletePayload!

  """
  Updates a tool's attributes.
  """
  toolUpdate(
    """
    Specifies the input fields used to update a tool.
    """
    input: ToolUpdateInput!
  ): ToolUpdatePayload!

  """
  Delete a user.
  """
  userDelete(
    """
    The email address or ID of the user to delete.
    """
    user: UserIdentifierInput!
  ): UserDeletePayload!

  """
  Invite a new user to the account.
  """
  userInvite(
    """
    The email address of the user to invite.
    """
    email: String!

    """
    Overrides the account default setting for whether or not to send an invite email.
    """
    forceSendInvite: Boolean
    input: UserInput!
  ): UserPayload!

  """
  Update a user.
  """
  userUpdate(
    input: UserInput!

    """
    The email address or ID of the user to update.
    """
    user: UserIdentifierInput!
  ): UserPayload!

  """
  Send an invite to multiple existing users of the account.
  """
  usersInvite(input: UsersInviteInput!): UsersInvitePayload!
}

type NewRelicAccountsPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

type NewRelicIntegration implements Integration & ManualAlertSourceSync {
  """
  The New Relic Account key for this integration.
  """
  accountKey: String!

  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  Indicates if manual alert source synchronization can be triggered.
  """
  allowManualSyncAlertSources: Boolean!

  """
  The API URL for New Relic API.
  """
  baseUrl: String!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The time that alert sources were last manually synchronized at.
  """
  lastManualSyncAlertSources: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

input NewRelicIntegrationAccountsInput {
  """
  The API Key for the New Relic API.
  """
  apiKey: String!

  """
  The API URL for New Relic API.
  """
  baseUrl: String!
}

input NewRelicIntegrationInput {
  """
  The API Key for the New Relic API.
  """
  apiKey: String

  """
  The API URL for New Relic API.
  """
  baseUrl: String
}

type OctopusDeployIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
Specifies the input fields used to create and update an Octopus Deploy integration.
"""
input OctopusDeployIntegrationInput {
  """
  The API Key for the Octopus Deploy API.
  """
  apiKey: String

  """
  The URL the Octopus Deploy instance if hosted on.
  """
  instanceUrl: String

  """
  The name of the integration.
  """
  name: String
}

"""
An on call record for a given source
"""
type OnCall {
  """
  Email of the user on call
  """
  externalEmail: String!

  """
  The ID of the on call.
  """
  id: ID!

  """
  Name of the user on call
  """
  name: String!

  """
  The associated OpsLevel user record
  """
  user: User
}

"""
The connection type for OnCall.
"""
type OnCallConnection {
  """
  A list of edges.
  """
  edges: [OnCallEdge]

  """
  A list of nodes.
  """
  nodes: [OnCall]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type OnCallEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: OnCall
}

type OnPremGitlabIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

type OpsgenieIntegration implements Integration & ManualAlertSourceSync {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  Indicates if manual alert source synchronization can be triggered.
  """
  allowManualSyncAlertSources: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The time that alert sources were last manually synchronized at.
  """
  lastManualSyncAlertSources: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
The input for defining the owner relationship for a component type.
"""
input OwnerRelationshipInput {
  """
  The management rules for the owner relationship.
  """
  managementRules: [ManagementRuleInput!]
}

"""
The owner relationship for a component type.
"""
type OwnerRelationshipType {
  """
  The management rules for the owner relationship.
  """
  managementRules: [RelationshipDefinitionManagementRule!]!
}

"""
A software package belonging to a service or repository.
"""
type Package {
  """
  The id of the package.
  """
  id: ID!

  """
  The name of the package.
  """
  name: String!

  """
  The package manager type for a software package.
  """
  packageManager: PackageManagerEnum

  """
  The version of a specific software package
  """
  packageVersions(
    """
    Only return package versions directly associated with these Service IDs.
    """
    effectiveServiceIds: [ID!]

    """
    Only return package versions belonging to these resources (accepts Repository and Service IDs).
    """
    resourceIds: [ID!]
  ): [PackageVersion!]
}

"""
The connection type for Package.
"""
type PackageConnection {
  """
  A list of edges.
  """
  edges: [PackageEdge]

  """
  the total number of packages that match the query criteria.
  """
  filteredCount: Int!

  """
  A list of nodes.
  """
  nodes: [Package]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The total number of packages for an account.
  """
  totalCount: Int!
}

"""
Possible values of a package version check constraint.
"""
enum PackageConstraintEnum {
  """
  The package must not be used by a service.
  """
  does_not_exist

  """
  The package must be used by a service.
  """
  exists

  """
  The package usage by a service must match certain specified version constraints.
  """
  matches_version
}

"""
An edge in a connection.
"""
type PackageEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Package
}

"""
Fields that can be used as part of filter for packages
"""
enum PackageFilterEnum {
  """
  Filter by `package_manager` field.
  """
  package_manager
}

"""
Input to be used to filter types.
"""
input PackageFilterInput {
  """
  Value to be filtered.
  """
  arg: String

  """
  Field to be filtered.
  """
  key: PackageFilterEnum!

  """
  Type of operation to be applied to value on the field.
  """
  type: BasicTypeEnum = equals
}

"""
Supported software package manager types.
"""
enum PackageManagerEnum {
  alpm
  apk
  bitbucket
  bitnami
  cargo
  cocoapods
  composer
  conan
  conda
  cpan
  cran
  deb
  docker
  gem
  generic
  github
  golang
  gradle
  hackage
  helm
  hex
  luarocks
  maven
  mlflow
  npm
  nuget
  oci
  opam
  otp
  pub
  pypi
  qpkg
  rpm
  swid
  swift
}

"""
Sort possibilities for packages.
"""
enum PackageSortEnum {
  """
  Order by `name` ascending
  """
  name_ASC

  """
  Order by `name` descending
  """
  name_DESC

  """
  Order by `package_manager` ascending.
  """
  package_manager_ASC

  """
  Order by `package_manager` descending.
  """
  package_manager_DESC
}

"""
A software package version entry.
"""
type PackageVersion {
  """
  The version of a software package.
  """
  version: String
}

type PackageVersionCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The check result if the package isn't being used by a service.
  """
  missingPackageResult: CheckResultStatusEnum

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The package constraint the service is to be checked for.
  """
  packageConstraint: PackageConstraintEnum!

  """
  The package manager (ecosystem) this package relates to.
  """
  packageManager: PackageManagerEnum!

  """
  The name of the package to be checked.
  """
  packageName: String!

  """
  Whether or not the value in the package name field is a regular expression.
  """
  packageNameIsRegex: Boolean!

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!

  """
  The predicate that describes the version constraint the package must satisfy.
  """
  versionConstraintPredicate: Predicate
}

"""
Information about pagination in a connection.
"""
type PageInfo {
  """
  When paginating forwards, the cursor to continue.
  """
  endCursor: String

  """
  When paginating forwards, are there more items?
  """
  hasNextPage: Boolean!

  """
  When paginating backwards, are there more items?
  """
  hasPreviousPage: Boolean!

  """
  When paginating backwards, the cursor to continue.
  """
  startCursor: String
}

type PagerdutyIntegration implements Integration & ManualAlertSourceSync {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  Indicates if manual alert source synchronization can be triggered.
  """
  allowManualSyncAlertSources: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The time that alert sources were last manually synchronized at.
  """
  lastManualSyncAlertSources: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

type Payload {
  """
  The time at which the payload was created.
  """
  createdAt: ISO8601DateTime!

  """
  The payload body that was sent.
  """
  data: JSON

  """
  The id of the payload.
  """
  id: ID!

  """
  The integration that the payload was sent to.
  """
  integration: Integration!

  """
  The time at which the payload was processed as part of check evaluation.
  """
  processedAt: ISO8601DateTime

  """
  The query params sent with the payload.
  """
  queryParams: String!

  """
  The time at which the payload was updated.
  """
  updatedAt: ISO8601DateTime!
}

type PayloadCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  A jq expression that will be ran against your payload to evaluate the check
  result. A truthy value will result in the check passing.
  """
  jqExpression: String!

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The check result message template.
  """
  resultMessage: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
The connection type for Payload.
"""
type PayloadConnection {
  """
  A list of edges.
  """
  edges: [PayloadEdge]

  """
  A list of nodes.
  """
  nodes: [Payload]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type PayloadEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Payload
}

"""
Fields that can be used as part of filters for payloads.
"""
enum PayloadFilterEnum {
  """
  Filter by `integration` field. Note that this is an internal id, ex. "123".
  """
  integration_id
}

"""
Input to be used to filter types.
"""
input PayloadFilterInput {
  """
  Value to be filtered.
  """
  arg: String

  """
  Field to be filtered.
  """
  key: PayloadFilterEnum!

  """
  Type of operation to be applied to value on the field.
  """
  type: BasicTypeEnum = equals
}

type PayloadIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
Sort possibilities for payloads.
"""
enum PayloadSortEnum {
  """
  Order by `created_at` ascending
  """
  created_at_ASC

  """
  Order by `created_at` descending
  """
  created_at_DESC

  """
  Order by `processed_at` ascending
  """
  processed_at_ASC

  """
  Order by `processed_at` descending
  """
  processed_at_DESC
}

"""
A condition used to select services.
"""
type Predicate {
  """
  Type of operation to be used in the condition.
  """
  type: PredicateTypeEnum!

  """
  The value of the condition.
  """
  value: String
}

"""
A condition that should be satisfied.
"""
input PredicateInput {
  """
  The condition type used by the predicate.
  """
  type: PredicateTypeEnum!

  """
  The condition value used by the predicate.
  """
  value: String
}

"""
Fields that can be used as part of filter for services.
"""
enum PredicateKeyEnum {
  """
  Filter by Alias attached to this service, if any.
  """
  aliases

  """
  Filter by the `component_type` field.
  """
  component_type_id

  """
  Filter by the creation source.
  """
  creation_source

  """
  Filter by Domain that includes the System this service is assigned to, if any.
  """
  domain_id

  """
  Filter by another filter
  """
  filter_id

  """
  Filter by `framework` field
  """
  framework

  """
  Filter by group hierarchy. Will return resources who's owner is in the group ancestry chain.
  """
  group_ids

  """
  Filter by `language` field
  """
  language

  """
  Filter by `lifecycle` field
  """
  lifecycle_index

  """
  Filter by `name` field
  """
  name

  """
  Filter by `owner` field
  """
  owner_id

  """
  Filter by `owner` hierarchy. Will return resources who's owner is in the team ancestry chain.
  """
  owner_ids

  """
  Filter by `product` field
  """
  product

  """
  Filter by custom-defined properties.
  """
  properties

  """
  Filter by `relationships`.
  """
  relationships

  """
  Filter by Repository that this service is attached to, if any.
  """
  repository_ids

  """
  Filter by System that this service is assigned to, if any.
  """
  system_id

  """
  Filter by `tags` field.
  """
  tags

  """
  Filter by `tier` field
  """
  tier_index
}

"""
Operations that can be used on predicates.
"""
enum PredicateTypeEnum {
  """
  Belongs to a group's hierarchy.
  """
  belongs_to

  """
  Contains a specific value.
  """
  contains

  """
  Does not contain a specific value.
  """
  does_not_contain

  """
  Does not equal a specific value.
  """
  does_not_equal

  """
  Specific attribute does not exist.
  """
  does_not_exist

  """
  A certain filter is not matched.
  """
  does_not_match

  """
  Does not match a value using a regular expression.
  """
  does_not_match_regex

  """
  Ends with a specific value.
  """
  ends_with

  """
  Equals a specific value.
  """
  equals

  """
  Specific attribute exists.
  """
  exists

  """
  Greater than or equal to a specific value (numeric only).
  """
  greater_than_or_equal_to

  """
  Less than or equal to a specific value (numeric only).
  """
  less_than_or_equal_to

  """
  A certain filter is matched.
  """
  matches

  """
  Matches a value using a regular expression.
  """
  matches_regex

  """
  Satisfies an expression defined in jq.
  """
  satisfies_jq_expression

  """
  Satisfies version constraint (tag value only).
  """
  satisfies_version_constraint

  """
  Starts with a specific value.
  """
  starts_with
}

"""
A condition that should be satisfied.
"""
input PredicateUpdateInput {
  """
  The condition type used by the predicate.
  """
  type: PredicateTypeEnum

  """
  The condition value used by the predicate.
  """
  value: String
}

"""
A custom property value assigned to an entity.
"""
type Property {
  """
  The definition of the custom property, including its schema.
  """
  definition: PropertyDefinition!

  """
  Whether the property is locked or not.
  """
  locked: Boolean!

  """
  The entity that the property has been assigned to.
  """
  owner: HasProperties!

  """
  Errors in current value, when validating against the definition.
  """
  validationErrors: [Error!]!

  """
  The value of the custom property.
  """
  value: JsonString
}

"""
The connection type for Property.
"""
type PropertyConnection {
  """
  A list of edges.
  """
  edges: [PropertyEdge]

  """
  A list of nodes.
  """
  nodes: [Property]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
The definition of a property.
"""
type PropertyDefinition {
  """
  The human-friendly, unique identifier of the property definition.
  """
  alias: String!

  """
  A list of human-friendly, unique identifiers of the property definition.
  """
  aliases: [String!]! @deprecated(reason: "Use `alias` instead")

  """
  Whether or not the property is allowed to be set in opslevel.yml config files.
  """
  allowedInConfigFiles: Boolean!

  """
  The description of the property definition.
  """
  description: String!

  """
  The secondary inferred type of the schema.
  """
  displaySubtype: PropertyDefinitionDisplayTypeEnum

  """
  The primary inferred type of the schema.
  """
  displayType: PropertyDefinitionDisplayTypeEnum!

  """
  The id of the property definition.
  """
  id: ID!

  """
  Restricts what sources are able to assign values to this property.
  """
  lockedStatus: PropertyLockedStatusEnum!

  """
  The name of the property definition.
  """
  name: String!

  """
  The UI display status of the custom property.
  """
  propertyDisplayStatus: PropertyDisplayStatusEnum!

  """
  The schema of the property definition.
  """
  schema: JSONSchema!
}

"""
The connection type for PropertyDefinition.
"""
type PropertyDefinitionConnection {
  """
  A list of edges.
  """
  edges: [PropertyDefinitionEdge]

  """
  A list of nodes.
  """
  nodes: [PropertyDefinition]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
The set of possible display types of a property definition schema.
"""
enum PropertyDefinitionDisplayTypeEnum {
  """
  An array
  """
  ARRAY

  """
  A boolean
  """
  BOOLEAN

  """
  A dropdown
  """
  DROPDOWN

  """
  A number
  """
  NUMBER

  """
  An object
  """
  OBJECT

  """
  A text string
  """
  TEXT
}

"""
An edge in a connection.
"""
type PropertyDefinitionEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: PropertyDefinition
}

"""
The input for defining a property.
"""
input PropertyDefinitionInput {
  """
  Whether or not the property is allowed to be set in opslevel.yml config files.
  """
  allowedInConfigFiles: Boolean = true

  """
  The description of the property definition.
  """
  description: String

  """
  Restricts what sources are able to assign values to this property.
  """
  lockedStatus: PropertyLockedStatusEnum

  """
  The name of the property definition.
  """
  name: String

  """
  The UI display status of the custom property.
  """
  propertyDisplayStatus: PropertyDisplayStatusEnum

  """
  The schema of the property definition.
  """
  schema: JSONSchema
}

"""
The return type for property definition mutations.
"""
type PropertyDefinitionPayload {
  """
  The property that was defined.
  """
  definition: PropertyDefinition

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
The UI display status of a custom property.
"""
enum PropertyDisplayStatusEnum {
  """
  The property is not shown on resource pages.
  """
  hidden

  """
  The property is shown on resource pages.
  """
  visible
}

"""
An edge in a connection.
"""
type PropertyEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Property
}

"""
The input for setting a property.
"""
input PropertyInput {
  """
  The definition of the property.
  """
  definition: IdentifierInput!

  """
  The entity that the property has been assigned to.
  """
  owner: IdentifierInput!

  """
  The type of the entity that the property has been assigned to. Defaults to
  `COMPONENT` if alias is provided for `owner` and `definition`.
  """
  ownerType: PropertyOwnerTypeEnum

  """
  Validate the property value against the schema. On by default.
  """
  runValidation: Boolean = true

  """
  The value of the property.
  """
  value: JsonString!
}

"""
Values for which lock is assigned to a property definition to restrict what sources can assign values to it.
"""
enum PropertyLockedStatusEnum {
  """
  Value assignments on the property cannot be changed through the UI.
  """
  ui_locked

  """
  There are no restrictions on what sources can assign values to the property.
  """
  unlocked
}

"""
The possible entity types that a property can be assigned to.
"""
enum PropertyOwnerTypeEnum {
  """
  A component.
  """
  COMPONENT

  """
  A team.
  """
  TEAM
}

"""
The payload for setting a property.
"""
type PropertyPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The property that was set.
  """
  property: Property
}

"""
The payload for unassigning a property.
"""
type PropertyUnassignPayload {
  """
  The definition of the property that was unassigned.
  """
  definition: PropertyDefinition

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The entity that the property was unassigned from.
  """
  owner: HasProperties
}

"""
A SAML identity provider configuration for single sign-on authentication.
"""
type Provider {
  """
  Whether basic authentication is allowed in addition to SAML.
  """
  allowBasicAuth: Boolean!

  """
  The timestamp when the provider was created.
  """
  createdAt: ISO8601DateTime!

  """
  The email domain associated with this provider for user authentication.
  """
  emailDomain: String!

  """
  The unique identifier for the provider.
  """
  id: ID!

  """
  The X.509 certificate from the identity provider for SAML authentication.
  """
  idpCert: String!

  """
  The URL where users are redirected to authenticate with the identity provider.
  """
  idpLoginUrl: String!

  """
  The URL where users are redirected after logging out from the identity provider.
  """
  idpLogoutUrl: String

  """
  The provider key used for identification.
  """
  key: String!

  """
  The timestamp when the provider was last updated.
  """
  updatedAt: ISO8601DateTime!
}

"""
The response payload for creating a SAML identity provider.
"""
type ProviderCreatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Input fields for updating an existing SAML identity provider.
"""
input ProviderUpdateInput {
  allowBasicAuth: Boolean
  emailDomain: String
  id: ID!
  idpCert: String
  idpLoginUrl: String
  idpLogoutUrl: String
}

"""
The response payload for updating a SAML identity provider.
"""
type ProviderUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The updated provider configuration.
  """
  provider: Provider
}

enum ProvisionedByEnum {
  api_cli
  api_other
  api_terraform
  backstage
  integration_scim
  sso_okta
  sso_other
  unknown
  user
}

"""
The schema's entry-point for queries.
"""
type Query {
  """
  Get information about the current account.
  """
  account: Account!

  """
  OpsLevel's public IP addresses.
  """
  publicIpAddresses: [String!]!
}

"""
The connection type for RelationshipResource.
"""
type RelatedResourceConnection {
  """
  A list of edges.
  """
  edges: [RelatedResourceEdge]

  """
  A list of nodes.
  """
  nodes: [RelationshipResource]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
The edge representing the relationship between two resources.
"""
type RelatedResourceEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The id of the relationship.
  """
  id: ID!

  """
  Whether or not the relationship can be deleted via GraphQL.
  """
  lockedFromGraphqlModification: Boolean!

  """
  The item at the end of the edge.
  """
  node: RelationshipResource

  """
  The definition for the relationship containing metadata like name and description.
  """
  relationshipDefinition: RelationshipDefinitionType

  """
  The type of the relationship to the node.
  """
  relationshipType: RelatedResourceRelationshipTypeEnum!
}

"""
The type of the relationship between two resources.
"""
enum RelatedResourceRelationshipTypeEnum {
  """
  The resource belongs to the node on the edge.
  """
  belongs_to

  """
  The resource contains the node on the edge.
  """
  contains

  """
  The resource is a dependency of the node on the edge.
  """
  dependency_of

  """
  The resource depends on the node on the edge.
  """
  depends_on

  """
  The resource is part of a specialized relationship defined on another node.
  """
  is_related_to

  """
  The resource is a member of the node on the edge.
  """
  member_of

  """
  The resource has a specialized relationship to another node.
  """
  related_to
}

type RelationshipCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The condition that should be satisfied by the relationship value.
  """
  relationshipCountPredicate: Predicate

  """
  The relationship definition that the check is based on. This is specific to the relationship_definition_id argument.
  """
  relationshipDefinition: RelationshipDefinitionType

  """
  The relationship definitions that the check is based on. This is specific to the relationship_definition_alias argument.
  """
  relationshipDefinitions: [RelationshipDefinitionType!]

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
The connection type for RelationshipNode.
"""
type RelationshipConnection {
  """
  A list of edges.
  """
  edges: [RelationshipEdge]

  """
  A list of nodes.
  """
  nodes: [RelationshipNode]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
A source, target and relationship type specifying a relationship between two resources.
"""
input RelationshipDefinition {
  """
  A dynamic definition that specifies how the source and target are related.
  """
  relationshipDefinition: IdentifierInput

  """
  The resource that is the source of the relationship.
  """
  source: IdentifierInput!

  """
  The resource that is the target of the relationship.
  """
  target: IdentifierInput!

  """
  The type of the relationship between source and target.
  """
  type: RelationshipTypeEnum!
}

"""
The connection type for RelationshipDefinitionType.
"""
type RelationshipDefinitionConnection {
  """
  A list of edges.
  """
  edges: [RelationshipDefinitionEdge]

  """
  A list of nodes.
  """
  nodes: [RelationshipDefinitionType]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type RelationshipDefinitionEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: RelationshipDefinitionType
}

"""
The input for defining a relationship on a component type.
"""
input RelationshipDefinitionInput {
  """
  The unique identifier of the relationship.
  """
  alias: String

  """
  The component type to create the relationship on.
  """
  componentType: IdentifierInput

  """
  The description of the relationship.
  """
  description: String

  """
  The management rules that define how relationships will be automatically created and deleted.
  """
  managementRules: [ManagementRuleInput!]

  """
  The metadata of the relationship.
  """
  metadata: RelationshipDefinitionMetadataInput

  """
  The name of the relationship.
  """
  name: String
}

"""
A rule that defines how a relationship is automatically managed.
"""
type RelationshipDefinitionManagementRule {
  """
  The operator used to compare the source and target properties.
  """
  operator: RelationshipDefinitionManagementRuleOperator!

  """
  The property on the source component type that is used in the rule.
  """
  sourceProperty: String!

  """
  Whether the source property is a built-in property.
  """
  sourcePropertyBuiltin: Boolean!

  """
  A component type category that is the target category for the rule.
  """
  targetCategory: String

  """
  The property on the target type that is used in the rule.
  """
  targetProperty: String!

  """
  Whether the target property is a built-in property.
  """
  targetPropertyBuiltin: Boolean!

  """
  The target type for the rule (i.e., a component type alias, 'team', or 'user').
  """
  targetType: String
}

"""
The operator used in a relationship definition management rule.
"""
enum RelationshipDefinitionManagementRuleOperator {
  ARRAY_CONTAINS
  EQUALS
}

"""
The metadata of the relationship.
"""
type RelationshipDefinitionMetadata {
  """
  The categories of component types which this relationship can target.
  """
  allowedCategories: [String!]!

  """
  The aliases of which types this relationship can target. Valid values include
  any component type alias on your account, `team`, or `user`.
  """
  allowedTypes: [String!]!

  """
  The configuration of the columns to display in the relationship table.
  """
  columnConfig: ColumnConfigType

  """
  The maximum number of records this relationship can associate to the component type. Defaults to null (no maximum).
  """
  maxItems: Int

  """
  The minimum number of records this relationship must associate to the component type. Defaults to 0 (optional).
  """
  minItems: Int
}

"""
The metadata of the relationship.
"""
input RelationshipDefinitionMetadataInput {
  """
  The categories of component types which this relationship can target.
  """
  allowedCategories: [String!]

  """
  The aliases of which types this relationship can target. Valid values include
  any component type alias on your account, `team`, or `user`.
  """
  allowedTypes: [String!]

  """
  The configuration of the columns to display in the relationship table.
  """
  columnConfig: ColumnConfigInput

  """
  The maximum number of records this relationship can associate to the component type. Defaults to null (no maximum).
  """
  maxItems: Int

  """
  The minimum number of records this relationship must associate to the component type. Defaults to 0 (optional).
  """
  minItems: Int
}

"""
The return type for relationship definition mutations.
"""
type RelationshipDefinitionPayload {
  """
  The relationship that was defined.
  """
  definition: RelationshipDefinitionType

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
A dynamic definition for a relationship between one catalog entity to another.
"""
type RelationshipDefinitionType {
  """
  The programmatic alias that can be used to reference the relationship in OpsLevel tooling.
  """
  alias: String!

  """
  The component type that the relationship belongs to.
  """
  componentType: ComponentType!

  """
  The long-form descripion of what the relationship represents.
  """
  description: String

  """
  The ID of the relationship definition.
  """
  id: ID!

  """
  Rules that define how relationships will be automatically created and deleted.
  """
  managementRules: [RelationshipDefinitionManagementRule!]!

  """
  JSON data that defines rules for how the relationship should be validated internally.
  """
  metadata: RelationshipDefinitionMetadata!

  """
  The human-readable name for a relationship
  """
  name: String!

  """
  The relationships that are bound to this relationship definition.
  """
  relationships(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): RelationshipConnection!
}

"""
The edge representing the connection between a relationship definition and a relationship.
"""
type RelationshipEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: RelationshipNode
}

"""
The relationship between two resources. A pair of source and destination resources.
"""
type RelationshipNode {
  """
  The catalog item that a relationship points to.
  """
  destination: RelationshipResource!

  """
  The ID of the relationship.
  """
  id: ID!

  """
  The catalog item that a relationship stems from.
  """
  source: RelationshipResource!
}

"""
Return type for the requested `relationship` type.
"""
type RelationshipPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The type specifying a relationship between two resources.
  """
  relationship: RelationshipType
}

"""
A resource that can have relationships to other resources.
"""
union RelationshipResource = Domain | InfrastructureResource | Service | System | Team | User

"""
The type specifying a relationship between two resources.
"""
type RelationshipType {
  """
  The ID of the relationship
  """
  id: ID!

  """
  The resource that is the source of the relationship.
  """
  source: RelationshipResource!

  """
  The resource that is the target of the relationship.
  """
  target: RelationshipResource!

  """
  The type of the relationship between source and target.
  """
  type: RelationshipTypeEnum!
}

"""
The type of relationship between two resources.
"""
enum RelationshipTypeEnum {
  """
  The source resource belongs to the target resource. Can be used to allow
  Components to belong to Systems and Domains, or for Infrastructure to belong to Components.
  """
  belongs_to

  """
  The source resource depends on the target resource. Can be used to specify
  that a Component depends on some Infrastructure, or that a System depends on a Component.
  """
  depends_on

  """
  The source resource is related to the target resource through a custom
  relationship definition. These are dynamic and can be used to extend our
  out-of-the-box relationships.
  """
  related_to
}

"""
Return type for the `repositoriesUpdate` mutation.
"""
type RepositoriesUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The repository objects that were not updated along with the error that happened when attempting to update the repository.
  """
  notUpdatedRepositories: [RepositoryOperationErrorPayload!]

  """
  The identifiers of the updated repositories.
  """
  updatedRepositories: [Repository!]
}

"""
A repository contains code that pertains to a service.
"""
type Repository {
  """
  The date the repository was archived.
  """
  archivedAt: ISO8601DateTime

  """
  The code issue projects associated with this repository.
  """
  codeIssueProjects(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CodeIssueProjectConnection

  """
  The code issues associated with this repository.
  """
  codeIssues(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CodeIssueConnection

  """
  List of errors that occurred while syncing an opslevel.yml file.
  """
  configErrors: [ConfigError!]

  """
  The date the repository was created.
  """
  createdOn: ISO8601DateTime

  """
  The default human-friendly identifier assigned to the repository.
  """
  defaultAlias: String

  """
  The default branch from the repository's settings.
  """
  defaultBranch: String

  """
  A brief description of the repository.
  """
  description: String

  """
  Indicates if the repository is forked.
  """
  forked: Boolean

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the repository.
  """
  id: ID!

  """
  The integration that manages this repository.
  """
  integration: Integration

  """
  A list of languages used in the repository.
  """
  languages: [Language!]!

  """
  The date and time of the most recent ownership change.
  """
  lastOwnerChangedAt: ISO8601DateTime

  """
  Indicates if the repository is locked by an opslevel.yml.
  """
  locked: Boolean!

  """
  The name of the repository.
  """
  name: String!

  """
  The organization to which the repository belongs to.
  """
  organization: String

  """
  The team that owns the repository.
  """
  owner: Team

  """
  The human-friendly identifier for the owning team (whether such a team exists or not).
  """
  ownerAlias: String

  """
  The software packages associated with this repository.
  """
  packages(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    A list of filters to use while search for packages.
    """
    filter: [PackageFilterInput!]

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    Search packages by name.
    """
    searchTerm: String

    """
    The field and direction to order the resulting packages by.
    """
    sortBy: PackageSortEnum
  ): PackageConnection

  """
  Indicates if the repository is private.
  """
  private: Boolean @deprecated(reason: "Use visibility field instead.")

  """
  The repository's unique key from its management platform.
  """
  repoKey: String!

  """
  The combined configuration for SBOM generation for this repository.
  """
  sbomGenerationConfiguration: SBOMGenerationConfiguration

  """
  A list of services that are linked to the repository.
  """
  services(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): RepositoryServiceConnection

  """
  A list of tags applied to the repository.
  """
  tags(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TagRepositoryConnection

  """
  The software tier that the repository belongs to.
  """
  tier: Tier

  """
  The management platform of the repository.
  """
  type: String!

  """
  The URL of the repository.
  """
  url: String

  """
  The level of visibility of the repository.
  """
  visibility: RepositoryVisibilityEnum

  """
  Indicates if the repository is visible.
  """
  visible: Boolean
}

"""
The connection type for Repository.
"""
type RepositoryConnection {
  """
  A list of edges.
  """
  edges: [RepositoryEdge]

  """
  The number of hidden repositories.
  """
  hiddenCount: Int!

  """
  The number of different git integrations.
  """
  integrationCount: Int!

  """
  A list of nodes.
  """
  nodes: [Repository]

  """
  The number of different git integrations.
  """
  organizationCount: Int! @deprecated(reason: "Replaced by integration_count")

  """
  The number of owned repositories that are visible.
  """
  ownedCount: Int!

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!

  """
  The number of visible repositories.
  """
  visibleCount: Int!
}

"""
An edge in a connection.
"""
type RepositoryEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Repository
}

type RepositoryFileCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  Whether the check looks for the existence of a directory instead of a file.
  """
  directorySearch: Boolean

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  Condition to match the file content.
  """
  fileContentsPredicate: Predicate

  """
  Restrict the search to certain file paths.
  """
  filePaths: [String!]!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!

  """
  Whether the checks looks at the absolute root of a repo or the relative root
  (the directory specified when attached a repo to a service).
  """
  useAbsoluteRoot: Boolean
}

type RepositoryGrepCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  Whether the check looks for the existence of a directory instead of a file.
  """
  directorySearch: Boolean!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  Condition to match the file content.
  """
  fileContentsPredicate: Predicate!

  """
  Restrict the search to certain file paths.
  """
  filePaths: [String!]!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

type RepositoryIntegratedCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
Specifies the repository and error after attempting and failing to perform a CRUD operation on a repository.
"""
type RepositoryOperationErrorPayload {
  """
  The error message after an operation was attempted.
  """
  error: String

  """
  The repository on which an operation was attempted.
  """
  repository: Repository!
}

"""
The repository path used for this service.
"""
type RepositoryPath {
  """
  The deep link to the repository path where the linked service's code exists.
  """
  href: String!

  """
  The path where the linked service's code exists, relative to the root of the repository.
  """
  path: String!
}

"""
The enumerated list of configuration values for SBOM generation at the repository level.
"""
enum RepositorySBOMGenerationConfigEnum {
  """
  Indicates that the repository will opt in to automated SBOM generation if it
  would be otherwise enabled at an integration or account level.
  """
  opt_in

  """
  Indicates that the repository will opt out of automated SBOM generation if it
  would be otherwise enabled at an integration or account level.
  """
  opt_out
}

"""
The set of values that explain why SBOM auto-generation is disabled.
"""
enum RepositorySBOMGenerationDisabledReasonEnum {
  """
  SBOM auto-generation is disabled at the account level.
  """
  account

  """
  SBOM auto-generation is disabled at the integration level.
  """
  integration

  """
  SBOM auto-generation is disabled at the repository level.
  """
  repository
}

type RepositorySearchCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  Condition to match the text content.
  """
  fileContentsPredicate: Predicate!

  """
  Restrict the search to files of given extensions.
  """
  fileExtensions: [String!]

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
The connection type for Service.
"""
type RepositoryServiceConnection {
  """
  A list of edges.
  """
  edges: [RepositoryServiceEdge]

  """
  The paths where opslevel.ymls can be found for locked services.
  """
  lockedRepoPaths: [RepositoryPath!]

  """
  A list of nodes.
  """
  nodes: [Service]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type RepositoryServiceEdge {
  """
  If any of the paths mapped to this service is a root path.
  """
  atRoot: Boolean!

  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Service

  """
  The repository paths used for this service.
  """
  paths: [RepositoryPath!]!

  """
  A list of service repositories that link the repository and this service.
  """
  serviceRepositories: [ServiceRepository!]!
}

"""
Specifies the input fields used to update a repository.
"""
input RepositoryUpdateInput {
  """
  The id of the repository to be updated.
  """
  id: ID!

  """
  The team that owns the repository.
  """
  ownerId: ID

  """
  The desired configuration state at the repository level for SBOM generation.
  """
  sbomGeneration: RepositorySBOMGenerationConfigEnum

  """
  Indicates if the repository is visible.
  """
  visible: Boolean
}

"""
The return type of a `repositoryUpdate` mutation.
"""
type RepositoryUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A repository contains code that pertains to a service.
  """
  repository: Repository
}

"""
Possible visibility levels for repositories.
"""
enum RepositoryVisibilityEnum {
  """
  Repositories that are only accessible to organization users (Github, Gitlab).
  """
  INTERNAL

  """
  Repositories that are only accessible to organization users (ADO).
  """
  ORGANIZATION

  """
  Repositories that are private to the user.
  """
  PRIVATE

  """
  Repositories that are publicly accessible.
  """
  PUBLIC
}

"""
The return type of the delete mutation.
"""
type ResourceDeletePayload {
  """
  The alias of the deleted resource.
  """
  deletedAlias: String

  """
  The id of the deleted resource.
  """
  deletedId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Status of a document on a resource.
"""
enum ResourceDocumentStatusTypeEnum {
  """
  Document is hidden
  """
  hidden

  """
  Document is pinned
  """
  pinned

  """
  Document is visible
  """
  visible
}

"""
Rubrics allow you to score your services against different categories and levels.
"""
type Rubric {
  """
  List all rubric categories for your account.
  """
  categories(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CategoryConnection

  """
  The checks of the rubric.
  """
  checks(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    The category ID of a check.
    """
    categoryId: ID

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CheckConnection

  """
  List all rubric levels for your account.
  """
  levels(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): LevelConnection!
}

"""
The check result information for the service's rubric.
"""
type RubricReport {
  """
  A category is used to group related checks in a rubric.
  """
  categories(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): ServiceCategoryConnection

  """
  The level of a specific category.
  """
  categoryLevel: Level

  """
  The service check results.
  """
  checkResults: ServiceCheckResults

  """
  The overall level of the service.
  """
  level: Level
}

"""
The configuration details that explain whether SBOM generation is allowed for the repository.
"""
type SBOMGenerationConfiguration {
  """
  A brief explanation of why SBOM auto-generation is disabled.
  """
  disabledReason: RepositorySBOMGenerationDisabledReasonEnum

  """
  Whether SBOM auto-generation is enabled through all associated configuration objects.
  """
  enabled: Boolean!

  """
  The approximate time at which a new software bill of material will be generated for this repository.
  """
  nextGenerationAt: ISO8601DateTime

  """
  The configuration option set by the current object.
  """
  state: RepositorySBOMGenerationConfigEnum!
}

type ScimIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
A scorecard.
"""
type Scorecard {
  """
  Specifies whether the checks on this scorecard affect services' overall maturity level.
  """
  affectsOverallServiceLevels: Boolean!

  """
  Aliases of the scorecard.
  """
  aliases: [String!]!

  """
  The categories on this scorecard.
  """
  categories(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): ScorecardCategoryConnection

  """
  The checks on this scorecard.
  """
  checks(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): ScorecardCheckConnection

  """
  Description of the scorecard.
  """
  description: String

  """
  Filter used by the scorecard to restrict services.
  """
  filter: Filter

  """
  The hypertext reference (link) to the UI showing this scorecard.
  """
  href: String!

  """
  A reference to the scorecard.
  """
  id: ID!

  """
  List all rubric levels for your account.
  """
  levels(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): LevelConnection!

  """
  Name of the scorecard.
  """
  name: String!

  """
  The owner of this scorecard. Can currently either be a team or a group.
  """
  owner: EntityOwner

  """
  The number of checks that are passing on this scorecard. A check executed against two services counts as two.
  """
  passingChecks: Int!

  """
  The percentage of checks that are passing on this scorecard. A check executed against two services counts as two.
  """
  passingChecksPercentage: Float!

  """
  The number of services covered by this scorecard.
  """
  serviceCount: Int!

  """
  Service stats regarding this scorecard.
  """
  servicesReport: ScorecardServicesReport

  """
  Slug of the scorecard.
  """
  slug: String!

  """
  The number of checks that are performed on this scorecard. A check executed against two services counts as two.
  """
  totalChecks: Int!
}

"""
The connection type for Category.
"""
type ScorecardCategoryConnection {
  """
  A list of edges.
  """
  edges: [ScorecardCategoryEdge]

  """
  A list of nodes.
  """
  nodes: [Category]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type ScorecardCategoryEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Category
}

"""
The connection type for Check.
"""
type ScorecardCheckConnection {
  """
  A list of edges.
  """
  edges: [ScorecardCheckEdge]

  """
  A list of nodes.
  """
  nodes: [Check]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type ScorecardCheckEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Check
}

"""
The connection type for Scorecard.
"""
type ScorecardConnection {
  """
  A list of edges.
  """
  edges: [ScorecardEdge]

  """
  A list of nodes.
  """
  nodes: [Scorecard]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The total number of scorecards.
  """
  totalCount: Int
}

"""
The return type when deleting a scorecard.
"""
type ScorecardDeletePayload {
  """
  The ID of the scorecard that was deleted, if one was deleted.
  """
  deletedScorecardId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
An edge in a connection.
"""
type ScorecardEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Scorecard
}

"""
Input used to create scorecards.
"""
input ScorecardInput {
  affectsOverallServiceLevels: Boolean

  """
  Description of the scorecard.
  """
  description: String

  """
  Filter used by the scorecard to restrict services.
  """
  filterId: ID

  """
  Name of the scorecard.
  """
  name: String!

  """
  Owner of the scorecard. Can currently be a team or a group.
  """
  ownerId: ID!
}

"""
The type returned when creating a scorecard.
"""
type ScorecardPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The created scorecard.
  """
  scorecard: Scorecard
}

"""
Service stats regarding this scorecard.
"""
type ScorecardServicesReport {
  """
  Services per level regarding this scorecard.
  """
  levelCounts: [LevelCount!]!
}

"""
The possible options to sort the resulting list of scorecards.
"""
enum ScorecardSortEnum {
  """
  Order by whether or not the checks on the scorecard affect the overall maturity, in ascending order.
  """
  affectsOverallServiceLevels_ASC

  """
  Order by whether or not the checks on the scorecard affect the overall maturity, in descending order.
  """
  affectsOverallServiceLevels_DESC

  """
  Order by the associated filter's name, in ascending order.
  """
  filter_ASC

  """
  Order by the associated filter's name, in descending order.
  """
  filter_DESC

  """
  Order by the scorecard's name, in ascending order.
  """
  name_ASC

  """
  Order by the scorecard's name, in descending order.
  """
  name_DESC

  """
  Order by the scorecard owner's name, in ascending order.
  """
  owner_ASC

  """
  Order by the scorecard owner's name, in descending order.
  """
  owner_DESC

  """
  Order by the fraction of passing checks on the scorecard, in ascending order
  """
  passingCheckFraction_ASC

  """
  Order by the fraction of passing checks on the scorecard, in descending order
  """
  passingCheckFraction_DESC

  """
  Order by the number of services covered by the scorecard, in ascending order.
  """
  serviceCount_ASC

  """
  Order by the number of services covered by the scorecard, in descending order.
  """
  serviceCount_DESC
}

"""
Service maturity information about a scorecard.
"""
type ScorecardStats {
  """
  A category is used to group related checks in a rubric.
  """
  categories(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): ServiceCategoryConnection

  """
  The service check results.
  """
  checkResults: ServiceCheckResults

  """
  The scorecard.
  """
  scorecard: Scorecard
}

"""
The connection type for ScorecardStats.
"""
type ScorecardStatsConnection {
  """
  A list of edges.
  """
  edges: [ScorecardStatsEdge]

  """
  A list of nodes.
  """
  nodes: [ScorecardStats]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type ScorecardStatsEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: ScorecardStats
}

"""
A sensitive value.
"""
type Secret {
  """
  A human reference for the secret.
  """
  alias: String!

  """
  A reference for the secret.
  """
  id: ID!

  """
  The owner of this secret.
  """
  owner: Team

  """
  Relevant timestamps.
  """
  timestamps: Timestamps!
}

"""
Arguments for secret operations.
"""
input SecretInput {
  """
  The owner of this secret.
  """
  owner: IdentifierInput

  """
  A sensitive value.
  """
  value: String
}

"""
Return type for secret operations.
"""
type SecretPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A sensitive value.
  """
  secret: Secret
}

"""
An edge in a connection.
"""
type SecretsVaultsSecretEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Secret
}

"""
The connection type for Secret.
"""
type SecretsVaultsSecretsConnection {
  """
  A list of edges.
  """
  edges: [SecretsVaultsSecretEdge]

  """
  The number of secrets on the account that match the provided filters or search criteria.
  """
  filteredCount: Int!

  """
  A list of nodes.
  """
  nodes: [Secret]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The total number of secrets on the account.
  """
  totalCount: Int!
}

"""
A service represents software deployed in your production infrastructure.
"""
type Service implements HasProperties {
  """
  AlertSourceService connections. Edges between AlertSource and Service that contain the status.
  """
  alertSources(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): AlertSourceServiceConnection

  """
  A human-friendly, unique identifier for the service.
  """
  alias: String @deprecated(reason: "Alias is now deprecated. Please use `aliases` instead for all aliases, or `slug` for the default alias.")

  """
  A list of human-friendly, unique identifiers for the service.
  """
  aliases: [String!]!

  """
  The path, relative to the service repository's base directory, from which to
  fetch the API document. If null, the API document is fetched from the path in
  the account's apiDocsDefaultPath field.
  """
  apiDocumentPath: String

  """
  A summary of check results on the service.
  """
  checkStats: CheckStats

  """
  The code issue projects associated with this service.
  """
  codeIssueProjects(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CodeIssueProjectConnection

  """
  The code issues associated with this service.
  """
  codeIssues(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CodeIssueConnection

  """
  List of errors that occurred while syncing an opslevel.yml file.
  """
  configErrors: [ConfigError!]

  """
  Either the primary service repository, or the first valid non-archived repo, if any.
  """
  defaultServiceRepository: ServiceRepository

  """
  The services that this service depends on.
  """
  dependencies(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    Search dependencies by name.
    """
    search: String

    """
    The field and direction to order the resulting dependencies by.
    """
    sortBy: ServiceSortEnum
  ): ServiceDependenciesConnection

  """
  The services that depend on this service.
  """
  dependents(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    Search dependents by name.
    """
    search: String

    """
    The field and direction to order the resulting dependents by.
    """
    sortBy: ServiceSortEnum
  ): ServiceDependentsConnection

  """
  A brief description of the service.
  """
  description: String

  """
  All documents attached to this service.
  """
  documents(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    Search documents by title and pathInRepository.
    """
    searchTerm: String
  ): ServiceDocumentConnection!

  """
  The service's external UUID.
  """
  externalUuid: String

  """
  The primary software development framework that the service uses.
  """
  framework: String

  """
  A health report on the service.
  """
  healthReport: ServiceMaturityReport @deprecated(reason: "Please use `maturity_report` instead.")

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the service.
  """
  id: ID!

  """
  The primary programming language that the service is written in.
  """
  language: String

  """
  The most recent production `Deploy` for this service. A deploy is considered
  production if its environment contains 'prod' or is empty.
  """
  lastDeploy: Deploy

  """
  The lifecycle stage of the service.
  """
  lifecycle: Lifecycle

  """
  Indicates if the service is locked by an opslevel.yml.
  """
  locked: Boolean!

  """
  A list of aliases that can be set by users. The unique identifier for the resource is omitted.
  """
  managedAliases: [String!]!

  """
  A health report on the service.
  """
  maturityReport: ServiceMaturityReport

  """
  The display name of the service.
  """
  name: String!

  """
  Additional information about the service.
  """
  note: String

  """
  The list of users on call for this service
  """
  onCalls(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): OnCallConnection

  """
  The team that owns the service.
  """
  owner: Team

  """
  The software packages associated with this service.
  """
  packages(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    A list of filters to use while search for packages.
    """
    filter: [PackageFilterInput!]

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int

    """
    Search packages by name.
    """
    searchTerm: String

    """
    The field and direction to order the resulting packages by.
    """
    sortBy: PackageSortEnum
  ): PackageConnection

  """
  Parent System of the Service
  """
  parent: System

  """
  The API document selected for display on the API docs tab on the service's page.
  """
  preferredApiDocument: ServiceDocument

  """
  The API document source (push or pull) used to determine the preferred API
  document. If null, we try the pushed doc and then the pulled doc (in that order).
  """
  preferredApiDocumentSource: ApiDocumentSourceEnum

  """
  A product is an application that your end user interacts with. Multiple
  services can work together to power a single product.
  """
  product: String

  """
  Custom properties assigned to this entity.
  """
  properties(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Optionally filter the properties by display status.
    """
    displayStatus: PropertyDisplayStatusEnum

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): PropertyConnection!

  """
  A custom property value assigned to this entity.
  """
  property(definition: IdentifierInput!): Property

  """
  The raw unsanitized additional information about the service.
  """
  rawNote: String

  """
  A list of related resources.
  """
  relatedResources(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): RelatedResourceConnection

  """
  A list of repositories that are linked to the service.
  """
  repos(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): ServiceRepositoryConnection

  """
  A list of repositories that are linked to the service.
  """
  repositories(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): RepositoryConnection @deprecated(reason: "`repositories` is now deprecated. Please use `repos` instead.")

  """
  A summary of check results on the service.
  """
  serviceStats: ServiceStats

  """
  A human-friendly, unique identifier for the service.
  """
  slug: String!

  """
  A list of tags applied to the service.
  """
  tags(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TagConnection

  """
  The software tier that the service belongs to.
  """
  tier: Tier

  """
  Relevant timestamps.
  """
  timestamps: Timestamps!

  """
  A list of tools that are used by the service.
  """
  tools(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): ToolConnection

  """
  The type of the component.
  """
  type: ComponentType!
}

"""
The connection type for Category.
"""
type ServiceCategoryConnection {
  """
  A list of edges.
  """
  edges: [ServiceCategoryEdge]

  """
  A list of nodes.
  """
  nodes: [Category]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type ServiceCategoryEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The level of the service category.
  """
  level: Level

  """
  The item at the end of the edge.
  """
  node: Category
}

"""
The service check results.
"""
type ServiceCheckResults {
  """
  The list of service check results grouped by level.
  """
  byLevel(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CheckResultsByLevelConnection

  """
  The next level for this service to achieve and the associated checks.
  """
  nextLevel: ServiceNextLevel
}

type ServiceConfigurationCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
The connection type for Service.
"""
type ServiceConnection {
  """
  A list of edges.
  """
  edges: [ServiceEdge]

  """
  The number of returned nodes
  """
  filteredCount: Int

  """
  A list of nodes.
  """
  nodes: [Service]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  Object containing the predicates for filtering services.
  """
  predicates: JSON

  """
  The total number of services.
  """
  totalCount: Int
}

"""
Specifies the input fields used in the `serviceCreate` mutation.
"""
input ServiceCreateInput {
  """
  A brief description of the service.
  """
  description: String

  """
  The primary software development framework that the service uses.
  """
  framework: String

  """
  The primary programming language that the service is written in.
  """
  language: String

  """
  The lifecycle stage of the service.
  """
  lifecycleAlias: String

  """
  The display name of the service.
  """
  name: String!

  """
  The team that owns the service.
  """
  ownerAlias: String @deprecated(reason: "Use ownerInput")

  """
  The owner for this service.
  """
  ownerInput: IdentifierInput

  """
  The parent system for the service.
  """
  parent: IdentifierInput

  """
  A product is an application that your end user interacts with. Multiple
  services can work together to power a single product.
  """
  product: String

  """
  Allows for the creation of a service with invalid aliases.
  """
  skipAliasesValidation: Boolean = false

  """
  The software tier that the service belongs to.
  """
  tierAlias: String

  """
  The type of the component.
  """
  type: IdentifierInput
}

"""
Return type for the `serviceCreate` mutation.
"""
type ServiceCreatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The newly created service.
  """
  service: Service
}

"""
Specifies the input fields used in the `serviceDelete` mutation.
"""
input ServiceDeleteInput {
  """
  The alias of the service to be deleted.
  """
  alias: String

  """
  The id of the service to be deleted.
  """
  id: ID
}

"""
Return type for the `serviceDelete` mutation.
"""
type ServiceDeletePayload {
  """
  The alias of the deleted service.
  """
  deletedServiceAlias: String

  """
  The ID of the deleted service.
  """
  deletedServiceId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
The connection type for Service.
"""
type ServiceDependenciesConnection {
  """
  A list of edges.
  """
  edges: [ServiceDependenciesEdge]

  """
  The number of returned nodes
  """
  filteredCount: Int

  """
  A list of nodes.
  """
  nodes: [Service]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The total number of services.
  """
  totalCount: Int
}

"""
An edge in a connection.
"""
type ServiceDependenciesEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The id representing the service dependency.
  """
  id: ID!

  """
  Is the dependency locked by a service config?
  """
  locked: Boolean!

  """
  The url to the opslevel.yml file that specifies this dependency.
  """
  lockerUrl: String

  """
  The item at the end of the edge.
  """
  node: Service

  """
  Notes for service dependency.
  """
  notes: String
}

"""
A service dependency edge.
"""
type ServiceDependency {
  """
  The service that was depended upon.
  """
  destinationService: Service!

  """
  ID of the service dependency edge.
  """
  id: ID!

  """
  Notes about the dependency edge.
  """
  notes: String

  """
  The service that had the dependency.
  """
  sourceService: Service!
}

type ServiceDependencyCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
Specifies the input fields used for creating a service dependency.
"""
input ServiceDependencyCreateInput {
  """
  A source, destination pair specifying a dependency between services.
  """
  dependencyKey: ServiceDependencyKey!

  """
  Notes for service dependency.
  """
  notes: String
}

"""
A source, destination pair specifying a dependency between services.
"""
input ServiceDependencyKey {
  """
  The ID of the service that is depended upon.
  """
  destination: ID @deprecated(reason: "Replaced by destinationIdentifier")

  """
  The ID or alias identifier of the service that is depended upon.
  """
  destinationIdentifier: IdentifierInput

  """
  Notes about the dependency edge
  """
  notes: String @deprecated(reason: "Use notes in the ServiceDependencyCreateInput type")

  """
  The ID of the service with the dependency.
  """
  source: ID @deprecated(reason: "Replaced by sourceIdentifier")

  """
  The ID or alias identifier of the service with the dependency.
  """
  sourceIdentifier: IdentifierInput
}

"""
Return type for the requested `serviceDependency`.
"""
type ServiceDependencyPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A service dependency edge.
  """
  serviceDependency: ServiceDependency
}

"""
The connection type for Service.
"""
type ServiceDependentsConnection {
  """
  A list of edges.
  """
  edges: [ServiceDependentsEdge]

  """
  The number of returned nodes
  """
  filteredCount: Int

  """
  A list of nodes.
  """
  nodes: [Service]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The total number of services.
  """
  totalCount: Int
}

"""
An edge in a connection.
"""
type ServiceDependentsEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The id representing the service dependency.
  """
  id: ID!

  """
  Is the dependency locked by a service config?
  """
  locked: Boolean!

  """
  The url to the opslevel.yml file that specifies this dependency.
  """
  lockerUrl: String

  """
  The item at the end of the edge.
  """
  node: Service

  """
  Notes for service dependency.
  """
  notes: String
}

"""
A document that is attached to resource(s) in OpsLevel.
"""
type ServiceDocument {
  """
  The contents of the document.
  """
  content: String

  """
  The URL of the document, if any.
  """
  htmlUrl: String

  """
  The ID of the Document.
  """
  id: ID!

  """
  The source of the document.
  """
  source: ServiceDocumentSource!

  """
  When the document was created and updated.
  """
  timestamps: Timestamps!
}

"""
The connection type for ServiceDocument.
"""
type ServiceDocumentConnection {
  """
  A list of edges.
  """
  edges: [ServiceDocumentEdge]

  """
  A list of nodes.
  """
  nodes: [ServiceDocument]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type ServiceDocumentEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: ServiceDocument

  """
  The visibility of the document for the given service.
  """
  status: ResourceDocumentStatusTypeEnum
}

"""
The source of a document.
"""
union ServiceDocumentSource = ApiDocIntegration | Repository | Service | ServiceRepository

"""
An edge in a connection.
"""
type ServiceEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  A hash of the fields and their associated highlights from a service query.
  """
  highlights: JSON

  """
  The item at the end of the edge.
  """
  node: Service
}

"""
Fields that can be used as part of filter for services.
"""
enum ServiceFilterEnum {
  """
  Filter by `alert status` field
  """
  alert_status

  """
  Filter by Alias attached to this service, if any.
  """
  aliases

  """
  Filter by the type of service.
  """
  component_type_id

  """
  Filter by the creation source.
  """
  creation_source

  """
  Filter by the existence of a deploy to an environment.
  """
  deploy_environment

  """
  Filter by Domain that includes the System this service is assigned to, if any.
  """
  domain_id

  """
  Filter by another filter
  """
  filter_id

  """
  Filter by `framework` field
  """
  framework

  """
  Filter by group hierarchy. Will return resources who's owner is in the group ancestry chain.
  """
  group_ids

  """
  Filter by `language` field
  """
  language

  """
  Filter by `level` field
  """
  level_index

  """
  Filter by `lifecycle` field
  """
  lifecycle_index

  """
  Filter by whether maturity is enabled for this service.
  """
  maturity_enabled

  """
  Filter by `name` field
  """
  name

  """
  Filter by `owner` field
  """
  owner_id

  """
  Filter by `owner` hierarchy. Will return resources who's owner is in the team ancestry chain.
  """
  owner_ids

  """
  Filter by `product` field
  """
  product

  """
  Filter by a custom-defined property value.
  """
  property

  """
  Filter by the existence of a relationship to another catalog component.
  """
  relationship

  """
  Filter by Repository that this service is attached to, if any.
  """
  repository_ids

  """
  Filter by System that this service is assigned to, if any.
  """
  system_id

  """
  Filter by `tag` field
  """
  tag

  """
  Filter by `tier` field
  """
  tier_index
}

"""
Input to be used to filter types.
"""
input ServiceFilterInput {
  """
  Value to be filtered.
  """
  arg: String

  """
  Whether or not the filter should be case sensitive.
  """
  caseSensitive: Boolean

  """
  The logical operator to be used in conjunction with multiple filters (requires predicates to be supplied).
  """
  connective: ConnectiveEnum = or

  """
  Field to be filtered.
  """
  key: ServiceFilterEnum

  """
  A list of service filter input.
  """
  predicates: [ServiceFilterInput!]

  """
  Type of operation to be applied to value on the field.
  """
  type: TypeEnum = equals
}

type ServiceLevelNotifications {
  """
  The minimum level index below which notifications are sent. When set, only
  level changes that drop below this threshold will trigger notifications. Set
  to null to notify on all level changes.
  """
  minimumNotifyLevelIndex: Int

  """
  Whether to send notifications when a component level recovers back to or above the notification threshold.
  """
  notifyOnRecovery: Boolean!

  """
  Whether slack notifications on service level changes are enabled on your account.
  """
  slackNotificationEnabled: Boolean!
}

"""
The return type of the service level notifications update mutation
"""
type ServiceLevelNotificationsPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The updated service level notification settings.
  """
  serviceLevelNotifications: ServiceLevelNotifications
}

"""
Specifies the input fields used to update service level notification settings.
"""
input ServiceLevelNotificationsUpdateInput {
  """
  Whether or not to enable receiving slack notifications on service level changes.
  """
  enableSlackNotifications: Boolean

  """
  The minimum level index below which notifications are sent. When set, only
  level changes that drop below this threshold will trigger notifications. Set
  to null to notify on all level changes.
  """
  minimumNotifyLevelIndex: Int

  """
  Whether to send notifications when a component level recovers back to or above the notification threshold.
  """
  notifyOnRecovery: Boolean
}

"""
The health report for this service in terms of its levels and checks.
"""
type ServiceMaturityReport {
  """
  The level of each category for this service.
  """
  categoryBreakdown: [CategoryLevel!]!

  """
  The latest check results for this service across the given checks.
  """
  latestCheckResults(
    """
    Filter the latest check results by specific checks by providing check IDs.
    """
    ids: [ID!]
  ): [CheckResult!]

  """
  The overall level for this service.
  """
  overallLevel: Level!
}

"""
The next level for a service to achieve and the associated checks.
"""
type ServiceNextLevel {
  """
  All active checks that apply to the level.
  """
  checkResults(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CheckConnection

  """
  The currently failing checks that apply to the level.
  """
  failingCheckResults(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): CheckConnection

  """
  The next level for a service to achieve.
  """
  level: Level
}

"""
Specifies the input fields used in the `serviceNoteUpdate` mutation.
"""
input ServiceNoteUpdateInput {
  """
  Note about the service.
  """
  note: String

  """
  The identifier for the service.
  """
  service: IdentifierInput!
}

"""
Return type for the `serviceNoteUpdate` mutation.
"""
type ServiceNoteUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A service represents software deployed in your production infrastructure.
  """
  service: Service
}

type ServiceOwnershipCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  The type of contact method that an owner should provide
  """
  contactMethod: String

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  Whether to require a contact method for a service owner or not
  """
  requireContactMethod: Boolean!

  """
  The tag key that should exist for a service owner.
  """
  tagKey: String

  """
  The condition that should be satisfied by the tag value.
  """
  tagPredicate: Predicate

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

type ServicePropertyCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The definition of a property.
  """
  propertyDefinition: PropertyDefinition

  """
  The property of the service that the check will verify.
  """
  propertyValuePredicate: Predicate

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The condition that should be satisfied by the service property value.
  """
  serviceProperty: ServicePropertyTypeEnum!

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
Properties of services that can be validated.
"""
enum ServicePropertyTypeEnum {
  """
  A custom property that is associated with the service.
  """
  custom_property

  """
  The description of a service.
  """
  description

  """
  The primary software development framework of a service.
  """
  framework

  """
  The primary programming language of a service.
  """
  language

  """
  The index of the lifecycle a service belongs to.
  """
  lifecycle_index

  """
  The name of a service.
  """
  name

  """
  Additional information about the service.
  """
  note

  """
  The product that is associated with a service.
  """
  product

  """
  The system that the service belongs to.
  """
  system

  """
  The index of the tier a service belongs to.
  """
  tier_index
}

"""
A record of the connection between a service and a repository.
"""
type ServiceRepository {
  """
  The directory in the repository where service information exists, including
  the opslevel.yml file. This path is always returned without leading and
  trailing slashes.
  """
  baseDirectory: String

  """
  The name displayed in the UI for the service repository.
  """
  displayName: String

  """
  ID of the service repository.
  """
  id: ID!

  """
  The repository that is part of this connection.
  """
  repository: Repository!

  """
  The service that is part of this connection.
  """
  service: Service!
}

"""
The connection type for Repository.
"""
type ServiceRepositoryConnection {
  """
  A list of edges.
  """
  edges: [ServiceRepositoryEdge]

  """
  A list of nodes.
  """
  nodes: [Repository]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
Specifies the input fields used in the `serviceRepositoryCreate` mutation.
"""
input ServiceRepositoryCreateInput {
  """
  The directory in the repository where service information exists, including
  the opslevel.yml file. This path is always returned without leading and
  trailing slashes.
  """
  baseDirectory: String

  """
  The name displayed in the UI for the service repository.
  """
  displayName: String

  """
  The identifier for the repository.
  """
  repository: IdentifierInput!

  """
  The identifier for the service.
  """
  service: IdentifierInput!
}

"""
Return type for the `serviceRepositoryCreate` mutation.
"""
type ServiceRepositoryCreatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A record of the connection between a service and a repository.
  """
  serviceRepository: ServiceRepository
}

"""
An edge in a connection.
"""
type ServiceRepositoryEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Repository

  """
  A list of service repositories that link the service and this repository.
  """
  serviceRepositories: [ServiceRepository!]!
}

"""
Specifies the input fields used to update a service repository.
"""
input ServiceRepositoryUpdateInput {
  """
  The directory in the repository where service information exists, including
  the opslevel.yml file. This path is always returned without leading and
  trailing slashes.
  """
  baseDirectory: String

  """
  The name displayed in the UI for the service repository.
  """
  displayName: String

  """
  The ID of the service repository to be updated.
  """
  id: ID!
}

"""
The return type of the `serviceRepositoryUpdate` mutation.
"""
type ServiceRepositoryUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The updated service repository.
  """
  serviceRepository: ServiceRepository
}

"""
Sort possibilities for services.
"""
enum ServiceSortEnum {
  """
  Sort by alert status ascending.
  """
  alert_status_ASC

  """
  Sort by alert status descending.
  """
  alert_status_DESC

  """
  Sort by `checks_passing` ascending.
  """
  checks_passing_ASC

  """
  Sort by `checks_passing` descending.
  """
  checks_passing_DESC

  """
  Sort by component type ascending.
  """
  component_type_ASC

  """
  Sort by component type descending.
  """
  component_type_DESC

  """
  Sort by last deploy time ascending.
  """
  last_deploy_ASC

  """
  Sort by last deploy time descending.
  """
  last_deploy_DESC

  """
  Sort by level ascending.
  """
  level_index_ASC

  """
  Sort by level descending.
  """
  level_index_DESC

  """
  Sort by lifecycle ascending.
  """
  lifecycle_ASC

  """
  Sort by lifecycle descending.
  """
  lifecycle_DESC

  """
  Sort by `name` ascending.
  """
  name_ASC

  """
  Sort by `name` descending.
  """
  name_DESC

  """
  Sort by `owner` ascending.
  """
  owner_ASC

  """
  Sort by `owner` descending.
  """
  owner_DESC

  """
  Sort by `product` ascending.
  """
  product_ASC

  """
  Sort by `product` descending.
  """
  product_DESC

  """
  Alias to sort by `checks_passing` ascending.
  """
  service_stat_ASC

  """
  Alias to sort by `checks_passing` descending.
  """
  service_stat_DESC

  """
  Sort by `tier` ascending.
  """
  tier_ASC

  """
  Sort by `tier` descending.
  """
  tier_DESC
}

"""
The summary of check results for this service.
"""
type ServiceStats {
  """
  The check result information for the service's rubric.
  """
  rubric: RubricReport!

  """
  Service maturity information about a scorecard.
  """
  scorecards(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): ScorecardStatsConnection
}

"""
Specifies the input fields used in the `serviceUpdate` mutation.
"""
input ServiceUpdateInput {
  """
  The alias of the service to be updated.
  """
  alias: String

  """
  A brief description of the service.
  """
  description: String

  """
  The primary software development framework that the service uses.
  """
  framework: String

  """
  The id of the service to be updated.
  """
  id: ID

  """
  The primary programming language that the service is written in.
  """
  language: String

  """
  The lifecycle stage of the service.
  """
  lifecycleAlias: String

  """
  The display name of the service.
  """
  name: String

  """
  The team that owns the service.
  """
  ownerAlias: String @deprecated(reason: "Use ownerInput")

  """
  The owner for the service.
  """
  ownerInput: IdentifierInput

  """
  The parent system for the service.
  """
  parent: IdentifierInput

  """
  A product is an application that your end user interacts with. Multiple
  services can work together to power a single product.
  """
  product: String

  """
  Allows updating a service with invalid aliases.
  """
  skipAliasesValidation: Boolean = false

  """
  The software tier that the service belongs to.
  """
  tierAlias: String

  """
  The type of the component.
  """
  type: IdentifierInput
}

"""
Return type for the `serviceUpdate` mutation.
"""
type ServiceUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The updated service.
  """
  service: Service
}

type SlackIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

type SnykIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
Specifies the input fields used to create and update a Snyk integration.
"""
input SnykIntegrationInput {
  """
  The API Key for the Snyk API.
  """
  apiKey: String

  """
  The base url for your Snyk installation.
  """
  baseUrl: String

  """
  The group ID for the Snyk API.
  """
  groupId: String

  """
  The name of the integration.
  """
  name: String

  """
  The region in which your data is hosted.
  """
  region: SnykIntegrationRegionEnum
}

"""
The data residency regions offered by Snyk.
"""
enum SnykIntegrationRegionEnum {
  """
  Australia (https://api.au.snyk.io).
  """
  AU

  """
  Europe (https://api.eu.snyk.io).
  """
  EU

  """
  USA (https://app.snyk.io).
  """
  US
}

type SonarqubeCloudIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
Specifies the input fields used to create and update a SonarQube Cloud integration.
"""
input SonarqubeCloudIntegrationInput {
  """
  The API Key for the SonarQube Cloud API.
  """
  apiKey: String

  """
  The name of the integration.
  """
  name: String

  """
  The Organization Key for the SonarQube Cloud organization.
  """
  organizationKey: String
}

type SonarqubeIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
Specifies the input fields used to create and update a SonarQube integration.
"""
input SonarqubeIntegrationInput {
  """
  The API Key for the SonarQube API
  """
  apiKey: String

  """
  The base URL for the SonarQube instance
  """
  baseUrl: String

  """
  The name of the integration.
  """
  name: String
}

"""
An object that contains statistics.
"""
type Stats {
  """
  How many there are.
  """
  total: Int!

  """
  How many are successfully passing.
  """
  totalSuccessful: Int!
}

"""
The connection type for Group.
"""
type SubgroupConnection {
  """
  A list of edges.
  """
  edges: [SubgroupEdge]

  """
  A list of nodes.
  """
  nodes: [Group]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type SubgroupEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Group
}

"""
A collection of related Services.
"""
type System {
  """
  All of the aliases attached to the resource.
  """
  aliases: [String!]!

  """
  All infrastructure resources that belong to the System.
  """
  childInfrastructureResources(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): InfrastructureResourceConnection!

  """
  All services that belong to the resource.
  """
  childServices(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): ServiceConnection!

  """
  The description of the System.
  """
  description: String

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The identifier of the object.
  """
  id: ID!

  """
  A list of aliases that can be set by users. The unique identifier for the resource is omitted.
  """
  managedAliases: [String!]!

  """
  The name of the object.
  """
  name: String!

  """
  Additional information about the system.
  """
  note: String

  """
  The owner of the object.
  """
  owner: EntityOwner

  """
  Parent domain of the System
  """
  parent: Domain

  """
  The tags applied to the object.
  """
  tags(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TagConnection
}

"""
Return type for the `systemChildAssign` mutation.
"""
type SystemChildAssignPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The system after children have been assigned.
  """
  system: System
}

"""
Return type for the `systemChildRemove` mutation.
"""
type SystemChildRemovePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The system after children have been removed.
  """
  system: System
}

"""
The connection type for System.
"""
type SystemConnection {
  """
  A list of edges.
  """
  edges: [SystemEdge]

  """
  The number of systems that match the provided filters or search criteria.
  """
  filteredCount: Int

  """
  A list of nodes.
  """
  nodes: [System]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type SystemEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  A hash of the fields and their associated highlights from a systems query.
  """
  highlights: JSON

  """
  The item at the end of the edge.
  """
  node: System
}

"""
Specifies the input fields for a system.
"""
input SystemInput {
  """
  The description for the system.
  """
  description: String

  """
  The name for the system.
  """
  name: String

  """
  Additional information about the system.
  """
  note: String

  """
  The id of the owner for the system.
  """
  ownerId: ID

  """
  The parent domain for the system.
  """
  parent: IdentifierInput
}

"""
Return type for the `systemCreate` and `systemUpdate` mutations.
"""
type SystemPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A collection of related Services.
  """
  system: System
}

"""
The input for defining the system relationship for a component type.
"""
input SystemRelationshipInput {
  """
  The management rules for the system relationship.
  """
  managementRules: [ManagementRuleInput!]
}

"""
The system relationship for a component type.
"""
type SystemRelationshipType {
  """
  The management rules for the system relationship.
  """
  managementRules: [RelationshipDefinitionManagementRule!]!
}

"""
An arbitrary key-value pair associated with a resource.
"""
type Tag {
  """
  The unique identifier for the tag.
  """
  id: ID!

  """
  The tag's key.
  """
  key: String!

  """
  The resource that the tag applies to.
  """
  owner: TagOwner!

  """
  The tag's value.
  """
  value: String!
}

"""
Arguments used to query with a certain tag.
"""
input TagArgs {
  """
  The key of a tag.
  """
  key: String

  """
  The value of a tag.
  """
  value: String
}

"""
Specifies the input fields used to assign tags.
"""
input TagAssignInput {
  """
  The alias of the resource that tags will be added to.
  """
  alias: String

  """
  The id of the resource that the tags will be assigned to.
  """
  id: ID

  """
  The desired tags to assign to the resource.
  """
  tags: [TagInput!]!

  """
  The type of resource `alias` refers to, if `alias` is provided.
  """
  type: TaggableResource = Service
}

"""
The return type of a `tagAssign` mutation.
"""
type TagAssignPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The new tags that have been assigned to the resource.
  """
  tags: [Tag!]
}

"""
The connection type for Tag.
"""
type TagConnection {
  """
  The suggested items to use for selection based on the implemented type.
  """
  autocomplete(
    """
    The term used to find specific results.
    """
    searchTerm: String
  ): [String!]!

  """
  A list of edges.
  """
  edges: [TagEdge]

  """
  A list of nodes.
  """
  nodes: [Tag]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
Specifies the input fields used to create a tag.
"""
input TagCreateInput {
  """
  The alias of the resource that this tag will be added to.
  """
  alias: String

  """
  The id of the resource that this tag will be added to.
  """
  id: ID

  """
  The tag's key.
  """
  key: String!

  """
  The type of resource `alias` refers to, if `alias` is provided.
  """
  type: TaggableResource = Service

  """
  The tag's value.
  """
  value: String!
}

"""
The return type of a `tagCreate` mutation.
"""
type TagCreatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The newly created tag.
  """
  tag: Tag
}

type TagDefinedCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The tag key where the tag predicate should be applied.
  """
  tagKey: String!

  """
  The condition that should be satisfied by the tag value.
  """
  tagPredicate: Predicate

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
Specifies the input fields used to delete a tag.
"""
input TagDeleteInput {
  """
  The id of the tag to be deleted.
  """
  id: ID!
}

"""
The return type of a `tagDelete` mutation.
"""
type TagDeletePayload {
  """
  The id of the deleted tag.
  """
  deletedTagId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
An edge in a connection.
"""
type TagEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Tag
}

"""
Specifies the basic input fields used to construct a tag.
"""
input TagInput {
  """
  The tag's key.
  """
  key: String!

  """
  The tag's value.
  """
  value: String!
}

"""
A resource that a tag can be applied to.
"""
union TagOwner = Domain | InfrastructureResource | Repository | Service | System | Team | User

"""
Returns the keys that set relationships when imported from AWS.
"""
type TagRelationshipKeys {
  """
  The tag key that will create `belongs_to` relationships.
  """
  belongsTo: String!

  """
  The tag keys that will create `dependency_of` relationships.
  """
  dependencyOf: [String!]!

  """
  The tag keys that will create `depends_on` relationships.
  """
  dependsOn: [String!]!
}

"""
The input for the `tagRelationshipKeysAssign` mutation.
"""
input TagRelationshipKeysAssignInput {
  belongsTo: String
  dependencyOf: [String!]
  dependsOn: [String!]
}

"""
The result of assigning tag keys that create relationships.
"""
type TagRelationshipKeysAssignPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The tag keys that create relationships.
  """
  tagRelationshipKeys: TagRelationshipKeys
}

"""
The connection type for Tag.
"""
type TagRepositoryConnection {
  """
  A list of edges.
  """
  edges: [TagRepositoryEdge]

  """
  A list of nodes.
  """
  nodes: [Tag]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type TagRepositoryEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Tag
}

"""
Specifies the input fields used to update a tag.
"""
input TagUpdateInput {
  """
  The id of the tag to be updated.
  """
  id: ID!

  """
  The tag's key.
  """
  key: String

  """
  The tag's value.
  """
  value: String
}

"""
The return type of a `tagUpdate` mutation.
"""
type TagUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The newly updated tag.
  """
  tag: Tag
}

"""
Possible types to apply tags to.
"""
enum TaggableResource {
  """
  Used to identify a Domain.
  """
  Domain

  """
  Used to identify an Infrastructure Resource.
  """
  InfrastructureResource

  """
  Used to identify a Repository.
  """
  Repository

  """
  Used to identify a Service.
  """
  Service

  """
  Used to identify a System.
  """
  System

  """
  Used to identify a Team.
  """
  Team

  """
  Used to identify a User.
  """
  User
}

"""
A team belongs to your organization. Teams can own multiple services.
"""
type Team implements HasProperties {
  """
  The human-friendly, unique identifier for the team.
  """
  alias: String

  """
  A list of human-friendly, unique identifiers for the team.
  """
  aliases: [String!]!

  """
  A list of teams that are ancestors of this team.
  """
  ancestors(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TeamConnection

  """
  The teams where this team is the direct parent.
  """
  childTeams(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TeamConnection

  """
  The contacts for the team.
  """
  contacts: [Contact!]

  """
  All the domains that are owned by this team and its descendants.
  """
  descendantDomains(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): DomainConnection

  """
  All the infrastructure resources that are owned by descendants of this team.
  """
  descendantInfrastructureResources(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): InfrastructureResourceConnection

  """
  All the repositories that fall under this team - ex. this team's child
  repositories, all the child repositories of this team's descendants, etc.
  """
  descendantRepositories(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): RepositoryConnection

  """
  All the services that fall under this team - ex. this team's child services,
  all the child services of this team's descendants, etc.
  """
  descendantServices(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): ServiceConnection

  """
  All the systems that are owned by this team and its descendants.
  """
  descendantSystems(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): SystemConnection

  """
  All the teams that fall under this team - ex. this team's child teams, all the
  child teams of this team's descendants, etc.
  """
  descendantTeams(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TeamConnection

  """
  The group this team belongs to.
  """
  group: Group @deprecated(reason: "Groups are deprecated. We are adding hierarchy to teams. Please Use parent_team instead.")

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the team.
  """
  id: ID!

  """
  A list of aliases that can be set by users. The unique identifier for the resource is omitted.
  """
  managedAliases: [String!]!

  """
  The user who manages the team.
  """
  manager: User @deprecated(reason: "manager is deprecated. Use memberships instead.")

  """
  The users that are on the team.
  """
  members(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): UserConnection @deprecated(reason: "members is deprecated. Use memberships instead.")

  """
  The memberships for the team.
  """
  memberships(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TeamMembershipConnection

  """
  The team's display name.
  """
  name: String!

  """
  The parent team.
  """
  parentTeam: Team

  """
  Custom properties assigned to this entity.
  """
  properties(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Optionally filter the properties by display status.
    """
    displayStatus: PropertyDisplayStatusEnum

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): PropertyConnection!

  """
  A custom property value assigned to this entity.
  """
  property(definition: IdentifierInput!): Property

  """
  A description of what the team is responsible for.
  """
  responsibilities: String

  """
  The check results of the team's services.
  """
  serviceStats: CheckStats!

  """
  A list of tags applied to the team.
  """
  tags(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TagConnection
}

"""
The connection type for Team.
"""
type TeamConnection {
  """
  A list of edges.
  """
  edges: [TeamEdge]

  """
  A list of nodes.
  """
  nodes: [Team]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
Specifies the input fields used to create a team.
"""
input TeamCreateInput {
  """
  The contacts for the team.
  """
  contacts: [ContactInput!]

  """
  The group this team belongs to.
  """
  group: IdentifierInput

  """
  The email of the user who manages the team.
  """
  managerEmail: String @deprecated(reason: "Use members with :manager role")

  """
  A set of emails that identify users in OpsLevel
  """
  members: [TeamMembershipUserInput!]

  """
  The team's display name.
  """
  name: String!

  """
  The parent team.
  """
  parentTeam: IdentifierInput

  """
  A description of what the team is responsible for.
  """
  responsibilities: String
}

"""
The return type of a `teamCreate` mutation.
"""
type TeamCreatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A team belongs to your organization. Teams can own multiple services.
  """
  team: Team
}

"""
Specifies the input fields used to delete a team.
"""
input TeamDeleteInput {
  """
  The alias of the team to be deleted.
  """
  alias: String

  """
  The id of the team to be deleted.
  """
  id: ID
}

"""
The return type of a `teamDelete` mutation.
"""
type TeamDeletePayload {
  """
  The deleted team's alias.
  """
  deletedTeamAlias: String

  """
  The deleted team's id.
  """
  deletedTeamId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
An edge in a connection.
"""
type TeamEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Team
}

type TeamMembership {
  """
  Role of the user on the Team.
  """
  role: String

  """
  Team for the membership.
  """
  team: Team!

  """
  User for the membership.
  """
  user: User!
}

"""
The connection type for TeamMembership.
"""
type TeamMembershipConnection {
  """
  A list of edges.
  """
  edges: [TeamMembershipEdge]

  """
  The number of team memberships that match the selection.
  """
  filteredCount: Int

  """
  A list of nodes.
  """
  nodes: [TeamMembership]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The total number of team memberships.
  """
  totalCount: Int!
}

"""
Input for adding members to a team
"""
input TeamMembershipCreateInput {
  """
  A set of emails that identify users in OpsLevel
  """
  members: [TeamMembershipUserInput!]!

  """
  The ID of the team to add members
  """
  teamId: ID!
}

"""
The response returned when creating memberships on teams
"""
type TeamMembershipCreatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A list of users that are a member of the team
  """
  members: [User!] @deprecated(reason: "Use `memberships` instead")

  """
  A list of memberships on the team
  """
  memberships: [TeamMembership!]
}

"""
Input for removing members from a team
"""
input TeamMembershipDeleteInput {
  """
  A set of emails that identify users in OpsLevel
  """
  members: [TeamMembershipUserInput!]!

  """
  The ID of the team to remove members from
  """
  teamId: ID!
}

"""
The response returned when removing memberships on teams
"""
type TeamMembershipDeletePayload {
  """
  A list of users that have been removed from the team
  """
  deletedMembers: [User!]

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
An edge in a connection.
"""
type TeamMembershipEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: TeamMembership
}

"""
Input for specifying members on a team
"""
input TeamMembershipUserInput {
  """
  The user's email.
  """
  email: String @deprecated(reason: "Use user input")

  """
  The type of relationship this membership implies.
  """
  role: String

  """
  The email address or ID of the user to add to a team.
  """
  user: UserIdentifierInput
}

"""
The definition of a property that applies to teams.
"""
type TeamPropertyDefinition {
  """
  The human-friendly, unique identifier of the property definition.
  """
  alias: String!

  """
  The description of the property definition.
  """
  description: String!

  """
  The secondary inferred type of the schema.
  """
  displaySubtype: PropertyDefinitionDisplayTypeEnum

  """
  The primary inferred type of the schema.
  """
  displayType: PropertyDefinitionDisplayTypeEnum!

  """
  The id of the property definition.
  """
  id: ID!

  """
  Restricts what sources are able to assign values to this property.
  """
  lockedStatus: PropertyLockedStatusEnum!

  """
  The name of the property definition.
  """
  name: String!

  """
  The UI display status of the custom property.
  """
  propertyDisplayStatus: PropertyDisplayStatusEnum!

  """
  The schema of the property definition.
  """
  schema: JSONSchema!
}

"""
The connection type for TeamPropertyDefinition.
"""
type TeamPropertyDefinitionConnection {
  """
  A list of edges.
  """
  edges: [TeamPropertyDefinitionEdge]

  """
  A list of nodes.
  """
  nodes: [TeamPropertyDefinition]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
An edge in a connection.
"""
type TeamPropertyDefinitionEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: TeamPropertyDefinition
}

"""
The input for defining a property.
"""
input TeamPropertyDefinitionInput {
  """
  The human-friendly, unique identifier for the resource.
  """
  alias: String!

  """
  The description of the property definition.
  """
  description: String!

  """
  Restricts what sources are able to assign values to this property.
  """
  lockedStatus: PropertyLockedStatusEnum

  """
  The name of the property definition.
  """
  name: String!

  """
  The UI display status of the custom property.
  """
  propertyDisplayStatus: PropertyDisplayStatusEnum

  """
  The schema of the property definition.
  """
  schema: JSONSchema!
}

"""
The return type for team property definition mutations.
"""
type TeamPropertyDefinitionPayload {
  """
  The team property that was defined.
  """
  definition: TeamPropertyDefinition

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
Specifies the input fields used to define properties that apply to teams.
"""
input TeamPropertyDefinitionsAssignInput {
  """
  A list of property definitions.
  """
  properties: [TeamPropertyDefinitionInput!]!
}

"""
Return type for the `teamPropertyDefinitionsAssign` mutation.
"""
type TeamPropertyDefinitionsAssignPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The list of properties that apply to teams.
  """
  properties(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TeamPropertyDefinitionConnection
}

"""
Specifies the input fields used to update a team.
"""
input TeamUpdateInput {
  """
  The alias of the team to be updated.
  """
  alias: String

  """
  The group this team belongs to.
  """
  group: IdentifierInput

  """
  The id of the team to be updated.
  """
  id: ID

  """
  The email of the user who manages the team.
  """
  managerEmail: String @deprecated(reason: "Use members with :manager role")

  """
  A set of emails that identify users in OpsLevel
  """
  members: [TeamMembershipUserInput!]

  """
  The team's display name.
  """
  name: String

  """
  The parent team.
  """
  parentTeam: IdentifierInput

  """
  A description of what the team is responsible for.
  """
  responsibilities: String
}

"""
The return type of a `teamUpdate` mutation.
"""
type TeamUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A team belongs to your organization. Teams can own multiple services.
  """
  team: Team
}

type TerraformIntegration implements Integration {
  """
  The path of the group.
  """
  accountName: String

  """
  The web url of the group.
  """
  accountUrl: String

  """
  Indicates whether or not the integration is currently active.
  """
  active: Boolean!

  """
  The external URL to where the integration can be configured.
  """
  configUrl: String

  """
  The time this integration was created.
  """
  createdAt: ISO8601DateTime!

  """
  The display name of the integration.
  """
  displayName: String

  """
  The relative url to where the integration can be accessed.
  """
  href: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the integration.
  """
  id: ID!

  """
  The time that this integration was successfully installed, if null, this
  indicates the integration was not completed installed.
  """
  installedAt: ISO8601DateTime

  """
  The time this integration was invalidated, either from OpsLevel or via the external API.
  """
  invalidatedAt: ISO8601DateTime

  """
  The reason that the integration was invalidated.
  """
  invalidatedReason: String

  """
  The time an event payload was provided for this integration.
  """
  lastEventReceived: ISO8601DateTime

  """
  The name of the integration.
  """
  name: String!

  """
  The type of the integration.
  """
  type: String!

  """
  Indicates if this integration is being uninstalled from OpsLevel.
  """
  uninstallInProgress: Boolean!

  """
  The endpoint to send events via webhook (if applicable).
  """
  webhookUrl: String
}

"""
A tier measures how critical or important a service is to your business.
"""
type Tier {
  """
  The human-friendly, unique identifier for the tier.
  """
  alias: String

  """
  A brief description of the tier.
  """
  description: String

  """
  The unique identifier for the tier.
  """
  id: ID!

  """
  The numerical representation of the tier.
  """
  index: Int

  """
  The display name of the tier.
  """
  name: String
}

"""
Input fields for updating an existing tier.
"""
input TierUpdateInput {
  """
  A brief description of the tier (optional).
  """
  description: String

  """
  The unique identifier of the tier to update (required).
  """
  id: ID!

  """
  The display name of the tier (optional).
  """
  name: String
}

"""
The response payload for updating a tier.
"""
type TierUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The updated tier configuration.
  """
  tier: Tier
}

"""
Relevant timestamps.
"""
type Timestamps {
  """
  The time at which the entity was created.
  """
  createdAt: ISO8601DateTime!

  """
  The time at which the entity was most recently updated.
  """
  updatedAt: ISO8601DateTime!
}

"""
A tool is used to support the operations of a service.
"""
type Tool {
  """
  The category that the tool belongs to.
  """
  category: ToolCategory

  """
  The human-friendly, unique identifier for the tool's category.
  """
  categoryAlias: String

  """
  The display name of the tool.
  """
  displayName: String

  """
  The environment that the tool belongs to.
  """
  environment: String

  """
  The unique identifier for the tool.
  """
  id: ID!

  """
  The service that is associated to the tool.
  """
  service: Service!

  """
  The URL of the tool.
  """
  url: String!
}

"""
The specific categories that a tool can belong to.
"""
enum ToolCategory {
  """
  Tools used for administrative purposes.
  """
  admin

  """
  Tools used as API documentation for this service.
  """
  api_documentation

  """
  Tools used for diagramming architecture.
  """
  architecture_diagram

  """
  Tools used for tracking issues.
  """
  backlog

  """
  Tools used for source code.
  """
  code

  """
  Tools used for building/unit testing a service.
  """
  continuous_integration

  """
  Tools used for deploying changes to a service.
  """
  deployment

  """
  Tools used for documenting design.
  """
  design_documentation

  """
  Tools used for tracking/reporting errors.
  """
  errors

  """
  Tools used for managing feature flags.
  """
  feature_flag

  """
  Tools used for tracking/reporting the health of a service.
  """
  health_checks

  """
  Tools used to surface incidents on a service.
  """
  incidents

  """
  Tools used for tracking issues.
  """
  issue_tracking

  """
  Tools used for displaying logs from services.
  """
  logs

  """
  Tools used for tracking/reporting service metrics.
  """
  metrics

  """
  Tools used for observability.
  """
  observability

  """
  Tools used for orchestrating a service.
  """
  orchestrator

  """
  Tools that do not fit into the available categories.
  """
  other

  """
  Tools used for testing the resiliency of a service.
  """
  resiliency

  """
  Tools used for managing runbooks for a service.
  """
  runbooks

  """
  Tools used for performing security scans.
  """
  security_scans

  """
  Tools used for reporting the status of a service.
  """
  status_page

  """
  Tools used as a wiki for this service.
  """
  wiki
}

"""
The connection type for Tool.
"""
type ToolConnection {
  """
  A list of edges.
  """
  edges: [ToolEdge]

  """
  A list of nodes.
  """
  nodes: [Tool]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The number of returned nodes.
  """
  totalCount: Int!
}

"""
Specifies the input fields used to create a tool.
"""
input ToolCreateInput {
  """
  The category that the tool belongs to.
  """
  category: ToolCategory!

  """
  The display name of the tool.
  """
  displayName: String!

  """
  The environment that the tool belongs to.
  """
  environment: String

  """
  The alias of the service the tool will be assigned to.
  """
  serviceAlias: String

  """
  The id of the service the tool will be assigned to.
  """
  serviceId: ID

  """
  The URL of the tool.
  """
  url: String!
}

"""
The return type of a `toolCreate` mutation.
"""
type ToolCreatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A tool is used to support the operations of a service.
  """
  tool: Tool
}

"""
Specifies the input fields used to delete a tool.
"""
input ToolDeleteInput {
  """
  The id of the tool to be deleted.
  """
  id: ID!
}

"""
The return type of a `toolDelete` mutation.
"""
type ToolDeletePayload {
  """
  The deleted tool's id.
  """
  deletedToolId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
An edge in a connection.
"""
type ToolEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Tool
}

"""
Specifies the input fields used to update a tool.
"""
input ToolUpdateInput {
  """
  The category that the tool belongs to.
  """
  category: ToolCategory

  """
  The display name of the tool.
  """
  displayName: String

  """
  The environment that the tool belongs to.
  """
  environment: String

  """
  The id of the tool to be updated.
  """
  id: ID!

  """
  The URL of the tool.
  """
  url: String
}

"""
The return type of a `toolUpdate` payload.
"""
type ToolUpdatePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A tool is used to support the operations of a service.
  """
  tool: Tool
}

type ToolUsageCheck implements Check {
  """
  The campaign the check belongs to.
  """
  campaign: Campaign

  """
  The category that the check belongs to.
  """
  category: Category

  """
  Description of the check type's purpose.
  """
  description: String!

  """
  The date when the check will be automatically enabled.
  """
  enableOn: ISO8601DateTime

  """
  If the check is enabled or not.
  """
  enabled: Boolean!

  """
  The condition that the environment should satisfy to be evaluated.
  """
  environmentPredicate: Predicate

  """
  The filter that the check belongs to.
  """
  filter: Filter

  """
  The id of the check.
  """
  id: ID!

  """
  The integration this check uses.
  """
  integration: Integration @deprecated(reason: "Integration is now deprecated. Please use `integration` under the `CustomEventCheck` fragment instead.")

  """
  The level that the check belongs to.
  """
  level: Level

  """
  The display name of the check.
  """
  name: String!

  """
  Additional information about the check.
  """
  notes: String

  """
  The owner of the check.
  """
  owner: CheckOwner

  """
  The raw unsanitized additional information about the check.
  """
  rawNotes: String

  """
  The category that the tool belongs to.
  """
  toolCategory: ToolCategory!

  """
  The condition that the tool name should satisfy to be evaluated.
  """
  toolNamePredicate: Predicate

  """
  The condition that the tool url should satisfy to be evaluated.
  """
  toolUrlPredicate: Predicate

  """
  The type of check.
  """
  type: CheckType!

  """
  The url to the check.
  """
  url: String!
}

"""
Operations that can be used on filters.
"""
enum TypeEnum {
  """
  Belongs to a group's hierarchy.
  """
  belongs_to

  """
  Contains a specific value.
  """
  contains

  """
  Does not contain a specific value.
  """
  does_not_contain

  """
  Does not equal a specific value.
  """
  does_not_equal

  """
  Specific attribute does not exist.
  """
  does_not_exist

  """
  A certain filter is not matched.
  """
  does_not_match

  """
  Does not match a value using a regular expression.
  """
  does_not_match_regex

  """
  Ends with a specific value.
  """
  ends_with

  """
  Equals a specific value.
  """
  equals

  """
  Specific attribute exists.
  """
  exists

  """
  Greater than or equal to a specific value (numeric only).
  """
  greater_than_or_equal_to

  """
  Less than or equal to a specific value (numeric only).
  """
  less_than_or_equal_to

  """
  A certain filter is matched.
  """
  matches

  """
  Matches a value using a regular expression.
  """
  matches_regex

  """
  Satisfies an expression defined in jq (property value only).
  """
  satisfies_jq_expression

  """
  Satisfies version constraint (tag value only).
  """
  satisfies_version_constraint

  """
  Starts with a specific value.
  """
  starts_with
}

"""
A user is someone who belongs to an organization.
"""
type User {
  """
  The contacts for the user
  """
  contacts: [Contact!]

  """
  The user's email.
  """
  email: String!

  """
  A link to the HTML page for the resource. Ex. https://app.opslevel.com/services/shopping_cart
  """
  htmlUrl: String!

  """
  The unique identifier for the user.
  """
  id: ID!

  """
  The user's full name.
  """
  name: String!

  """
  What provisioned this user.
  """
  provisionedBy: ProvisionedByEnum

  """
  The user's assigned role.
  """
  role: UserRole

  """
  A list of tags applied to this user.
  """
  tags(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TagConnection

  """
  The teams the user is a member of.
  """
  teams(
    """
    Limits the returned items to the elements in the list that come after the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items after the specified cursor.
    """
    after: String

    """
    Limits the returned items to the elements in the list that come before the
    specified cursor. If *first* and *last* are unspecified, returns the first
    100 items before the specified cursor.
    """
    before: String

    """
    Limits the number of returned items to the first *n* elements from the list. A maximum of 100 items can be returned.
    """
    first: Int

    """
    Limits the number of returned items to the last *n* elements from the list. A maximum of 100 items can be returned.
    """
    last: Int
  ): TeamConnection!
}

"""
The connection type for User.
"""
type UserConnection {
  """
  A list of edges.
  """
  edges: [UserEdge]

  """
  The number of users on the account that match the provided filters or search criteria.
  """
  filteredCount: Int

  """
  A list of nodes.
  """
  nodes: [User]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!

  """
  The total number of users on the account.
  """
  totalCount: Int!
}

"""
The return type of the user delete mutation.
"""
type UserDeletePayload {
  """
  The email address of the deleted user.
  """
  deletedEmail: String

  """
  The ID of the deleted user.
  """
  deletedId: ID

  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!
}

"""
An edge in a connection.
"""
type UserEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: User
}

"""
Specifies the input fields used to identify a user. Exactly one field should be provided.
"""
input UserIdentifierInput {
  """
  The email address of the user.
  """
  email: String

  """
  The ID of the user.
  """
  id: ID
}

"""
Specifies the input fields used to create and update a user.
"""
input UserInput {
  """
  The email address of the user.
  """
  email: String

  """
  The name of the user.
  """
  name: String

  """
  The access role (e.g. user vs admin) of the user.
  """
  role: UserRole

  """
  Don't send an email welcoming the user to OpsLevel.
  """
  skipWelcomeEmail: Boolean
}

"""
The return type of user management mutations.
"""
type UserPayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  A user is someone who belongs to an organization.
  """
  user: User
}

"""
A role that can be assigned to a user.
"""
enum UserRole {
  """
  An administrator on the account.
  """
  admin

  """
  Full write access to Standards resources, including rubric, campaigns, and
  checks. User-level access to all other entities.
  """
  standards_admin

  """
  Read access to all resources. Write access based on team membership.
  """
  team_member

  """
  A regular user on the account.
  """
  user
}

"""
Fields that can be used as part of filter for users.
"""
enum UsersFilterEnum {
  """
  Filter by the `deactivated_at` field
  """
  deactivated_at

  """
  Filter by `email` field.
  """
  email

  """
  Filter by the `last_sign_in_at` field
  """
  last_sign_in_at

  """
  Filter by `name` field.
  """
  name

  """
  Filter by `role` field. (user or admin)
  """
  role

  """
  Filter by `tags` belonging to user.
  """
  tag
}

"""
The input for filtering users.
"""
input UsersFilterInput {
  """
  Value to be filtered.
  """
  arg: String

  """
  Field to be filtered.
  """
  key: UsersFilterEnum!

  """
  The operation applied to value on the field.
  """
  type: BasicTypeEnum = equals
}

"""
Specifies the input fields used in the `usersInvite` mutation.
"""
input UsersInviteInput @oneOf {
  """
  A classification of users to invite.
  """
  scope: UsersInviteScopeEnum

  """
  A list of individual users to invite.
  """
  users: [UserIdentifierInput!]
}

"""
The return type of the users invite mutation.
"""
type UsersInvitePayload {
  """
  List of errors that occurred while executing the mutation.
  """
  errors: [Error!]!

  """
  The user identifiers which failed to successfully send an invite.
  """
  failed: [String!]

  """
  The users that were successfully invited.
  """
  users: [User!]
}

"""
A classification of users to invite
"""
enum UsersInviteScopeEnum {
  """
  All users who have yet to log in to OpsLevel for the first time.
  """
  pending
}

"""
Sort possibilities for secrets.
"""
enum VaultSecretsSortEnum {
  """
  Sort by slug ascending.
  """
  slug_ASC

  """
  Sort by slug descending.
  """
  slug_DESC

  """
  Sort by updated_at ascending.
  """
  updated_at_ASC

  """
  Sort by updated_at descending.
  """
  updated_at_DESC
}

"""
The warnings of the mutation.
"""
type Warning {
  """
  The warning message.
  """
  message: String!
}

"""
A scalar for stringified (aka string-serialized) YAML input/output values.
Conforms to the YAML 1.1 spec. Only JSON-compatible types are allowed. Aliases
are not allowed.
"""
scalar YAML
