type AcceptRevisionsActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  revisions: [Revision!]!
  subject: EventSubject!
  supersededRevisions: [Revision!]!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of AcceptRevisions
"""
input AcceptRevisionsInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Body of an optional comment to attach to the revision on acceptance.
  """
  comment: String

  """
  A list of IDs of the Revisions to accept.
  """
  ids: [Int!]

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int

  """
  The ID of a revision set.
  """
  revisionSetId: Int
}

"""
Autogenerated return type of AcceptRevisions.
"""
type AcceptRevisionsPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  A list of  newly accepted Revisions.
  """
  revisions: [Revision!]!

  """
  A list of any revisions that were superseded by the acceptance of this one.
  """
  supersededRevisions: [Revision!]!
}

type AcmgCode {
  code: String!
  description: String!
  id: Int!
  name: String!
  tooltip: String!
}

"""
An activity done by a curator or editor
"""
interface ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
The connection type for ActivityInterface.
"""
type ActivityInterfaceConnection {
  """
  List of activity types that have occurred on this entity.
  """
  activityTypes: [ActivityTypeInput!]!

  """
  A list of edges.
  """
  edges: [ActivityInterfaceEdge!]!

  """
  A list of nodes.
  """
  nodes: [ActivityInterface!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  List of all organizations who are involved in this activity stream.
  """
  participatingOrganizations: [Organization!]!
  subjectTypes: [ActivitySubjectInput!]!

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!

  """
  When filtered on a subject, user, or organization, the total number of events
  for that subject/user/organization, irregardless of other filters.
  """
  unfilteredCount: Int!

  """
  List of all users that have performed an activity on the subject entity.
  """
  uniqueParticipants: [User!]!
}

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

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

enum ActivitySubjectInput {
  ASSERTION
  COMMENT
  EVIDENCE_ITEM
  FEATURE
  FLAG
  MOLECULAR_PROFILE
  REVISION
  REVISION_SET
  SOURCE
  SOURCE_SUGGESTION
  VARIANT
  VARIANT_GROUP
}

enum ActivityTypeInput {
  ACCEPT_REVISIONS
  COMMENT
  CREATE_COMPLEX_MOLECULAR_PROFILE
  CREATE_FEATURE
  CREATE_VARIANT
  DELETE_COMMENT
  DEPRECATE_COMPLEX_MOLECULAR_PROFILE
  DEPRECATE_FEATURE
  DEPRECATE_VARIANT
  ENDORSE_ASSERTION
  FLAG_ENTITY
  MODERATE_ASSERTION
  MODERATE_EVIDENCE_ITEM
  REJECT_REVISIONS
  RESOLVE_FLAG
  REVOKE_ENDORSEMENT
  SUBMIT_ASSERTION
  SUBMIT_EVIDENCE_ITEM
  SUGGEST_REVISION
  SUGGEST_SOURCE
  UPDATE_SOURCE_SUGGESTION
}

"""
Autogenerated input type of AddComment
"""
input AddCommentInput {
  """
  Text of the comment.
  """
  body: String!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int

  """
  The commentable to attach the comment to. Specified by ID and Type.
  """
  subject: CommentableInput!

  """
  Optional title for the comment.
  """
  title: String
}

"""
Autogenerated return type of AddComment.
"""
type AddCommentPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The newly created comment.
  """
  comment: Comment
}

"""
Autogenerated input type of AddDisease
"""
input AddDiseaseInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The DOID of the disease, if the disease is present in the Disease Ontology.
  """
  doid: String

  """
  The name of the disease.
  """
  name: String!
}

"""
Autogenerated return type of AddDisease.
"""
type AddDiseasePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The newly created disease.
  """
  disease: Disease!

  """
  True if the disease was newly created. False if the returned disease was already in the database.
  """
  new: Boolean!
}

"""
Autogenerated input type of AddRemoteCitation
"""
input AddRemoteCitationInput {
  """
  The external id for the source to add.
  """
  citationId: String!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The origin of the external source.
  """
  sourceType: SourceSource!
}

"""
Autogenerated return type of AddRemoteCitation.
"""
type AddRemoteCitationPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The stubbed in record for the newly created source.
  """
  newSource: SourceStub!
}

"""
Autogenerated input type of AddTherapy
"""
input AddTherapyInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

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

  """
  The NCIt ID of the therapy, if the therapy is present in the NCIthesaurus.
  """
  ncitId: String
}

"""
Autogenerated return type of AddTherapy.
"""
type AddTherapyPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  True if the therapy was newly created. False if the returned therapy was already in the database.
  """
  new: Boolean!

  """
  The newly created therapy.
  """
  therapy: Therapy!
}

type AdvancedSearchResult {
  permalinkId: String
  resultIds: [Int!]!
  searchEndpoint: String!
}

enum AmpLevel {
  NA
  TIER_III
  TIER_II_LEVEL_C
  TIER_II_LEVEL_D
  TIER_IV
  TIER_I_LEVEL_A
  TIER_I_LEVEL_B
}

input AmpLevelTypeSearchInput {
  operator: EnumSearchOperator!
  value: AmpLevel!
}

type ApiKey {
  createdAt: ISO8601DateTime
  id: Int!
  reminder: String!
  token: String
}

enum AreaOfExpertise {
  CLINICAL_SCIENTIST
  PATIENT_ADVOCATE
  RESEARCH_SCIENTIST
}

type Assertion implements Commentable & EventOriginObject & EventSubject & Flaggable & WithRevisions {
  acceptanceEvent: Event
  acmgCodes: [AcmgCode!]!
  ampLevel: AmpLevel
  assertionDirection: AssertionDirection!
  assertionType: AssertionType!
  clingenCodes: [ClingenCode!]!

  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  description: String!
  disease: Disease

  """
  List and filter endorsements.
  """
  endorsements(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    CIViC Organization ID of the organization endorsing the assertion.
    """
    endorsingOrganizationId: Int

    """
    Limit to endorsements from a FDA-approved ClinGen SC-VCEPs.
    """
    endorsingOrganizationIsApprovedVcep: Boolean

    """
    CIViC User ID of the user endorsing the assertion.
    """
    endorsingUserId: Int

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Sort order for the endorsements. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to endorsements of a particular status
    """
    status: EndorsementStatus
  ): EndorsementConnection!

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  evidenceItems: [EvidenceItem!]!
  evidenceItemsCount: Int!
  fdaCompanionTest: Boolean
  fdaCompanionTestLastUpdated: ISO8601DateTime
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastCommentEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  molecularProfile: MolecularProfile!
  name: String!
  nccnGuideline: NccnGuideline
  nccnGuidelineVersion: String
  openRevisionCount: Int!
  phenotypes: [Phenotype!]!
  regulatoryApproval: Boolean
  regulatoryApprovalLastUpdated: ISO8601DateTime
  rejectionEvent: Event

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  significance: AssertionSignificance!
  status: EvidenceStatus!
  submissionActivity: SubmitAssertionActivity!
  submissionEvent: Event!
  summary: String!
  therapies: [Therapy!]!
  therapyInteractionType: TherapyInteraction
  variantOrigin: VariantOrigin!
}

"""
The connection type for Assertion.
"""
type AssertionConnection {
  """
  A list of edges.
  """
  edges: [AssertionEdge!]!

  """
  A list of nodes.
  """
  nodes: [Assertion!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

enum AssertionDirection {
  DOES_NOT_SUPPORT
  SUPPORTS
}

input AssertionDirectionTypeSearchInput {
  operator: EnumSearchOperator!
  value: AssertionDirection!
}

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

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

"""
Fields on an Assertion that curators may propose revisions to.
"""
input AssertionFields {
  """
  List of CIViC IDs for the ACMG/AMP codes associated with this Assertion
  """
  acmgCodeIds: [Int!]!

  """
  The AMP/ASCO/CAP Category for this assertion.
  """
  ampLevel: NullableAmpLevelTypeInput!

  """
  The evidence direction for this Assertion.
  """
  assertionDirection: AssertionDirection!

  """
  The Type of the Assertion
  """
  assertionType: AssertionType!

  """
  List of CIViC IDs for the ClinGen/CGC/VICC codes associated with this Assertion
  """
  clingenCodeIds: [Int!]!

  """
  A detailed description of the Assertion including practice guidelines and approved tests.
  """
  description: NullableStringInput!

  """
  The ID of the disease (if applicable) for this Assertion
  """
  diseaseId: NullableIntInput!

  """
  IDs of evidence items that are included in this Assertion.
  """
  evidenceItemIds: [Int!]!

  """
  Is an FDA companion test available that pertains to this Assertion.
  """
  fdaCompanionTest: NullableBooleanInput!

  """
  Does the Assertion have FDA regulatory approval.
  """
  fdaRegulatoryApproval: NullableBooleanInput!

  """
  The ID of the Molecular Profile to which this Assertion belongs
  """
  molecularProfileId: Int!

  """
  The internal CIViC ID of the NCCN guideline associated with this Assertion
  """
  nccnGuidelineId: NullableIntInput!

  """
  The version of the NCCN Guideline specified
  """
  nccnGuidelineVersion: NullableStringInput!

  """
  List of IDs of CIViC Phenotype entries for this Assertion. An empty list indicates none.
  """
  phenotypeIds: [Int!]!

  """
  The Clinical Significance of the Assertion
  """
  significance: AssertionSignificance!

  """
  A brief single sentence statement summarizing the clinical significance of this Assertion.
  """
  summary: NullableStringInput!

  """
  List of IDs of CIViC Therapy entries for this Assertion. An empty list indicates none.
  """
  therapyIds: [Int!]!

  """
  Therapy interaction type for cases where more than one therapy ID is provided.
  """
  therapyInteractionType: NullableTherapyInteractionTypeInput!

  """
  The Variant Origin for this Assertion.
  """
  variantOrigin: VariantOrigin!
}

input AssertionSearchFilter {
  ampLevel: AmpLevelTypeSearchInput
  assertionDirection: AssertionDirectionTypeSearchInput
  assertionType: AssertionTypeTypeSearchInput
  booleanOperator: BooleanOperator
  creatingUser: UserSearchFilter
  description: StringSearchInput
  disease: DiseaseSearchFilter
  evidenceItemCount: IntSearchInput
  evidenceItems: EvidenceItemSearchFilter
  fdaCompanionTest: BooleanSearchInput
  id: IntSearchInput
  isFlagged: BooleanSearchInput
  moderatingUser: UserSearchFilter
  molecularProfile: MolecularProfileSearchFilter
  name: StringSearchInput
  phenotypes: PhenotypeSearchFilter
  regulatoryApproval: BooleanSearchInput
  revisions: RevisionSearchFilter
  significance: AssertionSignificanceTypeSearchInput
  status: EvidenceStatusTypeSearchInput
  subFilters: [AssertionSearchFilter!]
  therapies: TherapySearchFilter
  variantOrigin: VariantOriginTypeSearchInput
}

enum AssertionSignificance {
  ADVERSE_RESPONSE
  BENIGN
  BETTER_OUTCOME
  LIKELY_BENIGN
  LIKELY_ONCOGENIC
  LIKELY_PATHOGENIC
  NA
  NEGATIVE
  ONCOGENIC
  PATHOGENIC
  POOR_OUTCOME
  POSITIVE
  REDUCED_SENSITIVITY
  RESISTANCE
  SENSITIVITYRESPONSE
  UNCERTAIN_SIGNIFICANCE
}

input AssertionSignificanceTypeSearchInput {
  operator: EnumSearchOperator!
  value: AssertionSignificance!
}

input AssertionSort {
  """
  Available columns for sorting
  """
  column: AssertionSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum AssertionSortColumns {
  AMP_LEVEL
  ASSERTION_DIRECTION
  ASSERTION_TYPE
  DISEASE_NAME
  EVIDENCE_ITEMS_COUNT
  ID
  SIGNIFICANCE
  STATUS
  SUMMARY
}

enum AssertionType {
  DIAGNOSTIC
  ONCOGENIC
  PREDICTIVE
  PREDISPOSING
  PROGNOSTIC
}

input AssertionTypeTypeSearchInput {
  operator: EnumSearchOperator!
  value: AssertionType!
}

enum AssociatedEvidenceStatusFilter {
  """
  Apply no status filter to an entity in order to display all entities regardless of attached evidence status.
  """
  ALL

  """
  Apply filter to an entity to display only those which have at least one accepted associated evidence item.
  """
  WITH_ACCEPTED

  """
  Apply filter to an entity to display only those which have at least one accepted or submitted associated evidence item.
  """
  WITH_ACCEPTED_OR_SUBMITTED

  """
  Apply filter to an entity to display only those which have at least one submitted associated evidence item.
  """
  WITH_SUBMITTED
}

enum BooleanOperator {
  AND
  OR
}

input BooleanSearchInput {
  value: Boolean!
}

type BrowseClinicalTrial {
  evidenceCount: Int!
  id: Int!
  link: String!
  name: String!
  nctId: String
  sourceCount: Int!
  url: String
}

"""
The connection type for BrowseClinicalTrial.
"""
type BrowseClinicalTrialConnection {
  """
  A list of edges.
  """
  edges: [BrowseClinicalTrialEdge!]!

  """
  The total number of records in this set.
  """
  filteredCount: Int!

  """
  The last time the data in this browse table was refreshed
  """
  lastUpdated: ISO8601DateTime!

  """
  A list of nodes.
  """
  nodes: [BrowseClinicalTrial!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records of this type, regardless of any filtering.
  """
  totalCount: Int!
}

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

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

type BrowseDisease {
  assertionCount: Int!
  deprecated: Boolean!
  diseaseAliases: [String!]
  diseaseUrl: String
  displayName: String!
  doid: String
  evidenceItemCount: Int!
  featureCount: Int!
  features: [LinkableFeature!]!
  id: Int!
  link: String!
  name: String!
  variantCount: Int!
}

"""
The connection type for BrowseDisease.
"""
type BrowseDiseaseConnection {
  """
  A list of edges.
  """
  edges: [BrowseDiseaseEdge!]!

  """
  The total number of records in this set.
  """
  filteredCount: Int!

  """
  The last time the data in this browse table was refreshed
  """
  lastUpdated: ISO8601DateTime!

  """
  A list of nodes.
  """
  nodes: [BrowseDisease!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records of this type, regardless of any filtering.
  """
  totalCount: Int!
}

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

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

type BrowseFeature implements Flaggable {
  assertionCount: Int!
  deprecated: Boolean!
  description: String!
  diseases: [Disease!]
  evidenceItemCount: Int!
  featureAliases: [String!]
  featureInstanceId: Int!
  featureInstanceType: FeatureInstanceTypes!
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  fullName: String
  id: Int!
  link: String!
  molecularProfileCount: Int!
  name: String!
  therapies: [Therapy!]
  variantCount: Int!
}

"""
The connection type for BrowseFeature.
"""
type BrowseFeatureConnection {
  """
  A list of edges.
  """
  edges: [BrowseFeatureEdge!]!

  """
  The total number of records in this set.
  """
  filteredCount: Int!

  """
  The last time the data in this browse table was refreshed
  """
  lastUpdated: ISO8601DateTime!

  """
  A list of nodes.
  """
  nodes: [BrowseFeature!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records of this type, regardless of any filtering.
  """
  totalCount: Int!
}

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

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

type BrowseMolecularProfile {
  aliases: [MolecularProfileAlias!]!
  assertionCount: Int!
  deprecated: Boolean!
  diseases: [LinkableDisease!]!
  evidenceItemCount: Int!
  id: Int!
  link: String!
  molecularProfileScore: Float!
  name: String!
  therapies: [LinkableTherapy!]!
  variantCount: Int!
  variants: [LinkableVariant!]!
}

"""
The connection type for BrowseMolecularProfile.
"""
type BrowseMolecularProfileConnection {
  """
  A list of edges.
  """
  edges: [BrowseMolecularProfileEdge!]!

  """
  The total number of records in this set.
  """
  filteredCount: Int!

  """
  The last time the data in this browse table was refreshed
  """
  lastUpdated: ISO8601DateTime!

  """
  A list of nodes.
  """
  nodes: [BrowseMolecularProfile!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records of this type, regardless of any filtering.
  """
  totalCount: Int!
}

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

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

type BrowseOrganization {
  activityCount: Int!
  childOrganizations: [Organization!]!
  createdAt: ISO8601DateTime
  description: String!
  id: Int!
  memberCount: Int!
  mostRecentActivityTimestamp: ISO8601DateTime
  name: String!
  parentId: Int
  updatedAt: ISO8601DateTime
  url: String!
}

"""
The connection type for BrowseOrganization.
"""
type BrowseOrganizationConnection {
  """
  A list of edges.
  """
  edges: [BrowseOrganizationEdge!]!

  """
  The total number of records in this set.
  """
  filteredCount: Int!

  """
  The last time the data in this browse table was refreshed
  """
  lastUpdated: ISO8601DateTime!

  """
  A list of nodes.
  """
  nodes: [BrowseOrganization!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records of this type, regardless of any filtering.
  """
  totalCount: Int!
}

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

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

type BrowsePhenotype {
  assertionCount: Int!
  evidenceCount: Int!
  hpoId: String!
  id: Int!
  link: String!
  name: String!
  url: String!
}

"""
The connection type for BrowsePhenotype.
"""
type BrowsePhenotypeConnection {
  """
  A list of edges.
  """
  edges: [BrowsePhenotypeEdge!]!

  """
  The total number of records in this set.
  """
  filteredCount: Int!

  """
  The last time the data in this browse table was refreshed
  """
  lastUpdated: ISO8601DateTime!

  """
  A list of nodes.
  """
  nodes: [BrowsePhenotype!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records of this type, regardless of any filtering.
  """
  totalCount: Int!
}

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

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

type BrowseSource {
  authors: [String!]!
  citation: String!
  citationId: Int!
  clinicalTrials: [ClinicalTrial!]!
  deprecated: Boolean!
  displayType: String!
  evidenceItemCount: Int!
  id: Int!
  journal: String
  link: String!
  name: String
  openAccess: Boolean!
  publicationYear: Int
  retractionNature: String
  sourceSuggestionCount: Int!
  sourceType: SourceSource!
  sourceUrl: String!
}

"""
The connection type for BrowseSource.
"""
type BrowseSourceConnection {
  """
  A list of edges.
  """
  edges: [BrowseSourceEdge!]!

  """
  The total number of records in this set.
  """
  filteredCount: Int!

  """
  The last time the data in this browse table was refreshed
  """
  lastUpdated: ISO8601DateTime!

  """
  A list of nodes.
  """
  nodes: [BrowseSource!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records of this type, regardless of any filtering.
  """
  totalCount: Int!
}

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

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

type BrowseTherapy {
  assertionCount: Int!
  deprecated: Boolean!
  evidenceCount: Int!
  id: Int!
  link: String!
  name: String!
  ncitId: String
  therapyAliases: [String!]
  therapyUrl: String
}

"""
The connection type for BrowseTherapy.
"""
type BrowseTherapyConnection {
  """
  A list of edges.
  """
  edges: [BrowseTherapyEdge!]!

  """
  The total number of records in this set.
  """
  filteredCount: Int!

  """
  The last time the data in this browse table was refreshed
  """
  lastUpdated: ISO8601DateTime!

  """
  A list of nodes.
  """
  nodes: [BrowseTherapy!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records of this type, regardless of any filtering.
  """
  totalCount: Int!
}

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

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

type BrowseUser {
  apiKeys: [ApiKey!]!
  areaOfExpertise: AreaOfExpertise
  bio: String
  country: Country
  displayName: String!
  email: String
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): EventConnection!
  evidenceCount: Int!
  facebookProfile: String
  id: Int!
  joinDate: ISO8601DateTime
  linkedinProfile: String
  mostRecentActivityTimestamp: ISO8601DateTime
  mostRecentConflictOfInterestStatement: Coi
  mostRecentEvent: Event
  mostRecentOrganizationId: Int
  name: String

  """
  Filterable list of notifications for the logged in user.
  """
  notifications(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Filter the response to include only notifications generated by certain actions (ex: commenting).
    """
    eventType: EventAction

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

    """
    Filter the response to include only notifications generated by a particular subscription.
    """
    includeSeen: Boolean = false

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Filter the response to include only notifications of a certain type (ex: mentions).
    """
    notificationType: NotificationReason

    """
    Filter the response to include only notifications generated by a particular subscription.
    """
    subscriptionId: Int
  ): NotificationConnection
  orcid: String
  organizations: [Organization!]!
  organizationsWithEndorsementPrivileges: [Organization!]!
  profileImagePath(size: Int = 56): String
  ranks: Ranks!
  revisionCount: Int!
  role: UserRole!
  statsHash: Stats!
  twitterHandle: String
  url: String
  username: String!
}

"""
The connection type for BrowseUser.
"""
type BrowseUserConnection {
  """
  A list of edges.
  """
  edges: [BrowseUserEdge!]!

  """
  The total number of records in this set.
  """
  filteredCount: Int!

  """
  The last time the data in this browse table was refreshed
  """
  lastUpdated: ISO8601DateTime!

  """
  A list of nodes.
  """
  nodes: [BrowseUser!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records of this type, regardless of any filtering.
  """
  totalCount: Int!
}

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

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

type BrowseVariant {
  aliases: [VariantAlias!]!
  category: VariantCategories!
  deprecated: Boolean!
  diseases: [Disease!]!
  evidenceItemCount: Int!
  featureDeprecated: Boolean!
  featureFlagged: Boolean!
  featureId: Int!
  featureLink: String!
  featureName: String!
  flagged: Boolean!
  id: Int!
  link: String!
  name: String!
  therapies: [Therapy!]!
  variantTypes: [LinkableVariantType!]!
}

"""
The connection type for BrowseVariant.
"""
type BrowseVariantConnection {
  """
  A list of edges.
  """
  edges: [BrowseVariantEdge!]!

  """
  The total number of records in this set.
  """
  filteredCount: Int!

  """
  The last time the data in this browse table was refreshed
  """
  lastUpdated: ISO8601DateTime!

  """
  A list of nodes.
  """
  nodes: [BrowseVariant!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records of this type, regardless of any filtering.
  """
  totalCount: Int!
}

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

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

type BrowseVariantGroup {
  evidenceItemCount: Int!
  featureNames: [String!]!
  id: Int!
  link: String!
  name: String!
  variantCount: Int!
  variantNames: [String!]!
}

"""
The connection type for BrowseVariantGroup.
"""
type BrowseVariantGroupConnection {
  """
  A list of edges.
  """
  edges: [BrowseVariantGroupEdge!]!

  """
  The total number of records in this set.
  """
  filteredCount: Int!

  """
  The last time the data in this browse table was refreshed
  """
  lastUpdated: ISO8601DateTime!

  """
  A list of nodes.
  """
  nodes: [BrowseVariantGroup!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records of this type, regardless of any filtering.
  """
  totalCount: Int!
}

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

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

type BrowseVariantType {
  id: Int!
  link: String!
  name: String!
  soid: String!
  url: String
  variantCount: Int!
}

"""
The connection type for BrowseVariantType.
"""
type BrowseVariantTypeConnection {
  """
  A list of edges.
  """
  edges: [BrowseVariantTypeEdge!]!

  """
  The total number of records in this set.
  """
  filteredCount: Int!

  """
  The last time the data in this browse table was refreshed
  """
  lastUpdated: ISO8601DateTime!

  """
  A list of nodes.
  """
  nodes: [BrowseVariantType!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records of this type, regardless of any filtering.
  """
  totalCount: Int!
}

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

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

enum Chromosome {
  CHR_1
  CHR_10
  CHR_11
  CHR_12
  CHR_13
  CHR_14
  CHR_15
  CHR_16
  CHR_17
  CHR_18
  CHR_19
  CHR_2
  CHR_20
  CHR_21
  CHR_22
  CHR_3
  CHR_4
  CHR_5
  CHR_6
  CHR_7
  CHR_8
  CHR_9
  CHR_X
  CHR_Y
}

input ChromosomeTypeSearchInput {
  operator: EnumSearchOperator!
  value: Chromosome!
}

"""
Counts of CIViC activity over time, used for the homepage
"""
type CivicTimepointStats {
  assertions: TimePointCounts!
  comments: TimePointCounts!
  diseases: TimePointCounts!
  evidenceItems: TimePointCounts!
  features: TimePointCounts!
  molecularProfiles: TimePointCounts!
  revisions: TimePointCounts!
  sources: TimePointCounts!
  therapies: TimePointCounts!
  users: TimePointCounts!
  variants: TimePointCounts!
}

type ClingenCode {
  code: String!
  description: String!
  exclusive: Boolean!
  id: Int!
  name: String!
  tooltip: String!
}

type ClinicalTrial {
  description: String!
  id: Int!
  link: String!
  name: String!
  nctId: String!
  url: String
}

input ClinicalTrialSort {
  """
  Available columns for sorting
  """
  column: ClinicalTrialSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum ClinicalTrialSortColumns {
  EVIDENCE_ITEM_COUNT
  NAME
  NCT_ID
  SOURCE_COUNT
}

"""
An input object representing possible ClinVar ID states.
You may specify either one or more Integer IDs OR either none found or not applicable.
"""
input ClinvarInput {
  """
  The ClinVar ID(s)
  """
  ids: [Int!]
  noneFound: Boolean
  notApplicable: Boolean
}

type Coi {
  coiPresent: Boolean!
  coiStatement: String
  coiStatus: CoiStatus!
  createdAt: ISO8601DateTime
  expiresAt: ISO8601DateTime!
  id: Int!
}

enum CoiStatus {
  CONFLICT
  EXPIRED
  MISSING
  VALID
}

type Comment implements EventOriginObject & EventSubject {
  comment: String!
  commentable: Commentable!
  commenter: User!
  createdAt: ISO8601DateTime!
  creationEvent: Event
  deleted: Boolean!
  deletedAt: ISO8601DateTime

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  id: Int!
  link: String!
  name: String!
  parsedComment: [CommentBodySegment!]!
  title: String
}

type CommentActivity implements ActivityInterface {
  comment: Comment!
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Segment of a comment that can either be text or an object to be rendered as a tag
"""
union CommentBodySegment = CommentTagSegment | CommentTagSegmentFlagged | CommentTagSegmentFlaggedAndDeprecated | CommentTagSegmentFlaggedAndWithStatus | CommentTextSegment | User

"""
The connection type for Comment.
"""
type CommentConnection {
  """
  A list of edges.
  """
  edges: [CommentEdge!]!

  """
  List of entities mentioned in this comment thread.
  """
  mentionedEntities: [CommentTagSegment!]!

  """
  List of roles mentioned in this comment thread
  """
  mentionedRoles: [CommentTagSegment!]!

  """
  List of users mentioned in this comment thread.
  """
  mentionedUsers: [User!]!

  """
  A list of nodes.
  """
  nodes: [Comment!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!

  """
  When filtered on a subject, the total number of comments for that subject,
  irregardless of other filters. Returns null when there is no subject.
  """
  unfilteredCountForSubject: Int

  """
  List of all users that have commented on this entity.
  """
  uniqueCommenters: [User!]!
}

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

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

input CommentSearchFilter {
  booleanOperator: BooleanOperator
  comment: StringSearchInput
  createdAt: DateSearchInput
  id: IntSearchInput
  subFilters: [CommentSearchFilter!]
}

type CommentTagSegment {
  displayName: String!
  entityId: Int!
  feature: LinkableFeature
  link: String!
  revisionSetId: Int
  tagType: TaggableEntity!
}

type CommentTagSegmentFlagged {
  displayName: String!
  entityId: Int!
  feature: LinkableFeature
  flagged: Boolean!
  link: String!
  revisionSetId: Int
  tagType: TaggableEntity!
}

type CommentTagSegmentFlaggedAndDeprecated {
  deprecated: Boolean!
  displayName: String!
  entityId: Int!
  feature: LinkableFeature
  flagged: Boolean!
  link: String!
  revisionSetId: Int
  tagType: TaggableEntity!
}

type CommentTagSegmentFlaggedAndWithStatus {
  displayName: String!
  entityId: Int!
  feature: LinkableFeature
  flagged: Boolean!
  link: String!
  revisionSetId: Int
  status: EvidenceStatus!
  tagType: TaggableEntity!
}

type CommentTextSegment {
  text: String!
}

"""
A CIViC entity that can have comments on it.
"""
interface Commentable {
  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  id: Int!
  lastCommentEvent: Event
  link: String!
  name: String!
}

enum CommentableEntities {
  ASSERTION
  EVIDENCE_ITEM
  FEATURE
  MOLECULAR_PROFILE
  SOURCE
  VARIANT
  VARIANT_GROUP
}

"""
Entity to comment on
"""
input CommentableInput {
  """
  The type of the entity to comment on.
  """
  entityType: CommentableEntities!

  """
  ID of the entity to comment on.
  """
  id: Int!
}

"""
A user with all the unique kinds of actions they've performed on a given entity
"""
type ContributingUser {
  lastActionDate: ISO8601DateTime!
  totalActionCount: Int!
  uniqueActions: [Contribution!]!
  user: User!
}

type ContributingUsersSummary {
  curators: [ContributingUser!]!
  editors: [ContributingUser!]!
}

type Contribution {
  action: EventAction!
  count: Int!
}

input CoordinateSearchInput {
  chromosome: ChromosomeTypeSearchInput
  referenceBases: DnaBaseStringInput
  start: IntSearchInput
  stop: IntSearchInput
  variantBases: DnaBaseStringInput
}

type Country {
  id: Int!
  iso: String!
  name: String!
}

type CreateComplexMolecularProfileActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

type CreateFeatureActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of CreateFeature
"""
input CreateFeatureInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The Type of Feature you are creating
  """
  featureType: CreateableFeatureTypes!

  """
  The name of the feature to create.
  """
  name: String!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of CreateFeature.
"""
type CreateFeaturePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The newly created Feature.
  """
  feature: Feature!

  """
  True if the feature was newly created. False if the returned feature was already in the database.
  """
  new: Boolean!
}

"""
Autogenerated input type of CreateFusionFeature
"""
input CreateFusionFeatureInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The 5" fusion partner
  """
  fivePrimeGene: FusionPartnerInput!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int

  """
  The 3" fusion partner
  """
  threePrimeGene: FusionPartnerInput!
}

"""
Autogenerated return type of CreateFusionFeature.
"""
type CreateFusionFeaturePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The newly created Feature.
  """
  feature: Feature!

  """
  True if the feature was newly created. False if the returned feature was already in the database.
  """
  new: Boolean!
}

"""
Autogenerated input type of CreateFusionVariant
"""
input CreateFusionVariantInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String
  coordinates: FusionVariantInput!

  """
  The CIViC ID of the Feature to which the new variant belongs.
  """
  featureId: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of CreateFusionVariant.
"""
type CreateFusionVariantPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The newly created molecular profile for the new variant.
  """
  molecularProfile: MolecularProfile!

  """
  True if the variant was newly created. False if the returned variant was already in the database.
  """
  new: Boolean!

  """
  The newly created Variant.
  """
  variant: VariantInterface!
}

"""
Autogenerated input type of CreateMolecularProfile
"""
input CreateMolecularProfileInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int

  """
  Representation of the constituent parts of the Molecular Profile along with the logic used to combine them.
  """
  structure: MolecularProfileComponentInput!
}

"""
Autogenerated return type of CreateMolecularProfile.
"""
type CreateMolecularProfilePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The newly created (or already existing) Molecular Profile.
  """
  molecularProfile: MolecularProfile!
}

type CreateVariantActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  molecularProfile: MolecularProfile!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of CreateVariant
"""
input CreateVariantInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The CIViC ID of the Feature to which the new variant belongs.
  """
  featureId: Int!

  """
  The name of the variant to create.
  """
  name: String!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of CreateVariant.
"""
type CreateVariantPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The newly created molecular profile for the new variant.
  """
  molecularProfile: MolecularProfile!

  """
  True if the variant was newly created. False if the returned variant was already in the database.
  """
  new: Boolean!

  """
  The newly created Variant.
  """
  variant: Variant!
}

"""
Enum representing Feature types that can be user-created
"""
enum CreateableFeatureTypes {
  FACTOR
}

type DataRelease {
  acceptedAndSubmittedVariantsVcf: DownloadableFile
  acceptedVariantsVcf: DownloadableFile
  assertionTsv: DownloadableFile
  evidenceTsv: DownloadableFile
  featureTsv: DownloadableFile
  molecularProfileTsv: DownloadableFile
  name: String!
  variantGroupTsv: DownloadableFile
  variantTsv: DownloadableFile
}

input DateSearchInput {
  date: ISO8601DateTime!
  operator: DateSearchOperator!
}

enum DateSearchOperator {
  AFTER
  BEFORE
  ON_OR_AFTER
  ON_OR_BEFORE
}

input DateSort {
  """
  Value to sort by.
  """
  column: DateSortColumns!

  """
  Sort direction.
  """
  direction: SortDirection!
}

enum DateSortColumns {
  CREATED
  LAST_MODIFIED
}

type DeleteCommentActivity implements ActivityInterface {
  comment: Comment!
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of DeleteComment
"""
input DeleteCommentInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The ID of the comment to delete.
  """
  commentId: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of DeleteComment.
"""
type DeleteCommentPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The deleted comment.
  """
  comment: Comment
}

type DeprecateComplexMolecularProfileActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of DeprecateComplexMolecularProfile
"""
input DeprecateComplexMolecularProfileInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text giving more context for deprecating this complex molecular profile.
  """
  comment: String!

  """
  The reason for deprecating this molecular profile.
  """
  deprecationReason: MolecularProfileDeprecationReasonMutationInput!

  """
  The CIViC ID of the complex molecular profile to deprecate.
  """
  molecularProfileId: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of DeprecateComplexMolecularProfile.
"""
type DeprecateComplexMolecularProfilePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The deprecated complex Molecular Profile.
  """
  molecularProfile: MolecularProfile
}

type DeprecateFeatureActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  molecularProfiles: [MolecularProfile!]!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  variants: [VariantInterface!]!
  verbiage: String!
}

"""
Autogenerated input type of DeprecateFeature
"""
input DeprecateFeatureInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text giving more context for deprecation this feature.
  """
  comment: String!

  """
  The reason for deprecation this feature.
  """
  deprecationReason: FeatureDeprecationReason!

  """
  The CIViC ID of the feature to deprecate.
  """
  featureId: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of DeprecateFeature.
"""
type DeprecateFeaturePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The deprecated Feature.
  """
  feature: Feature

  """
  The molecular profiles linked to this feature's variants that weren't already
  deprecated and have been newly deprecated by running this mutation.
  """
  newlyDeprecatedMolecularProfiles: [MolecularProfile!]

  """
  The variants linked to this feature that are newly deprecated.
  """
  newlyDeprecatedVariants: [VariantInterface!]
}

type DeprecateVariantActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  molecularProfiles: [MolecularProfile!]!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of DeprecateVariant
"""
input DeprecateVariantInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text giving more context for deprecation this variant.
  """
  comment: String!

  """
  The reason for deprecation this variant.
  """
  deprecationReason: VariantDeprecationReason!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int

  """
  The CIViC ID of the variant to deprecate.
  """
  variantId: Int!
}

"""
Autogenerated return type of DeprecateVariant.
"""
type DeprecateVariantPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The molecular profiles linked to this variant that weren't already deprecated
  and have been newly deprecated by running this mutation.
  """
  newlyDeprecatedMolecularProfiles: [MolecularProfile!]

  """
  The deprecated Variant.
  """
  variant: VariantInterface
}

enum Direction {
  NEGATIVE
  POSITIVE
}

type Disease {
  deprecated: Boolean!
  diseaseAliases: [String!]!
  diseaseUrl: String
  displayName: String!
  doid: String
  id: Int!
  link: String!
  myDiseaseInfo: MyDiseaseInfo
  name: String!
}

"""
The connection type for Disease.
"""
type DiseaseConnection {
  """
  A list of edges.
  """
  edges: [DiseaseEdge!]!

  """
  A list of nodes.
  """
  nodes: [Disease!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

type DiseasePopover {
  assertionCount: Int!
  deprecated: Boolean!
  diseaseAliases: [String!]!
  diseaseUrl: String
  displayName: String!
  doid: String
  evidenceItemCount: Int!
  id: Int!
  link: String!
  molecularProfileCount: Int!
  myDiseaseInfo: MyDiseaseInfo
  name: String!
}

input DiseaseSearchFilter {
  booleanOperator: BooleanOperator
  deprecated: BooleanSearchInput
  diseaseAliases: StringSearchInput
  doid: OntologyTermSearchInput
  id: IntSearchInput
  name: StringSearchInput
  subFilters: [DiseaseSearchFilter!]
}

input DiseasesSort {
  """
  Available columns for sorting
  """
  column: DiseasesSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum DiseasesSortColumns {
  ASSERTION_COUNT
  DOID
  EVIDENCE_ITEM_COUNT
  FEATURE_COUNT
  NAME
  VARIANT_COUNT
}

"""
String search input that only accepts DNA bases (A, C, T, G, /)
"""
input DnaBaseStringInput {
  operator: StringSearchOperator!
  value: String!
}

type DownloadableFile {
  filename: String!
  path: String!
}

"""
Autogenerated input type of EditUser
"""
input EditUserInput {
  """
  The user's area of expertise
  """
  areaOfExpertise: NullableAreaOfExpertiseTypeInput!

  """
  A short biography describing the user's interests, accomplishments,
  associations, and/or anything else about they would like to share with the
  CIViC community.
  """
  bio: NullableStringInput!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The internal CIViC ID of the country the user resides or studies in.
  """
  countryId: NullableIntInput!

  """
  The user's email address
  """
  email: String!

  """
  The user's Facebook profile handle
  """
  facebookProfile: NullableStringInput!

  """
  The user's LinkedIn username
  """
  linkedinProfile: NullableStringInput!

  """
  The user's full name
  """
  name: NullableStringInput!

  """
  The the user's ORCID (Open Research and Contributor ID) identifier
  """
  orcid: NullableIDInput!

  """
  The user's twitter handle
  """
  twitterHandle: NullableStringInput!

  """
  The user's personal website URL, omitting the https:// protocol part
  """
  url: NullableStringInput!

  """
  The user's desired username
  """
  username: String!
}

"""
Autogenerated return type of EditUser.
"""
type EditUserPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String
  user: User!
}

type EndorseAssertionActivity implements ActivityInterface {
  assertion: Assertion!
  createdAt: ISO8601DateTime!
  endorsement: Endorsement!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of EndorseAssertion
"""
input EndorseAssertionInput {
  """
  ID of the Assertion to moderate
  """
  assertionId: Int!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of EndorseAssertion.
"""
type EndorseAssertionPayload {
  """
  The endorsed Assertion
  """
  assertion: Assertion!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String
}

type Endorsement {
  assertion: Assertion!
  createdAt: ISO8601DateTime!
  endorsementActivity: EndorseAssertionActivity!
  id: Int!
  lastReviewed: ISO8601DateTime!
  organization: Organization!
  readyForClinvarSubmission: Boolean!
  revocationActivity: RevokeEndorsementActivity
  status: EndorsementStatus!
  updatedAt: ISO8601DateTime!
  user: User!
}

"""
The connection type for Endorsement.
"""
type EndorsementConnection {
  """
  A list of edges.
  """
  edges: [EndorsementEdge!]!

  """
  A list of nodes.
  """
  nodes: [Endorsement!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

enum EndorsementStatus {
  ACTIVE
  REQUIRES_REVIEW
  REVOKED
}

enum EnumSearchOperator {
  EQ
  NE
}

type Event {
  action: EventAction!
  createdAt: ISO8601DateTime!
  id: Int!
  organization: Organization
  originatingObject: EventOriginObject
  originatingUser: User!
  subject: EventSubject
}

enum EventAction {
  ACCEPTED
  ASSERTION_ACCEPTED
  ASSERTION_ENDORSED
  ASSERTION_ENDORSMENT_REVOKED
  ASSERTION_REJECTED
  ASSERTION_REVERTED
  ASSERTION_SUBMITTED
  COMMENTED
  COMMENT_DELETED
  COMPLEX_MOLECULAR_PROFILE_CREATED
  CURATED_SOURCE_SUGGESTION
  DEPRECATED_FEATURE
  DEPRECATED_MOLECULAR_PROFILE
  DEPRECATED_VARIANT
  FEATURE_CREATED
  FLAGGED
  FLAG_RESOLVED
  PUBLICATION_SUGGESTED
  REJECTED
  REJECTED_SOURCE_SUGGESTION
  REQUEUED_SOURCE_SUGGESTION
  REVERTED
  REVISION_ACCEPTED
  REVISION_REJECTED
  REVISION_SUGGESTED
  REVISION_SUPERSEDED
  SUBMITTED
  VARIANT_CREATED
}

"""
The connection type for Event.
"""
type EventConnection {
  """
  A list of edges.
  """
  edges: [EventEdge!]!

  """
  List of event types that have occurred on this entity.
  """
  eventTypes: [EventAction!]!

  """
  A list of nodes.
  """
  nodes: [Event!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  List of all organizations who are involved in this event stream.
  """
  participatingOrganizations: [Organization!]!

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!

  """
  When filtered on a subject, user, or organization, the total number of events
  for that subject/user/organization, irregardless of other filters. Returns
  null when there is no subject, user, or organization.
  """
  unfilteredCount: Int!

  """
  List of all users that have generated an event on the subject entity.
  """
  uniqueParticipants: [User!]!
}

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

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

"""
The context of an event feed, i.e. what is the root subject of the feed. This
option is a no-op when accessing events via a parent.
"""
enum EventFeedMode {
  ORGANIZATION
  SUBJECT
  UNSCOPED
  USER
}

"""
The originating object for an event.
This is useful when the subject of an event is not the actual origin of the event.
For instance when you suggest a revision, the subject of the Event will be the entity being revised,
while the originating object will be the Revision itself.
"""
interface EventOriginObject {
  id: Int!
  link: String!
  name: String!
}

"""
The subject of an event log event.
"""
interface EventSubject {
  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  id: Int!
  link: String!
  name: String!
}

"""
An event subject paired with a count of how many times that subject has appeared
"""
type EventSubjectWithCount {
  occuranceCount: Int!
  subject: EventSubject
}

enum EvidenceDirection {
  DOES_NOT_SUPPORT
  NA
  SUPPORTS
}

input EvidenceDirectionTypeSearchInput {
  operator: EnumSearchOperator!
  value: EvidenceDirection!
}

type EvidenceItem implements Commentable & EventOriginObject & EventSubject & Flaggable & WithRevisions {
  acceptanceEvent: Event
  assertions: [Assertion!]!

  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  description: String!
  disease: Disease

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  evidenceDirection: EvidenceDirection!
  evidenceLevel: EvidenceLevel!
  evidenceRating: Int
  evidenceType: EvidenceType!
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastCommentEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  molecularProfile: MolecularProfile!
  name: String!
  openRevisionCount: Int!
  phenotypes: [Phenotype!]!
  rejectionEvent: Event

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  significance: EvidenceSignificance!
  source: Source!
  status: EvidenceStatus!
  submissionActivity: SubmitEvidenceItemActivity!
  submissionEvent: Event!
  therapies: [Therapy!]!
  therapyInteractionType: TherapyInteraction
  variantHgvs: String!
  variantOrigin: VariantOrigin!
}

"""
The connection type for EvidenceItem.
"""
type EvidenceItemConnection {
  """
  A list of edges.
  """
  edges: [EvidenceItemEdge!]!

  """
  A list of nodes.
  """
  nodes: [EvidenceItem!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

"""
Fields on an EvidenceItem that curators may propose revisions to.
"""
input EvidenceItemFields {
  """
  The Evidence Items's description/summary text.
  """
  description: NullableStringInput!

  """
  The ID of the disease (if applicable) for this EvidenceItem
  """
  diseaseId: NullableIntInput!

  """
  The evidence direction for this EvidenceItem.
  """
  evidenceDirection: EvidenceDirection!

  """
  The evidence level of the EvidenceItem
  """
  evidenceLevel: EvidenceLevel!

  """
  The Type of the EvidenceItem
  """
  evidenceType: EvidenceType!

  """
  The ID of the Molecular Profile to which this EvidenceItem belongs
  """
  molecularProfileId: Int!

  """
  List of IDs of CIViC Phenotype entries for this EvidenceItem. An empty list indicates none.
  """
  phenotypeIds: [Int!]!

  """
  The rating for this EvidenceItem
  """
  rating: Int!

  """
  The Clinical Significance of the EvidenceItem
  """
  significance: EvidenceSignificance!

  """
  The ID of the Source from which this EvidenceItem was curated.
  """
  sourceId: Int!

  """
  List of IDs of CIViC Therapy entries for this EvidenceItem. An empty list indicates none.
  """
  therapyIds: [Int!]!

  """
  Therapy interaction type for cases where more than one Therapy ID is provided.
  """
  therapyInteractionType: NullableTherapyInteractionTypeInput!

  """
  The Variant Origin for this EvidenceItem.
  """
  variantOrigin: VariantOrigin!
}

input EvidenceItemSearchFilter {
  assertion: AssertionSearchFilter
  booleanOperator: BooleanOperator
  comment: CommentSearchFilter
  creatingUser: UserSearchFilter
  description: StringSearchInput
  disease: DiseaseSearchFilter
  evidenceDirection: EvidenceDirectionTypeSearchInput
  evidenceLevel: EvidenceLevelTypeSearchInput
  evidenceRating: IntSearchInput
  evidenceType: EvidenceTypeTypeSearchInput
  id: IntSearchInput
  isFlagged: BooleanSearchInput
  moderatingUser: UserSearchFilter
  molecularProfile: MolecularProfileSearchFilter
  openRevisionCount: IntSearchInput
  phenotypes: PhenotypeSearchFilter
  revisions: RevisionSearchFilter
  significance: EvidenceSignificanceTypeSearchInput
  source: SourceSearchFilter
  status: EvidenceStatusTypeSearchInput
  subFilters: [EvidenceItemSearchFilter!]
  therapies: TherapySearchFilter
  therapyInteractionType: TherapyInteractionTypeSearchInput
}

type EvidenceItemsByStatus {
  acceptedCount: Int!
  molecularProfileId: Int!
  rejectedCount: Int!
  submittedCount: Int!
}

type EvidenceItemsByType {
  diagnosticCount: Int!
  functionalCount: Int!
  molecularProfileId: Int!
  oncogenicCount: Int!
  predictiveCount: Int!
  predisposingCount: Int!
  prognosticCount: Int!
}

enum EvidenceLevel {
  A
  B
  C
  D
  E
}

input EvidenceLevelTypeSearchInput {
  operator: EnumSearchOperator!
  value: EvidenceLevel!
}

enum EvidenceSignificance {
  ADVERSE_RESPONSE
  BENIGN
  BETTER_OUTCOME
  DOMINANT_NEGATIVE
  GAIN_OF_FUNCTION
  LIKELY_BENIGN

  """
  Likely Oncogenic
  """
  LIKELY_ONCOGENIC
  LIKELY_PATHOGENIC
  LOSS_OF_FUNCTION
  NA
  NEGATIVE
  NEOMORPHIC
  ONCOGENICITY
  PATHOGENIC
  POOR_OUTCOME
  POSITIVE
  PREDISPOSITION
  PROTECTIVENESS
  REDUCED_SENSITIVITY
  RESISTANCE
  SENSITIVITYRESPONSE
  UNALTERED_FUNCTION
  UNCERTAIN_SIGNIFICANCE
  UNKNOWN
}

input EvidenceSignificanceTypeSearchInput {
  operator: EnumSearchOperator!
  value: EvidenceSignificance!
}

input EvidenceSort {
  """
  Available columns for sorting
  """
  column: EvidenceSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum EvidenceSortColumns {
  DESCRIPTION
  DISEASE_NAME
  EVIDENCE_DIRECTION
  EVIDENCE_LEVEL
  EVIDENCE_RATING
  EVIDENCE_TYPE
  ID
  SIGNIFICANCE
  STATUS
  VARIANT_ORIGIN
}

enum EvidenceStatus {
  ACCEPTED
  REJECTED
  SUBMITTED
}

enum EvidenceStatusFilter {
  ACCEPTED
  ALL
  NON_REJECTED
  REJECTED
  SUBMITTED
}

input EvidenceStatusTypeSearchInput {
  operator: EnumSearchOperator!
  value: EvidenceStatus!
}

enum EvidenceType {
  DIAGNOSTIC
  FUNCTIONAL
  ONCOGENIC
  PREDICTIVE
  PREDISPOSING
  PROGNOSTIC
}

input EvidenceTypeTypeSearchInput {
  operator: EnumSearchOperator!
  value: EvidenceType!
}

type ExonCoordinate implements EventSubject & WithRevisions {
  chromosome: String
  coordinateType: ExonCoordinateType!
  ensemblId: String
  ensemblVersion: Int

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  exon: Int
  exonOffset: Int
  exonOffsetDirection: Direction
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  name: String!
  openRevisionCount: Int!
  referenceBuild: ReferenceBuild
  representativeTranscript: String

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  start: Int
  stop: Int
  strand: Direction
}

enum ExonCoordinateType {
  FIVE_PRIME_END_EXON_COORDINATE
  FIVE_PRIME_START_EXON_COORDINATE
  THREE_PRIME_END_EXON_COORDINATE
  THREE_PRIME_START_EXON_COORDINATE
}

"""
The Feature that a Variant can belong to
"""
type Factor implements Commentable & EventOriginObject & EventSubject & Flaggable & MolecularProfileComponent & WithRevisions {
  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  creationActivity: CreateFeatureActivity
  deprecated: Boolean!
  deprecationActivity: DeprecateFeatureActivity
  deprecationReason: FeatureDeprecationReason
  description: String

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  featureAliases: [String!]!
  featureInstance: FeatureInstance!
  featureType: FeatureInstanceTypes!
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  fullName: String
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastCommentEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  name: String!
  ncitDetails: NcitDetails
  ncitId: String
  openRevisionCount: Int!

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  sources: [Source!]!

  """
  List and filter Gene variants.
  """
  variants(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Find a CIViC Variant based on its ClinGen Allele Registry ID
    """
    alleleRegistryId: String

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

    """
    Feature that the variants are associated with, limited to only Factor type features.
    """
    factorId: Int

    """
    Feature that the variants are associated with.
    """
    featureId: Int

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

    """
    Feature that the variants are associated with, limited to only Gene type features.
    """
    geneId: Int

    """
    Return Variants lacking an assigned VariantType
    """
    hasNoVariantType: Boolean

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Left anchored filtering for variant name and aliases.
    """
    name: String
    sortBy: VariantMenuSort

    """
    A list of CIViC identifiers for variant types
    """
    variantTypeIds: [Int!]
  ): FactorVariantConnection!
}

"""
The connection type for Factor.
"""
type FactorConnection {
  """
  A list of edges.
  """
  edges: [FactorEdge!]!

  """
  A list of nodes.
  """
  nodes: [Factor!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

"""
Fields on a Factor that curators may propose revisions to.
"""
input FactorFields {
  """
  List of aliases or alternate names for the Factor.
  """
  aliases: [String!]!

  """
  The Factor's description/summary text.
  """
  description: NullableStringInput!

  """
  The Factor's full name if applicable.
  """
  fullName: NullableStringInput!

  """
  The Factor's display name.
  """
  name: String!

  """
  NCI Thesaurus concept ID for this Factor
  """
  ncitId: NullableStringInput!

  """
  Source IDs cited by the Factor's summary.
  """
  sourceIds: [Int!]!
}

type FactorVariant implements Commentable & EventOriginObject & EventSubject & Flaggable & MolecularProfileComponent & VariantInterface & WithRevisions {
  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  creationActivity: CreateVariantActivity
  deprecated: Boolean!
  deprecationActivity: DeprecateVariantActivity
  deprecationReason: VariantDeprecationReason

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  feature: Feature!
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastCommentEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  molecularProfiles(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): MolecularProfileConnection!
  name: String!
  ncitDetails: NcitDetails
  ncitId: String
  openRevisionCount: Int!

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  singleVariantMolecularProfile: MolecularProfile!
  singleVariantMolecularProfileId: Int!
  variantAliases: [String!]!
  variantTypes: [VariantType!]!
}

"""
The connection type for FactorVariant.
"""
type FactorVariantConnection {
  """
  A list of edges.
  """
  edges: [FactorVariantEdge!]!

  """
  A list of nodes.
  """
  nodes: [FactorVariant!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

"""
Fields on a FactorVariant that curators may propose revisions to.
"""
input FactorVariantFields {
  """
  List of aliases or alternate names for the Variant.
  """
  aliases: [String!]!

  """
  The ID of the Feature this Variant corresponds to.
  """
  featureId: Int!

  """
  The Variant's name.
  """
  name: String!

  """
  NCI Thesaurus concept ID for this Factor
  """
  ncitId: NullableStringInput!

  """
  List of IDs for the variant types for this Variant
  """
  variantTypeIds: [Int!]!
}

type FdaCode {
  code: String!
  description: String!
}

"""
The Feature that a Variant can belong to
"""
type Feature implements Commentable & EventOriginObject & EventSubject & Flaggable & MolecularProfileComponent & WithRevisions {
  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  creationActivity: CreateFeatureActivity
  deprecated: Boolean!
  deprecationActivity: DeprecateFeatureActivity
  deprecationReason: FeatureDeprecationReason
  description: String

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  featureAliases: [String!]!
  featureInstance: FeatureInstance!
  featureType: FeatureInstanceTypes!
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  fullName: String
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastCommentEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  name: String!
  openRevisionCount: Int!

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  sources: [Source!]!

  """
  List and filter variants.
  """
  variants(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Find a CIViC Variant based on its ClinGen Allele Registry ID
    """
    alleleRegistryId: String

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

    """
    Feature that the variants are associated with, limited to only Factor type features.
    """
    factorId: Int

    """
    Feature that the variants are associated with.
    """
    featureId: Int

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

    """
    Feature that the variants are associated with, limited to only Gene type features.
    """
    geneId: Int

    """
    Return Variants lacking an assigned VariantType
    """
    hasNoVariantType: Boolean

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Left anchored filtering for variant name and aliases.
    """
    name: String
    sortBy: VariantMenuSort

    """
    A list of CIViC identifiers for variant types
    """
    variantTypeIds: [Int!]
  ): VariantInterfaceConnection!
}

enum FeatureDeprecationReason {
  DUPLICATE
  INVALID
  OTHER
}

input FeatureDeprecationReasonTypeSearchInput {
  operator: EnumSearchOperator!
  value: FeatureDeprecationReason!
}

"""
The specific type of a feature instance
"""
union FeatureInstance = Factor | Fusion | Gene

enum FeatureInstanceTypes {
  FACTOR
  FUSION
  GENE
}

input FeatureInstanceTypesSearchInput {
  operator: EnumSearchOperator!
  value: FeatureInstanceTypes!
}

input FeatureSearchFilter {
  alias: StringSearchInput
  booleanOperator: BooleanOperator
  creatingUser: UserSearchFilter
  deprecatingUser: UserSearchFilter
  deprecationReason: FeatureDeprecationReasonTypeSearchInput
  description: StringSearchInput
  entrezId: IntSearchInput
  entrezSymbol: StringSearchInput
  featureInstanceType: FeatureInstanceTypesSearchInput
  fivePrimePartnerEntrezId: IntSearchInput
  fivePrimePartnerEntrezSymbol: StringSearchInput
  hasAssertion: BooleanSearchInput
  id: IntSearchInput
  isDeprecated: BooleanSearchInput
  isFlagged: BooleanSearchInput
  ncitId: StringSearchInput
  openRevisionCount: IntSearchInput
  subFilters: [FeatureSearchFilter!]
  threePrimePartnerEntrezId: IntSearchInput
  threePrimePartnerEntrezSymbol: StringSearchInput
}

input FeaturesSort {
  """
  Available columns for sorting
  """
  column: FeaturesSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum FeaturesSortColumns {
  assertionCount
  diseaseName
  evidenceItemCount
  featureAlias
  featureFullName
  featureName
  molecularProfileCount
  therapyName
  variantCount
}

type FieldName {
  """
  The user facing representation of the field name.
  """
  displayName: String!

  """
  The internal server representation of the field name.
  """
  name: String!
}

type FieldValidationError {
  error: String!
  fieldName: String!
}

type Flag implements Commentable & EventOriginObject & EventSubject {
  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  createdAt: ISO8601DateTime!

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  flaggable: Flaggable!
  flaggingUser: User!
  id: Int!
  lastCommentEvent: Event
  link: String!
  name: String!
  openActivity: FlagEntityActivity!
  resolutionActivity: ResolveFlagActivity
  resolvingUser: User
  state: FlagState!
}

"""
The connection type for Flag.
"""
type FlagConnection {
  """
  A list of edges.
  """
  edges: [FlagEdge!]!

  """
  A list of nodes.
  """
  nodes: [Flag!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!

  """
  When filtered on a subject, the total number of flags for that subject,
  irregardless of other filters. Returns null when there is no subject.
  """
  unfilteredCountForSubject: Int

  """
  List of all users that have flagged this entity.
  """
  uniqueFlaggingUsers: [User!]!

  """
  List of all users that have resolved a flag on this entity.
  """
  uniqueResolvingUsers: [User!]
}

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

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

type FlagEntityActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  flag: Flag!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of FlagEntity
"""
input FlagEntityInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing the problem you observed with this entity.
  """
  comment: String!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int

  """
  The entity to flag, specified by its ID and type.
  """
  subject: FlaggableInput!
}

"""
Autogenerated return type of FlagEntity.
"""
type FlagEntityPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The newly created Flag.
  """
  flag: Flag
}

enum FlagState {
  OPEN
  RESOLVED
}

"""
A CIViC entity that can be flagged for editor attention.
"""
interface Flaggable {
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  id: Int!
  link: String!
  name: String!
}

"""
Enumeration of all entities in CIViC that can be flagged.
"""
enum FlaggableEntities {
  ASSERTION
  EVIDENCE_ITEM
  FEATURE
  MOLECULAR_PROFILE
  VARIANT
  VARIANT_GROUP
}

"""
Entity to flag
"""
input FlaggableInput {
  """
  The type of the entity to flag.
  """
  entityType: FlaggableEntities!

  """
  The ID of the entity.
  """
  id: Int!
}

input FloatSearchInput {
  operator: FloatSearchOperator!
  value: Float!
}

enum FloatSearchOperator {
  """
  Equal To
  """
  EQ

  """
  Greater Than or Equal To
  """
  GE

  """
  Greater Than
  """
  GT

  """
  Less Than or Equal To
  """
  LE

  """
  Less Than
  """
  LT

  """
  Not Equal To
  """
  NE
}

"""
The Feature that a Variant can belong to
"""
type Fusion implements Commentable & EventOriginObject & EventSubject & Flaggable & MolecularProfileComponent & WithRevisions {
  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  creationActivity: CreateFeatureActivity
  deprecated: Boolean!
  deprecationActivity: DeprecateFeatureActivity
  deprecationReason: FeatureDeprecationReason
  description: String

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  featureAliases: [String!]!
  featureInstance: FeatureInstance!
  featureType: FeatureInstanceTypes!
  fivePrimeGene: Gene
  fivePrimePartnerStatus: FusionPartnerStatus!
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  fullName: String
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastCommentEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  name: String!
  openRevisionCount: Int!

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  sources: [Source!]!
  threePrimeGene: Gene
  threePrimePartnerStatus: FusionPartnerStatus!

  """
  List and filter variants.
  """
  variants(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Find a CIViC Variant based on its ClinGen Allele Registry ID
    """
    alleleRegistryId: String

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

    """
    Feature that the variants are associated with, limited to only Factor type features.
    """
    factorId: Int

    """
    Feature that the variants are associated with.
    """
    featureId: Int

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

    """
    Feature that the variants are associated with, limited to only Gene type features.
    """
    geneId: Int

    """
    Return Variants lacking an assigned VariantType
    """
    hasNoVariantType: Boolean

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Left anchored filtering for variant name and aliases.
    """
    name: String
    sortBy: VariantMenuSort

    """
    A list of CIViC identifiers for variant types
    """
    variantTypeIds: [Int!]
  ): VariantInterfaceConnection!
}

"""
The connection type for Fusion.
"""
type FusionConnection {
  """
  A list of edges.
  """
  edges: [FusionEdge!]!

  """
  A list of nodes.
  """
  nodes: [Fusion!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

"""
Fields on a Fusion that curators may propose revisions to.
"""
input FusionFields {
  """
  List of aliases or alternate names for the Fusion.
  """
  aliases: [String!]!

  """
  The Fusion's description/summary text.
  """
  description: NullableStringInput!

  """
  Source IDs cited by the Fusion's summary.
  """
  sourceIds: [Int!]!
}

"""
The fusion partner's status and gene ID (if applicable)
"""
input FusionPartnerInput {
  """
  The CIViC gene ID of the partner, if known
  """
  geneId: Int

  """
  The status of the fusion partner
  """
  partnerStatus: FusionPartnerStatus!
}

enum FusionPartnerStatus {
  KNOWN
  MULTIPLE
  UNKNOWN
}

type FusionVariant implements Commentable & EventOriginObject & EventSubject & Flaggable & MolecularProfileComponent & VariantInterface & WithRevisions {
  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  creationActivity: CreateVariantActivity
  deprecated: Boolean!
  deprecationActivity: DeprecateVariantActivity
  deprecationReason: VariantDeprecationReason

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  feature: Feature!
  fivePrimeCoordinates: VariantCoordinate
  fivePrimeEndExonCoordinates: ExonCoordinate
  fivePrimeStartExonCoordinates: ExonCoordinate
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  fusion: Fusion!
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastCommentEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  molecularProfiles(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): MolecularProfileConnection!
  name: String!
  openRevisionCount: Int!

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  singleVariantMolecularProfile: MolecularProfile!
  singleVariantMolecularProfileId: Int!
  threePrimeCoordinates: VariantCoordinate
  threePrimeEndExonCoordinates: ExonCoordinate
  threePrimeStartExonCoordinates: ExonCoordinate
  variantAliases: [String!]!
  variantTypes: [VariantType!]!
  viccCompliantName: String!
}

"""
Fields on a FusionVariant that curators may propose revisions to.
"""
input FusionVariantFields {
  """
  List of aliases or alternate names for the Variant.
  """
  aliases: [String!]!

  """
  The exon coordinates for this Variant.
  """
  coordinates: FusionVariantInput!

  """
  List of IDs for the variant types for this Variant
  """
  variantTypeIds: [Int!]!
}

"""
The fields required to create a fusion variant
"""
input FusionVariantInput {
  ensemblVersion: Int!
  fivePrimeExonEnd: Int
  fivePrimeOffset: Int
  fivePrimeOffsetDirection: Direction
  fivePrimeTranscript: String

  """
  The reference build for the genomic coordinates of this Variant.
  """
  referenceBuild: ReferenceBuild
  threePrimeExonStart: Int
  threePrimeOffset: Int
  threePrimeOffsetDirection: Direction
  threePrimeTranscript: String
}

"""
The Feature that a Variant can belong to
"""
type Gene implements Commentable & EventOriginObject & EventSubject & Flaggable & MolecularProfileComponent & WithRevisions {
  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  creationActivity: CreateFeatureActivity
  deprecated: Boolean!
  deprecationActivity: DeprecateFeatureActivity
  deprecationReason: FeatureDeprecationReason
  description: String
  entrezId: Int!

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  featureAliases: [String!]!
  featureInstance: FeatureInstance!
  featureType: FeatureInstanceTypes!
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  fullName: String
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastCommentEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  myGeneInfoDetails: JSON
  name: String!
  openRevisionCount: Int!

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  sources: [Source!]!

  """
  List and filter Gene variants.
  """
  variants(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Find a CIViC Variant based on its ClinGen Allele Registry ID
    """
    alleleRegistryId: String

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

    """
    Feature that the variants are associated with, limited to only Factor type features.
    """
    factorId: Int

    """
    Feature that the variants are associated with.
    """
    featureId: Int

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

    """
    Feature that the variants are associated with, limited to only Gene type features.
    """
    geneId: Int

    """
    Return Variants lacking an assigned VariantType
    """
    hasNoVariantType: Boolean

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Left anchored filtering for variant name and aliases.
    """
    name: String
    sortBy: VariantMenuSort

    """
    A list of CIViC identifiers for variant types
    """
    variantTypeIds: [Int!]
  ): GeneVariantConnection!
}

"""
The connection type for Gene.
"""
type GeneConnection {
  """
  A list of edges.
  """
  edges: [GeneEdge!]!

  """
  A list of nodes.
  """
  nodes: [Gene!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

"""
Fields on a Gene that curators may propose revisions to.
"""
input GeneFields {
  """
  The Gene's description/summary text.
  """
  description: NullableStringInput!

  """
  Source IDs cited by the Gene's summary.
  """
  sourceIds: [Int!]!
}

type GeneVariant implements Commentable & EventOriginObject & EventSubject & Flaggable & MolecularProfileComponent & VariantInterface & WithRevisions {
  alleleRegistryId: String
  clinvarIds: [String!]!

  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  coordinates: VariantCoordinate
  creationActivity: CreateVariantActivity
  deprecated: Boolean!
  deprecationActivity: DeprecateVariantActivity
  deprecationReason: VariantDeprecationReason

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  feature: Feature!
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  hgvsDescriptions: [String!]!
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastCommentEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  maneSelectTranscript: String
  molecularProfiles(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): MolecularProfileConnection!
  myVariantInfo: MyVariantInfo
  name: String!
  openCravatAnnotations: JSON
  openCravatUrl: String
  openRevisionCount: Int!
  primaryCoordinates: VariantCoordinate @deprecated(reason: "The new Fusion variant type means Gene variants no longer have primary and secondary coordinates. Use 'coordinates' instead.")

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  singleVariantMolecularProfile: MolecularProfile!
  singleVariantMolecularProfileId: Int!
  variantAliases: [String!]!
  variantTypes: [VariantType!]!
}

"""
The connection type for GeneVariant.
"""
type GeneVariantConnection {
  """
  A list of edges.
  """
  edges: [GeneVariantEdge!]!

  """
  A list of nodes.
  """
  nodes: [GeneVariant!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

input GeneVariantCoordinateInput {
  chromosome: String

  """
  The Ensembl database version.
  """
  ensemblVersion: Int

  """
  Reference bases for this variant
  """
  referenceBases: NullableStringInput!

  """
  The reference build for the genomic coordinates of this Variant.
  """
  referenceBuild: ReferenceBuild
  representativeTranscript: String
  start: Int
  stop: Int

  """
  Variant bases for this variant
  """
  variantBases: NullableStringInput!
}

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

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

"""
Fields on a GeneVariant that curators may propose revisions to.
"""
input GeneVariantFields {
  """
  List of aliases or alternate names for the Variant.
  """
  aliases: [String!]!

  """
  List of ClinVar IDs for the Variant.
  """
  clinvarIds: ClinvarInput!

  """
  The genomic coordinates for this Variant.
  """
  coordinates: GeneVariantCoordinateInput!

  """
  The ID of the Feature this Variant corresponds to.
  """
  featureId: Int!

  """
  List of HGVS descriptions for the Variant.
  """
  hgvsDescriptions: [String!]!

  """
  The Variant's name.
  """
  name: String!

  """
  List of IDs for the variant types for this Variant
  """
  variantTypeIds: [Int!]!
}

"""
Autogenerated input type of GenerateApiKey
"""
input GenerateApiKeyInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String
}

"""
Autogenerated return type of GenerateApiKey.
"""
type GenerateApiKeyPayload {
  """
  The newly created API key.
  """
  apiKey: ApiKey

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String
  user: User
}

"""
An ISO 8601-encoded datetime
"""
scalar ISO8601DateTime @specifiedBy(url: "https://tools.ietf.org/html/rfc3339")

input IntSearchInput {
  operator: IntSearchOperator!
  value: Int!
}

enum IntSearchOperator {
  """
  Equal To
  """
  EQ

  """
  Greater Than or Equal To
  """
  GE

  """
  Greater Than
  """
  GT

  """
  Less Than or Equal To
  """
  LE

  """
  Less Than
  """
  LT

  """
  Not Equal To
  """
  NE
}

"""
Represents untyped JSON
"""
scalar JSON

type LeaderboardOrganization {
  actionCount: Int!
  canEndorse: Boolean!
  description: String!
  eventCount: Int!
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): EventConnection!
  hasEndorsingSubgroups: Boolean!
  id: Int!
  isApprovedVcep: Boolean!
  memberCount: Int!
  members(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): UserConnection!
  mostRecentActivityTimestamp: ISO8601DateTime
  name: String!
  orgAndSuborgsStatsHash: Stats!
  orgStatsHash: Stats!
  profileImagePath(size: Int = 56): String
  rank: Int!
  ranks: Ranks!
  subGroups: [Organization!]!
  url: String!
}

"""
The connection type for LeaderboardOrganization.
"""
type LeaderboardOrganizationConnection {
  """
  A list of edges.
  """
  edges: [LeaderboardOrganizationEdge!]!

  """
  A list of nodes.
  """
  nodes: [LeaderboardOrganization!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

type LeaderboardRank {
  actionCount: Int!
  rank: Int!
}

type LeaderboardUser {
  actionCount: Int!
  apiKeys: [ApiKey!]!
  areaOfExpertise: AreaOfExpertise
  bio: String
  country: Country
  displayName: String!
  email: String
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): EventConnection!
  facebookProfile: String
  id: Int!
  joinDate: ISO8601DateTime
  linkedinProfile: String
  mostRecentActivityTimestamp: ISO8601DateTime
  mostRecentConflictOfInterestStatement: Coi
  mostRecentEvent: Event
  mostRecentOrganizationId: Int
  name: String

  """
  Filterable list of notifications for the logged in user.
  """
  notifications(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Filter the response to include only notifications generated by certain actions (ex: commenting).
    """
    eventType: EventAction

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

    """
    Filter the response to include only notifications generated by a particular subscription.
    """
    includeSeen: Boolean = false

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Filter the response to include only notifications of a certain type (ex: mentions).
    """
    notificationType: NotificationReason

    """
    Filter the response to include only notifications generated by a particular subscription.
    """
    subscriptionId: Int
  ): NotificationConnection
  orcid: String
  organizations: [Organization!]!
  organizationsWithEndorsementPrivileges: [Organization!]!
  profileImagePath(size: Int = 56): String
  rank: Int!
  ranks: Ranks!
  role: UserRole!
  statsHash: Stats!
  twitterHandle: String
  url: String
  username: String!
}

"""
The connection type for LeaderboardUser.
"""
type LeaderboardUserConnection {
  """
  A list of edges.
  """
  edges: [LeaderboardUserEdge!]!

  """
  A list of nodes.
  """
  nodes: [LeaderboardUser!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

type LinkableDisease {
  deprecated: Boolean!
  id: Int!
  link: String!
  name: String!
}

type LinkableFeature {
  deprecated: Boolean!
  flagged: Boolean!
  id: Int!
  link: String!
  name: String!
}

type LinkableTherapy {
  deprecated: Boolean!
  id: Int!
  link: String!
  name: String!
}

type LinkableVariant {
  deprecated: Boolean!
  feature: LinkableFeature
  flagged: Boolean!
  id: Int!
  link: String!
  matchText: String
  name: String!
}

type LinkableVariantType {
  id: Int!
  link: String!
  name: String!
}

type LinkoutData {
  currentValue: ModeratedField!
  diffValue: ModeratedFieldDiff!
  name: String!
  suggestedValue: ModeratedField!
}

type ModerateAssertionActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of ModerateAssertion
"""
input ModerateAssertionInput {
  """
  ID of the Assertion to moderate
  """
  assertionId: Int!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Comment explaining the moderation action. Required when rejecting.
  """
  comment: String

  """
  The desired status of the Assertion
  """
  newStatus: EvidenceStatus!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of ModerateAssertion.
"""
type ModerateAssertionPayload {
  """
  The moderated Assertion
  """
  assertion: Assertion!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String
}

type ModerateEvidenceItemActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of ModerateEvidenceItem
"""
input ModerateEvidenceItemInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Optional comment explaining the moderation action. Required if the new status is 'rejected'.
  """
  comment: String

  """
  ID of the Evidence Item to moderate
  """
  evidenceItemId: Int!

  """
  The desired status of the Evidence Item
  """
  newStatus: EvidenceStatus!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of ModerateEvidenceItem.
"""
type ModerateEvidenceItemPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The moderated Evidence Item
  """
  evidenceItem: EvidenceItem!
}

"""
Enumeration of all moderated CIViC entities.
"""
enum ModeratedEntities {
  ASSERTION
  EVIDENCE_ITEM
  EXON_COORDINATES
  FEATURE
  MOLECULAR_PROFILE
  VARIANT
  VARIANT_COORDINATES
  VARIANT_GROUP
}

input ModeratedEntitiesTypeSearchInput {
  operator: EnumSearchOperator!
  value: ModeratedEntities!
}

"""
Fields that can have revisions can be either scalar values or complex objects
"""
union ModeratedField = ObjectField | ScalarField

"""
Fields that can have revisions can be either scalar values or complex objects
"""
union ModeratedFieldDiff = ObjectFieldDiff | ScalarFieldDiff

"""
Entity to moderate.
"""
input ModeratedInput {
  """
  Type of moderated entity.
  """
  entityType: ModeratedEntities!

  """
  ID of moderated entity.
  """
  id: Int!
}

type ModeratedObjectField {
  deleted: Boolean!
  deprecated: Boolean
  displayName: String
  displayType: String
  entityType: String!
  feature: LinkableFeature
  flagged: Boolean
  id: Int!
  link: String
}

type MolecularProfile implements Commentable & EventOriginObject & EventSubject & Flaggable & WithRevisions {
  """
  The collection of assertions associated with this molecular profile.
  """
  assertions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Returns the first _n_ elements from the list.
    """
    first: Int
    includeRejected: Boolean

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): AssertionConnection!

  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  complexMolecularProfileCreationActivity: CreateComplexMolecularProfileActivity
  complexMolecularProfileDeprecationActivity: DeprecateComplexMolecularProfileActivity
  deprecated: Boolean!
  deprecatedVariants: [VariantInterface!]!
  deprecationReason: MolecularProfileDeprecationReason
  description: String

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  evidenceCountsByStatus: EvidenceItemsByStatus!
  evidenceCountsByType: EvidenceItemsByType!

  """
  The collection of evidence items associated with this molecular profile.
  """
  evidenceItems(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Returns the first _n_ elements from the list.
    """
    first: Int
    includeRejected: Boolean

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): EvidenceItemConnection!
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  id: Int!
  isComplex: Boolean!
  isMultiVariant: Boolean!
  lastAcceptedRevisionEvent: Event
  lastCommentEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  molecularProfileAliases: [String!]!
  molecularProfileScore: Float!

  """
  The human readable name of this profile, including gene and variant names.
  """
  name: String!
  openRevisionCount: Int!

  """
  The profile name with its constituent parts as objects, suitable for building tags.
  """
  parsedName: [MolecularProfileSegment!]!

  """
  The profile name as stored, with ids rather than names.
  """
  rawName: String!

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  sources: [Source!]!
  variantCreationActivity: CreateVariantActivity
  variantDeprecationActivity: DeprecateVariantActivity

  """
  The collection of variants included in this molecular profile. Please note the name for their relation to each other.
  """
  variants: [VariantInterface!]!
}

type MolecularProfileAlias {
  name: String!
}

"""
A taggable/linkable component of a molecular profile
"""
interface MolecularProfileComponent {
  id: Int!
  link: String!
  name: String!
}

input MolecularProfileComponentInput {
  """
  Boolean operation used to combined the components into a Molecular Profile.
  """
  booleanOperator: BooleanOperator

  """
  One or more complex (multi-Variant) components that make up the Molecular Profile.
  """
  complexComponents: [MolecularProfileComponentInput!]

  """
  One or more single Variants that make up the Molecular Profile.
  """
  variantComponents: [VariantComponent!]
}

"""
The connection type for MolecularProfile.
"""
type MolecularProfileConnection {
  """
  A list of edges.
  """
  edges: [MolecularProfileEdge!]!

  """
  A list of nodes.
  """
  nodes: [MolecularProfile!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

enum MolecularProfileDeprecationReason {
  DUPLICATE
  INVALID
  OTHER
  VARIANT_DEPRECATED
}

enum MolecularProfileDeprecationReasonMutationInput {
  DUPLICATE
  INVALID
  OTHER
}

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

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

"""
Fields on a MolecularProfile that curators may propose revisions to.
"""
input MolecularProfileFields {
  """
  List of aliases or alternate names for the MolecularProfile.
  """
  aliases: [String!]!

  """
  The MolecularProfile's description/summary text.
  """
  description: NullableStringInput!

  """
  Source IDs cited by the MolecularProfile's summary.
  """
  sourceIds: [Int!]!
}

type MolecularProfileNamePreview {
  deprecatedVariants: [VariantInterface!]!

  """
  The already existing MP matching this name, if it exists
  """
  existingMolecularProfile: MolecularProfile
  segments: [MolecularProfileSegment!]!
}

input MolecularProfileSearchFilter {
  alias: StringSearchInput
  booleanOperator: BooleanOperator
  creatingUser: UserSearchFilter
  deprecatingUser: UserSearchFilter
  description: StringSearchInput
  evidenceItemsCount: IntSearchInput
  hasAssertion: BooleanSearchInput
  id: IntSearchInput
  isFlagged: BooleanSearchInput
  openRevisionCount: IntSearchInput
  score: FloatSearchInput
  source: SourceSearchFilter
  subFilters: [MolecularProfileSearchFilter!]
}

"""
A segment of a molecular profile. Either a string representing a boolean
operator or a tag component representing a gene or variant
"""
union MolecularProfileSegment = Feature | MolecularProfileTextSegment | Variant

type MolecularProfileTextSegment {
  text: String!
}

input MolecularProfilesSort {
  """
  Available columns for sorting
  """
  column: MolecularProfilesSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum MolecularProfilesSortColumns {
  assertionCount
  evidenceItemCount
  molecularProfileScore
  variantCount
}

type Mutation {
  """
  Accept multiple revisions by ID. The accepting user must be an editor with a
  valid conflict of interest statement on file and the revisions must not be
  their own. The revisions must be for the same subject. The revisions may not
  conflict, i.e. be for the same field.
  """
  acceptRevisions(
    """
    Parameters for AcceptRevisions
    """
    input: AcceptRevisionsInput!
  ): AcceptRevisionsPayload

  """
  Add a comment to any commentable entity.
  """
  addComment(
    """
    Parameters for AddComment
    """
    input: AddCommentInput!
  ): AddCommentPayload

  """
  Add a new disease to the database.
  """
  addDisease(
    """
    Parameters for AddDisease
    """
    input: AddDiseaseInput!
  ): AddDiseasePayload

  """
  Add a stub record for an external source that is not yet in CIViC.
  This is for adding a new Source inline while performing other curation activities
  such as adding new evidence items and is distinct from suggesting a source for curation.
  """
  addRemoteCitation(
    """
    Parameters for AddRemoteCitation
    """
    input: AddRemoteCitationInput!
  ): AddRemoteCitationPayload

  """
  Add a new therapy to the database.
  """
  addTherapy(
    """
    Parameters for AddTherapy
    """
    input: AddTherapyInput!
  ): AddTherapyPayload

  """
  Create a new Feature in the database.
  """
  createFeature(
    """
    Parameters for CreateFeature
    """
    input: CreateFeatureInput!
  ): CreateFeaturePayload

  """
  Create a new Fusion Feature in the database.
  """
  createFusionFeature(
    """
    Parameters for CreateFusionFeature
    """
    input: CreateFusionFeatureInput!
  ): CreateFusionFeaturePayload

  """
  Create a new Fusion Variant in the database.
  """
  createFusionVariant(
    """
    Parameters for CreateFusionVariant
    """
    input: CreateFusionVariantInput!
  ): CreateFusionVariantPayload

  """
  Create a new Molecular Profile in order to attach Evidence Items to it.
  """
  createMolecularProfile(
    """
    Parameters for CreateMolecularProfile
    """
    input: CreateMolecularProfileInput!
  ): CreateMolecularProfilePayload

  """
  Create a new Variant to the database.
  """
  createVariant(
    """
    Parameters for CreateVariant
    """
    input: CreateVariantInput!
  ): CreateVariantPayload

  """
  Mark a comment as deleted. You can only delete your own comments.
  """
  deleteComment(
    """
    Parameters for DeleteComment
    """
    input: DeleteCommentInput!
  ): DeleteCommentPayload

  """
  Deprecate a complex molecular profile to prevent it from being used in the future.
  """
  deprecateComplexMolecularProfile(
    """
    Parameters for DeprecateComplexMolecularProfile
    """
    input: DeprecateComplexMolecularProfileInput!
  ): DeprecateComplexMolecularProfilePayload

  """
  Deprecate a feature to prevent it from being used in the future and implicitly
  deprecate all the variants and molecular profiles linked to this feature.
  """
  deprecateFeature(
    """
    Parameters for DeprecateFeature
    """
    input: DeprecateFeatureInput!
  ): DeprecateFeaturePayload

  """
  Deprecate a variant to prevent it from being used in the future and implicitly
  deprecate all the molecular profiles linked to this variant.
  """
  deprecateVariant(
    """
    Parameters for DeprecateVariant
    """
    input: DeprecateVariantInput!
  ): DeprecateVariantPayload

  """
  Updated currently logged in Users's profile
  """
  editUser(
    """
    Parameters for EditUser
    """
    input: EditUserInput!
  ): EditUserPayload

  """
  Endorse an Assertion on behalf of an Organization
  """
  endorseAssertion(
    """
    Parameters for EndorseAssertion
    """
    input: EndorseAssertionInput!
  ): EndorseAssertionPayload

  """
  Flag an entity to signal to the editorial team that you believe there is an issue with it.
  """
  flagEntity(
    """
    Parameters for FlagEntity
    """
    input: FlagEntityInput!
  ): FlagEntityPayload

  """
  Generate a new API key for the current user.
  """
  generateApiKey(
    """
    Parameters for GenerateApiKey
    """
    input: GenerateApiKeyInput!
  ): GenerateApiKeyPayload

  """
  Perform moderation actions on an assertion such as accepting, rejecting, or reverting.
  """
  moderateAssertion(
    """
    Parameters for ModerateAssertion
    """
    input: ModerateAssertionInput!
  ): ModerateAssertionPayload

  """
  Perform moderation actions on an evidence item such as accepting, rejecting, or reverting.
  """
  moderateEvidenceItem(
    """
    Parameters for ModerateEvidenceItem
    """
    input: ModerateEvidenceItemInput!
  ): ModerateEvidenceItemPayload

  """
  Reject one or more revisions by ID or revision set ID. Any user may reject a
  Revision that they submitted themselves. Otherwise, the rejecting user must be
  an editor with valid conflict of interest statement on file.
  """
  rejectRevisions(
    """
    Parameters for RejectRevisions
    """
    input: RejectRevisionsInput!
  ): RejectRevisionsPayload

  """
  Resolve a flag on a CIViC entity indicating that it was either erroneously flagged or the issue has been resolved.
  Any user may resolve their own flag however only editors with valid conflict
  of interest statements can resolve other flags.
  """
  resolveFlag(
    """
    Parameters for ResolveFlag
    """
    input: ResolveFlagInput!
  ): ResolveFlagPayload

  """
  Revoke an API key for the current user.
  """
  revokeApiKey(
    """
    Parameters for RevokeApiKey
    """
    input: RevokeApiKeyInput!
  ): RevokeApiKeyPayload

  """
  Revoke an endorsement of an Assertion on behalf of an Organization
  """
  revokeEndorsement(
    """
    Parameters for RevokeEndorsement
    """
    input: RevokeEndorsementInput!
  ): RevokeEndorsementPayload

  """
  Propose adding a new Assertion to the CIViC database.
  """
  submitAssertion(
    """
    Parameters for SubmitAssertion
    """
    input: SubmitAssertionInput!
  ): SubmitAssertionPayload

  """
  Propose adding a new EvidenceItem to the CIViC database.
  """
  submitEvidence(
    """
    Parameters for SubmitEvidenceItem
    """
    input: SubmitEvidenceItemInput!
  ): SubmitEvidenceItemPayload

  """
  Create a new variant group.
  """
  submitVariantGroup(
    """
    Parameters for SubmitVariantGroup
    """
    input: SubmitVariantGroupInput!
  ): SubmitVariantGroupPayload

  """
  Subscribe to a CIViC entity in order to receive notifications about it.
  """
  subscribe(
    """
    Parameters for Subscribe
    """
    input: SubscribeInput!
  ): SubscribePayload

  """
  Suggest a Revision to an Assertion entity.
  """
  suggestAssertionRevision(
    """
    Parameters for SuggestAssertionRevision
    """
    input: SuggestAssertionRevisionInput!
  ): SuggestAssertionRevisionPayload

  """
  Suggest a Revision to an EvidenceItem entity.
  """
  suggestEvidenceItemRevision(
    """
    Parameters for SuggestEvidenceItemRevision
    """
    input: SuggestEvidenceItemRevisionInput!
  ): SuggestEvidenceItemRevisionPayload

  """
  Suggest a Revision to a Feature entity of instance type "Factor".
  """
  suggestFactorRevision(
    """
    Parameters for SuggestFactorRevision
    """
    input: SuggestFactorRevisionInput!
  ): SuggestFactorRevisionPayload

  """
  Suggest a Revision to a Variant entity.
  """
  suggestFactorVariantRevision(
    """
    Parameters for SuggestFactorVariantRevision
    """
    input: SuggestFactorVariantRevisionInput!
  ): SuggestFactorVariantRevisionPayload

  """
  Suggest a Revision to a Feature entity of instance type "Fusion".
  """
  suggestFusionRevision(
    """
    Parameters for SuggestFusionRevision
    """
    input: SuggestFusionRevisionInput!
  ): SuggestFusionRevisionPayload

  """
  Suggest a Revision to a Fusion entity.
  """
  suggestFusionVariantRevision(
    """
    Parameters for SuggestFusionVariantRevision
    """
    input: SuggestFusionVariantRevisionInput!
  ): SuggestFusionVariantRevisionPayload

  """
  Suggest a Revision to a Feature entity of instance type "Gene".
  """
  suggestGeneRevision(
    """
    Parameters for SuggestGeneRevision
    """
    input: SuggestGeneRevisionInput!
  ): SuggestGeneRevisionPayload

  """
  Suggest a Revision to a Variant entity.
  """
  suggestGeneVariantRevision(
    """
    Parameters for SuggestGeneVariantRevision
    """
    input: SuggestGeneVariantRevisionInput!
  ): SuggestGeneVariantRevisionPayload

  """
  Suggest a Revision to a MolecularProfile entity.
  """
  suggestMolecularProfileRevision(
    """
    Parameters for SuggestMolecularProfileRevision
    """
    input: SuggestMolecularProfileRevisionInput!
  ): SuggestMolecularProfileRevisionPayload

  """
  Suggest a source for curation in CIViC.
  """
  suggestSource(
    """
    Parameters for SuggestSource
    """
    input: SuggestSourceInput!
  ): SuggestSourcePayload

  """
  Suggested a Revision to a Variant Group entity
  """
  suggestVariantGroupRevision(
    """
    Parameters for SuggestVariantGroupRevision
    """
    input: SuggestVariantGroupRevisionInput!
  ): SuggestVariantGroupRevisionPayload

  """
  Unsubscribe from a CIViC entity to stop receiving notifications about it.
  """
  unsubscribe(
    """
    Parameters for Unsubscribe
    """
    input: UnsubscribeInput!
  ): UnsubscribePayload

  """
  Update the currently logged in User's Conflict of Interest statement
  """
  updateCoi(
    """
    Parameters for UpdateCoi
    """
    input: UpdateCoiInput!
  ): UpdateCoiPayload

  """
  Mark one or more notifications as read/unread. The notification IDs provided must belong to the requesting user.
  """
  updateNotificationStatus(
    """
    Parameters for UpdateNotificationStatus
    """
    input: UpdateNotificationStatusInput!
  ): UpdateNotificationStatusPayload

  """
  Update the status of a SourceSuggestion by ID. The user updating the SourceSuggestion must be signed in.
  """
  updateSourceSuggestionStatus(
    """
    Parameters for UpdateSourceSuggestionStatus
    """
    input: UpdateSourceSuggestionStatusInput!
  ): UpdateSourceSuggestionStatusPayload
}

type MyChemInfo {
  chebiDefinition: String
  chebiId: String
  chemblId: String
  chemblMoleculeType: String
  drugbankId: String
  fdaEpcCodes: [FdaCode!]!
  fdaMoaCodes: [FdaCode!]!
  firstApproval: String
  inchikey: String
  indications: [String!]!
  pharmgkbId: String
  pubchemCid: String
  rxnorm: String
}

type MyDiseaseInfo {
  diseaseOntologyExactSynonyms: [String!]!
  diseaseOntologyRelatedSynonyms: [String!]!
  doDef: String
  doDefCitations: [String!]!
  icd10: String
  icdo: String
  mesh: String
  mondoDef: String
  mondoId: String
  ncit: [String!]!
  omim: String
}

type MyVariantInfo {
  caddConsequence: [String!]!
  caddDetail: [String!]!
  caddPhred: Float
  caddScore: Float
  clinvarClinicalSignificance: [String!]!
  clinvarHgvsCoding: [String!]!
  clinvarHgvsGenomic: [String!]!
  clinvarHgvsNonCoding: [String!]!
  clinvarHgvsProtein: [String!]!
  clinvarId: Int
  clinvarOmim: String
  cosmicId: String
  dbnsfpInterproDomain: [String!]!
  dbsnpRsid: String
  eglClass: String
  eglHgvs: [String!]!
  eglProtein: String
  eglTranscript: String
  exacAlleleCount: Int
  exacAlleleFrequency: Float
  exacAlleleNumber: Int
  fathmmMklPrediction: String
  fathmmMklScore: Float
  fathmmPrediction: [String!]!
  fathmmScore: [Float!]!
  fitconsScore: Float
  gerp: Float
  gnomadExomeAlleleCount: Int
  gnomadExomeAlleleFrequency: Float
  gnomadExomeAlleleNumber: Int
  gnomadExomeFilter: String
  gnomadGenomeAlleleCount: Int
  gnomadGenomeAlleleFrequency: Float
  gnomadGenomeAlleleNumber: Int
  gnomadGenomeFilter: String
  lrtPrediction: String
  lrtScore: Float
  metalrPrediction: String
  metalrScore: Float
  metasvmPrediction: String
  metasvmScore: Float
  mutationassessorPrediction: [String!]!
  mutationassessorScore: [Float!]!
  mutationtasterPrediction: [String!]!
  mutationtasterScore: [Float!]!
  myVariantInfoId: String!
  phastcons100way: Float
  phastcons30way: Float
  phyloP100way: Float
  phyloP30way: Float
  polyphen2HdivPrediction: [String!]!
  polyphen2HdivScore: [Float!]!
  polyphen2HvarPrediction: [String!]!
  polyphen2HvarScore: [Float!]!
  proveanPrediction: [String!]!
  proveanScore: [Float!]!
  revelScore: [Float!]
  siftPrediction: [String!]!
  siftScore: [Float!]!
  siphy: Float
  snpeffSnpEffect: [String!]!
  snpeffSnpImpact: [String!]!
}

type NccnGuideline {
  id: Int!
  name: String!
}

type NcitDefinition {
  definition: String!
  source: String!
}

type NcitDetails {
  definitions: [NcitDefinition!]!
  synonyms: [NcitSynonym!]!
}

type NcitSynonym {
  name: String!
  source: String!
}

type NewsItem {
  contentHtml: String
  id: Int!
  publishedAt: ISO8601DateTime
  title: String!
}

type Notification {
  createdAt: ISO8601DateTime!
  event: Event!
  id: Int!
  notifiedUser: User!
  originatingUser: User!
  seen: Boolean!
  subscription: Subscription
  type: NotificationReason!
  updatedAt: ISO8601DateTime!
}

"""
The connection type for Notification.
"""
type NotificationConnection {
  """
  A list of edges.
  """
  edges: [NotificationEdge!]!

  """
  List of event types that have occurred on this entity.
  """
  eventTypes: [EventAction!]!

  """
  Users who have mentioned you.
  """
  mentioningUsers: [User!]!

  """
  A list of nodes.
  """
  nodes: [Notification!]!

  """
  List of subjects of the notifications in the stream
  """
  notificationSubjects: [EventSubjectWithCount!]!

  """
  List of all organizations who are involved in this notification stream.
  """
  organizations: [Organization!]!

  """
  Users who have performed an action (other than a mention) that created a notification.
  """
  originatingUsers: [User!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!

  """
  Count of unread notifications
  """
  unreadCount: Int!
}

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

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

enum NotificationReason {
  MENTION
  SUBSCRIPTION
}

"""
An input object that represents a field value that can be "unset" or changed to null.
To change the field's value to null, pass unset as true, otherwise pass in the desired value as value.
This is to work around two issues with the GraphQL spec: lack of support for unions in input types
and the inability to have an input object argument be both required _and_ nullable at the same time.
"""
input NullableAmpLevelTypeInput {
  """
  Set to true if you wish to set the field's value to null.
  """
  unset: Boolean

  """
  The desired value for the field. Mutually exclusive with unset.
  """
  value: AmpLevel
}

"""
An input object that represents a field value that can be "unset" or changed to null.
To change the field's value to null, pass unset as true, otherwise pass in the desired value as value.
This is to work around two issues with the GraphQL spec: lack of support for unions in input types
and the inability to have an input object argument be both required _and_ nullable at the same time.
"""
input NullableAreaOfExpertiseTypeInput {
  """
  Set to true if you wish to set the field's value to null.
  """
  unset: Boolean

  """
  The desired value for the field. Mutually exclusive with unset.
  """
  value: AreaOfExpertise
}

"""
An input object that represents a field value that can be "unset" or changed to null.
To change the field's value to null, pass unset as true, otherwise pass in the desired value as value.
This is to work around two issues with the GraphQL spec: lack of support for unions in input types
and the inability to have an input object argument be both required _and_ nullable at the same time.
"""
input NullableBooleanInput {
  """
  Set to true if you wish to set the field's value to null.
  """
  unset: Boolean

  """
  The desired value for the field. Mutually exclusive with unset.
  """
  value: Boolean
}

"""
An input object that represents a field value that can be "unset" or changed to null.
To change the field's value to null, pass unset as true, otherwise pass in the desired value as value.
This is to work around two issues with the GraphQL spec: lack of support for unions in input types
and the inability to have an input object argument be both required _and_ nullable at the same time.
"""
input NullableIDInput {
  """
  Set to true if you wish to set the field's value to null.
  """
  unset: Boolean

  """
  The desired value for the field. Mutually exclusive with unset.
  """
  value: ID
}

"""
An input object that represents a field value that can be "unset" or changed to null.
To change the field's value to null, pass unset as true, otherwise pass in the desired value as value.
This is to work around two issues with the GraphQL spec: lack of support for unions in input types
and the inability to have an input object argument be both required _and_ nullable at the same time.
"""
input NullableIntInput {
  """
  Set to true if you wish to set the field's value to null.
  """
  unset: Boolean

  """
  The desired value for the field. Mutually exclusive with unset.
  """
  value: Int
}

"""
An input object that represents a field value that can be "unset" or changed to null.
To change the field's value to null, pass unset as true, otherwise pass in the desired value as value.
This is to work around two issues with the GraphQL spec: lack of support for unions in input types
and the inability to have an input object argument be both required _and_ nullable at the same time.
"""
input NullableStringInput {
  """
  Set to true if you wish to set the field's value to null.
  """
  unset: Boolean

  """
  The desired value for the field. Mutually exclusive with unset.
  """
  value: String
}

"""
An input object that represents a field value that can be "unset" or changed to null.
To change the field's value to null, pass unset as true, otherwise pass in the desired value as value.
This is to work around two issues with the GraphQL spec: lack of support for unions in input types
and the inability to have an input object argument be both required _and_ nullable at the same time.
"""
input NullableTherapyInteractionTypeInput {
  """
  Set to true if you wish to set the field's value to null.
  """
  unset: Boolean

  """
  The desired value for the field. Mutually exclusive with unset.
  """
  value: TherapyInteraction
}

type ObjectField {
  objects: [ModeratedObjectField!]!
}

type ObjectFieldDiff {
  addedObjects: [ModeratedObjectField!]!
  currentObjects: [ModeratedObjectField!]!
  keptObjects: [ModeratedObjectField!]!
  removedObjects: [ModeratedObjectField!]!
  suggestedObjects: [ModeratedObjectField!]!
}

input OntologyTermSearchInput {
  operator: OntologyTermSearchOperator!
  value: String!
}

enum OntologyTermSearchOperator {
  """
  Equals
  """
  EQ

  """
  Include the matched term and any sibling terms
  """
  EQ_SELF_AND_SIBLINGS

  """
  Include the matched term along with all ancestor terms recursively
  """
  EQ_SELF_OR_ALL_ANCESTORS

  """
  Include the matched term and any descendant terms recursively
  """
  EQ_SELF_OR_ALL_DESCENDANTS

  """
  Include the matched term and any direct child terms
  """
  EQ_SELF_OR_DIRECT_CHILDREN

  """
  Include the matched term and its direct parent terms
  """
  EQ_SELF_OR_DIRECT_PARENTS

  """
  Does not equal
  """
  NE
}

type Organization {
  canEndorse: Boolean!
  description: String!
  eventCount: Int!
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): EventConnection!
  hasEndorsingSubgroups: Boolean!
  id: Int!
  isApprovedVcep: Boolean!
  memberCount: Int!
  members(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): UserConnection!
  mostRecentActivityTimestamp: ISO8601DateTime
  name: String!
  orgAndSuborgsStatsHash: Stats!
  orgStatsHash: Stats!
  profileImagePath(size: Int = 56): String
  ranks: Ranks!
  subGroups: [Organization!]!
  url: String!
}

"""
The connection type for Organization.
"""
type OrganizationConnection {
  """
  A list of edges.
  """
  edges: [OrganizationEdge!]!

  """
  A list of nodes.
  """
  nodes: [Organization!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

"""
Filter on organization id and whether or not to include the organization's subgroups
"""
input OrganizationFilter {
  """
  An array of Organization IDs. If any ID matches, the result will be returned.
  """
  ids: [Int!]

  """
  Whether or not to include the organization's subgroup.
  """
  includeSubgroups: Boolean = false

  """
  The organization name.
  """
  name: String
}

type OrganizationLeaderboards {
  commentsLeaderboard(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    window: TimeWindow
  ): LeaderboardOrganizationConnection!
  moderationLeaderboard(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    window: TimeWindow
  ): LeaderboardOrganizationConnection!
  revisionsLeaderboard(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    window: TimeWindow
  ): LeaderboardOrganizationConnection!
  submissionsLeaderboard(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    window: TimeWindow
  ): LeaderboardOrganizationConnection!
}

input OrganizationSort {
  """
  Available columns for sorting
  """
  column: OrganizationSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum OrganizationSortColumns {
  ACTIVITY_COUNT
  ID
  MEMBER_COUNT
  MOST_RECENT_ACTIVITY_TIMESTAMP
  NAME
}

"""
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 Phenotype {
  description: String
  hpoId: String!
  id: Int!
  link: String!
  name: String!
  url: String!
}

"""
The connection type for Phenotype.
"""
type PhenotypeConnection {
  """
  A list of edges.
  """
  edges: [PhenotypeEdge!]!

  """
  A list of nodes.
  """
  nodes: [Phenotype!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

type PhenotypePopover {
  assertionCount: Int!
  description: String
  evidenceItemCount: Int!
  hpoId: String!
  id: Int!
  link: String!
  molecularProfileCount: Int!
  name: String!
  url: String!
}

input PhenotypeSearchFilter {
  booleanOperator: BooleanOperator
  description: StringSearchInput
  hpoId: OntologyTermSearchInput
  id: IntSearchInput
  name: StringSearchInput
  subFilters: [PhenotypeSearchFilter!]
}

input PhenotypeSort {
  """
  Available columns for sorting
  """
  column: PhenotypeSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum PhenotypeSortColumns {
  ASSERTION_COUNT
  EVIDENCE_ITEM_COUNT
  HPO_ID
  NAME
}

type Query {
  """
  Find an ACMG code by CIViC ID
  """
  acmgCode(id: Int!): AcmgCode

  """
  Retrieve ACMG Code options as a typeahead
  """
  acmgCodesTypeahead(queryTerm: String!): [AcmgCode!]!

  """
  List and filter activities
  """
  activities(
    activityType: [ActivityTypeInput!]

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

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

    """
    Returns the first _n_ elements from the list.
    """
    first: Int
    includeAutomatedEvents: Boolean

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Filter activities on being linked to the endorsement with the given CIViC ID.
    """
    linkedEndorsementId: Int
    mode: EventFeedMode
    occurredAfter: ISO8601DateTime
    occurredBefore: ISO8601DateTime

    """
    Filter EIDs on the organization the evidence item was submitted under.
    """
    organization: OrganizationFilter

    """
    Sort order for the activities. Defaults to most recent.
    """
    sortBy: DateSort
    subject: [SubscribableQueryInput!]
    subjectType: [ActivitySubjectInput!]
    userId: [Int!]
  ): ActivityInterfaceConnection!

  """
  Find a CIViC activity record by CIViC ID
  """
  activity(id: Int!): ActivityInterface

  """
  Find an assertion by CIViC ID
  """
  assertion(id: Int!): Assertion

  """
  List and filter assertions.
  """
  assertions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Filtering on the AMP/ASCO/CAP category.
    """
    ampLevel: AmpLevel

    """
    Filtering on the assertion direction.
    """
    assertionDirection: EvidenceDirection

    """
    Filtering on the assertion type.
    """
    assertionType: EvidenceType

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

    """
    Exact match filtering of the assertions based on the internal CIViC disease id
    """
    diseaseId: Int

    """
    Substring filtering on disease name.
    """
    diseaseName: String

    """
    Filter AIDs by Organziations that have endorsed them. Specifying multiple
    IDs will return Assertions endorsed by any of the Organizations.
    """
    endorsingOrganizations: OrganizationFilter

    """
    Exact match filtering on the ID of evidence underlying the assertion.
    """
    evidenceId: Int

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

    """
    Exact match filtering on the ID of the assertion.
    """
    id: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Exact match filtering on the ID of the molecular_profile.
    """
    molecularProfileId: Int

    """
    Substring filtering on molecular profile name
    """
    molecularProfileName: String

    """
    Filter AIDs on the organization the evidence item was submitted under.
    """
    organization: OrganizationFilter

    """
    Exact match filtering of the assertions based on the internal CIViC phenotype id
    """
    phenotypeId: Int

    """
    Filtering on the assertion's significance.
    """
    significance: EvidenceSignificance

    """
    Columm and direction to sort evidence on.
    """
    sortBy: AssertionSort

    """
    Filtering on the status of the assertion.
    """
    status: EvidenceStatusFilter

    """
    Substring filtering on assertion description.
    """
    summary: String

    """
    Exact match filtering of the assertions based on the internal CIViC therapy id
    """
    therapyId: Int

    """
    Substring filtering on therapy name.
    """
    therapyName: String

    """
    Exact match filtering on the ID of the user who submitted the assertion.
    """
    userId: Int

    """
    Exact match filtering on the ID of the variant.
    """
    variantId: Int

    """
    Substring filtering on variant name.
    """
    variantName: String
  ): AssertionConnection!
  browseDiseases(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String
    diseaseAlias: String
    doid: String
    featureName: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int
    id: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    name: String
    sortBy: DiseasesSort
  ): BrowseDiseaseConnection!
  browseFeatures(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String
    diseaseName: String
    featureAlias: String
    featureFullName: String
    featureName: String
    featureType: FeatureInstanceTypes

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    sortBy: FeaturesSort
    therapyName: String
  ): BrowseFeatureConnection!
  browseMolecularProfiles(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    molecularProfileAlias: String
    molecularProfileName: String
    sortBy: MolecularProfilesSort
    therapyName: String
    variantId: Int
    variantName: String
  ): BrowseMolecularProfileConnection!

  """
  List and filter organizations.
  """
  browseOrganizations(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Exact match filtering on the id of the organization.
    """
    id: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Substring filtering on the name of the organization.
    """
    name: String

    """
    Columm and direction to sort evidence on.
    """
    sortBy: OrganizationSort
  ): BrowseOrganizationConnection!
  browsePhenotypes(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to phenotypes with a specific HPO ID
    """
    hpoId: String

    """
    Filter Phenotype on internal CIViC id
    """
    id: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Wildcard match on phenotype name (class)
    """
    name: String

    """
    Sort order for the phenotypes. Defaults to the highest evidence item count.
    """
    sortBy: PhenotypeSort
  ): BrowsePhenotypeConnection!
  browseSources(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String
    author: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String
    citationId: Int
    clinicalTrialId: Int

    """
    Returns the first _n_ elements from the list.
    """
    first: Int
    id: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]
    journal: String

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    name: String
    openAccess: Boolean
    sortBy: SourcesSort
    sourceType: SourceSource
    year: Int
  ): BrowseSourceConnection!
  browseTherapies(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Filter on a therapy's internal CIViC id
    """
    id: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Wildcard match on therapy name
    """
    name: String

    """
    Limit to therapies with a specific NCIT ID
    """
    ncitId: String

    """
    Sort order for the therapies. Defaults to the highest evidence item count.
    """
    sortBy: TherapySort
    therapyAlias: String
  ): BrowseTherapyConnection!

  """
  List and filter users.
  """
  browseUsers(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Filtering on name
    """
    name: String

    """
    Limit to users that belong to a certain organizations
    """
    organization: OrganizationFilter

    """
    Filtering on role.
    """
    role: UserRole

    """
    Sort user columns in ascending or decending order
    """
    sortBy: UsersSort

    """
    Filtering on username
    """
    username: String
  ): BrowseUserConnection!
  browseVariantGroups(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    name: String
    sortBy: VariantGroupsSort
    variantNames: String
  ): BrowseVariantGroupConnection!
  browseVariants(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String
    category: VariantCategories
    diseaseName: String
    featureName: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int
    hasNoVariantType: Boolean

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    sortBy: VariantsSort
    therapyName: String
    variantAlias: String
    variantGroupId: Int
    variantName: String
    variantTypeId: Int
    variantTypeName: String
  ): BrowseVariantConnection!

  """
  Find a ClinGen code by CIViC ID
  """
  clingenCode(id: Int!): ClingenCode

  """
  Retrieve Clingen Code options as a typeahead
  """
  clingenCodesTypeahead(queryTerm: String!): [ClingenCode!]!

  """
  Find a clinical trial by CIViC ID
  """
  clinicalTrial(id: Int!): ClinicalTrial

  """
  List and filter Clinical Trials from ClinicalTrials.gov.
  """
  clinicalTrials(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Filter to a Clinical Trial based on its internal CIViC id
    """
    id: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Wildcard match on clinical trial title
    """
    name: String

    """
    Limit to clinical trials with a specific NCT ID
    """
    nctId: String

    """
    Sort order for the clinical trials. Defaults to the highest source count.
    """
    sortBy: ClinicalTrialSort
  ): BrowseClinicalTrialConnection!

  """
  Find a comment by CIViC ID
  """
  comment(id: Int!): Comment

  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to comments on a certain subject.
    """
    subject: CommentableInput
  ): CommentConnection!
  contributors(
    """
    The entity to to return contributors for
    """
    subscribable: SubscribableInput!
  ): ContributingUsersSummary!

  """
  Fetch a list of countries for user profiles.
  """
  countries: [Country!]!
  dataReleases: [DataRelease!]!

  """
  Find a disease by CIViC ID
  """
  disease(id: Int!): Disease

  """
  Retrieve popover fields for a specific disease.
  """
  diseasePopover(id: Int!): DiseasePopover

  """
  Retrieve disease typeahead fields for a search term.
  """
  diseaseTypeahead(queryTerm: String!): [Disease!]!
  diseases(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Returns the first _n_ elements from the list.
    """
    first: Int
    id: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    name: String
  ): DiseaseConnection!

  """
  List and filter endorsements.
  """
  endorsements(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    CIViC Assertion ID that is being endorsed.
    """
    endorsedAssertionId: Int

    """
    CIViC Organization ID of the organization endorsing the assertion.
    """
    endorsingOrganizationId: Int

    """
    Limit to endorsements from a FDA-approved ClinGen SC-VCEPs.
    """
    endorsingOrganizationIsApprovedVcep: Boolean

    """
    CIViC User ID of the user endorsing the assertion.
    """
    endorsingUserId: Int

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Sort order for the endorsements. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to endorsements of a particular status
    """
    status: EndorsementStatus
  ): EndorsementConnection!

  """
  Retrieve entity type typeahead fields for a entity mention search term.
  """
  entityTypeahead(queryTerm: String!): [CommentTagSegment!]!

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]
    includeAutomatedEvents: Boolean

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    mode: EventFeedMode
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
    subject: SubscribableQueryInput
  ): EventConnection!

  """
  Find an evidence item by CIViC ID
  """
  evidenceItem(id: Int!): EvidenceItem

  """
  List and filter evidence items.
  """
  evidenceItems(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Exact match filtering on the ID of the assertion.
    """
    assertionId: Int

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

    """
    Exact match filtering of the evidence items based on the CIViC clinical trial id linked to the evidence item's source
    """
    clinicalTrialId: Int

    """
    Substring filtering on evidence item description.
    """
    description: String

    """
    Exact match filtering of the evidence items based on the internal CIViC disease id
    """
    diseaseId: Int

    """
    Substring filtering on disease name.
    """
    diseaseName: String

    """
    Filtering on the evidence direction.
    """
    evidenceDirection: EvidenceDirection

    """
    Filtering on the evidence level.
    """
    evidenceLevel: EvidenceLevel

    """
    Filtering on the evidence rating. Valid values: 1, 2, 3, 4, 5
    """
    evidenceRating: Int

    """
    Filtering on the evidence type.
    """
    evidenceType: EvidenceType

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

    """
    Exact match filtering on the ID of the evidence item.
    """
    id: Int

    """
    Filter to evidence matching a list of EIDs
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Exact match filtering on the ID of the molecular profile.
    """
    molecularProfileId: Int

    """
    Substring filtering on molecular profile name
    """
    molecularProfileName: String

    """
    Filter EIDs on the organization the evidence item was submitted under.
    """
    organization: OrganizationFilter

    """
    Exact match filtering of the evidence items based on the internal CIViC phenotype id
    """
    phenotypeId: Int

    """
    Filtering on the evidence significance.
    """
    significance: EvidenceSignificance

    """
    Columm and direction to sort evidence on.
    """
    sortBy: EvidenceSort

    """
    Exact match filtering of the evidence items based on the interal CIViC source id
    """
    sourceId: Int

    """
    Filtering on the evidence status.
    """
    status: EvidenceStatusFilter

    """
    Exact match filtering of the evidence items based on the internal CIViC therapy id
    """
    therapyId: Int

    """
    Substring filtering on therapy name.
    """
    therapyName: String

    """
    Exact match filtering on the ID of the user who submitted the evidence item.
    """
    userId: Int

    """
    Exact match filtering on the ID of the variant.
    """
    variantId: Int

    """
    Filtering on the evidence variant origin.
    """
    variantOrigin: VariantOrigin
  ): EvidenceItemConnection!

  """
  Find a single gene by CIViC ID or NCIt ID
  """
  factor(id: Int, ncitId: String): Factor

  """
  List and filter factors.
  """
  factors(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit factors by the status of attached evidence.
    """
    evidenceStatusFilter: AssociatedEvidenceStatusFilter

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    List of Factor names to return
    """
    name: [String!]

    """
    List of NCIt Codes to return Factors for
    """
    ncitIt: [String!]
  ): FactorConnection!

  """
  Find a single feature by CIViC ID
  """
  feature(id: Int): Feature

  """
  Retrieve Features of a specific instance type for a search term.
  """
  featureTypeahead(featureType: FeatureInstanceTypes, queryTerm: String!): [Feature!]!

  """
  Find a flag by CIViC ID
  """
  flag(id: Int!): Flag

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Returns the first _n_ elements from the list.
    """
    first: Int
    flaggable: FlaggableInput

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!

  """
  Find a single gene by CIViC ID
  """
  fusion(id: Int): Fusion

  """
  List and filter fusions.
  """
  fusions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit fusions by the status of attached evidence.
    """
    evidenceStatusFilter: AssociatedEvidenceStatusFilter

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

    """
    CIViC ID of one of the Gene partners
    """
    genePartnerId: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): FusionConnection!

  """
  Find a single gene by CIViC ID or Entrez symbol
  """
  gene(entrezSymbol: String, id: Int): Gene

  """
  List and filter genes.
  """
  genes(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    List of Entrez Gene IDs to return results for
    """
    entrezIds: [Int!]

    """
    List of Entrez Gene symbols to return results for
    """
    entrezSymbols: [String!]

    """
    Limit genes by the status of attached evidence.
    """
    evidenceStatusFilter: AssociatedEvidenceStatusFilter

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): GeneConnection!

  """
  Find a molecular profile by CIViC ID
  """
  molecularProfile(id: Int!): MolecularProfile

  """
  List and filter molecular profiles.
  """
  molecularProfiles(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Find Molecular Profiles based on the ClinGen Allele Registry ID of one of its involed Variants
    """
    alleleRegistryId: String

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

    """
    Limit molecular profiles by the status of attached evidence.
    """
    evidenceStatusFilter: AssociatedEvidenceStatusFilter

    """
    Filter molecular profiles to the CIViC ID of the feature(s) involved.
    """
    featureId: Int

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

    """
    Filter molecular profiles to the CIViC id of the gene(s) involved.
    """
    geneId: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Left anchored filtering for molecular profile name and aliases.
    """
    name: String

    """
    Filter molecular profiles by the CIViC ID of an involved variant.
    """
    variantId: Int
  ): MolecularProfileConnection!

  """
  Find a NCCN Guideline by CIViC ID
  """
  nccnGuideline(id: Int!): NccnGuideline

  """
  Retrieve NCCN Guideline options as a typeahead
  """
  nccnGuidelinesTypeahead(queryTerm: String!): [NccnGuideline!]!
  newsItems: [NewsItem!]!

  """
  List and filter notifications for the logged in user.
  """
  notifications(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Returns the first _n_ elements from the list.
    """
    first: Int
    includeRead: Boolean = false

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    notificationReason: NotificationReason
    organizationId: Int
    originatingObject: SubscribableInput
    originatingUserId: Int
    subscriptionId: Int
  ): NotificationConnection!

  """
  Find an organization by CIViC ID
  """
  organization(id: Int!): Organization
  organizationLeaderboards: OrganizationLeaderboards!

  """
  List and filter organizations.
  """
  organizations(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Exact match filtering on the id of the organization.
    """
    id: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Substring filtering on the name of the organization.
    """
    name: String
  ): OrganizationConnection!

  """
  Find a phenotype by CIViC ID
  """
  phenotype(id: Int!): Phenotype

  """
  Retrieve popover fields for a specific phenotype.
  """
  phenotypePopover(id: Int!): PhenotypePopover

  """
  Retrieve phenotype typeahead fields for a search term.
  """
  phenotypeTypeahead(queryTerm: String!): [Phenotype!]!

  """
  List and filter Phenotypes from the Human Phenotype Ontology.
  """
  phenotypes(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to phenotypes with a specific HPO ID
    """
    hpoId: String

    """
    Filter Phenotype on internal CIViC id
    """
    id: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Wildcard match on phenotype name (class)
    """
    name: String
  ): PhenotypeConnection!
  previewCommentText(commentText: String!): [CommentBodySegment!]!
  previewMolecularProfileName(structure: MolecularProfileComponentInput): MolecularProfileNamePreview!

  """
  Check to see if a citation ID for a source not already in CIViC exists in an external database.
  """
  remoteCitation(citationId: String!, sourceType: SourceSource!): String

  """
  Find a revision by CIViC ID
  """
  revision(id: Int!): Revision

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions accepted, rejected, or superseded by a certain user
    """
    resolvingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus

    """
    Limit to revisions of a specific CIViC entity
    """
    subject: ModeratedInput
  ): RevisionConnection!
  search(
    """
    Should matches come back highlighted
    """
    highlightMatches: Boolean

    """
    The term to query for
    """
    query: String!

    """
    The types of objects to search. Omitting this value searches all.
    """
    types: [SearchableEntities!]
  ): [SearchResult!]!
  searchAssertions(createPermalink: Boolean = false, query: AssertionSearchFilter!): AdvancedSearchResult!
  searchByPermalink(permalinkId: String!): AdvancedSearchResult!
  searchDiseases(createPermalink: Boolean = false, query: DiseaseSearchFilter!): AdvancedSearchResult!
  searchEvidenceItems(createPermalink: Boolean = false, query: EvidenceItemSearchFilter!): AdvancedSearchResult!
  searchFeatures(createPermalink: Boolean = false, query: FeatureSearchFilter!): AdvancedSearchResult!
  searchMolecularProfiles(createPermalink: Boolean = false, query: MolecularProfileSearchFilter!): AdvancedSearchResult!
  searchPhenotypes(createPermalink: Boolean = false, query: PhenotypeSearchFilter!): AdvancedSearchResult!
  searchSources(createPermalink: Boolean = false, query: SourceSearchFilter!): AdvancedSearchResult!
  searchTherapies(createPermalink: Boolean = false, query: TherapySearchFilter!): AdvancedSearchResult!
  searchUsers(createPermalink: Boolean = false, query: UserSearchFilter!): AdvancedSearchResult!
  searchVariantTypes(createPermalink: Boolean = false, query: VariantTypeSearchFilter!): AdvancedSearchResult!
  searchVariants(createPermalink: Boolean = false, query: VariantSearchFilter!): AdvancedSearchResult!

  """
  Find a source by CIViC ID
  """
  source(id: Int!): Source

  """
  Retrieve popover fields for a specific source.
  """
  sourcePopover(id: Int!): SourcePopover

  """
  Given the parameters in a source suggestion, fetch the values to populate the add evidence form
  """
  sourceSuggestionValues(diseaseId: Int, molecularProfileId: Int, sourceId: Int): SourceSuggestionValues!
  sourceSuggestions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String
    citation: String
    citationId: Int
    comment: String
    diseaseName: String

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    molecularProfileName: String
    sortBy: SourceSuggestionsSort
    sourceId: Int
    sourceType: SourceSource
    status: SourceSuggestionStatus
    submitter: String
    submitterId: Int
  ): SourceSuggestionConnection!

  """
  Provide suggestions for sources based on a partial citation ID
  """
  sourceTypeahead(citationId: String!, sourceType: SourceSource!): [Source!]!

  """
  List and filter sources.
  """
  sources(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    List of citation IDs to return results for
    """
    citationId: [String!]

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): SourceConnection!

  """
  Get the active subscription for the entity and logged in user, if any
  """
  subscriptionForEntity(subscribable: SubscribableInput!): Subscription

  """
  List and filter Therapies from the NCI Thesaurus.
  """
  therapies(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to therapies that are linked to at least one non-rejected Evidence Item or Assertion
    """
    hasLinkedEvidence: Boolean

    """
    Filter on a therapy's internal CIViC id
    """
    id: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Wildcard match on therapy name
    """
    name: String

    """
    Limit to therapies with a specific NCIT ID
    """
    ncitId: String
    therapyAlias: String
  ): TherapyConnection!

  """
  Find a therapy by CIViC ID
  """
  therapy(id: Int!): Therapy

  """
  Retrieve popover fields for a specific therapy.
  """
  therapyPopover(id: Int!): TherapyPopover

  """
  Retrieve therapy typeahead fields for a search term.
  """
  therapyTypeahead(queryTerm: String!): [Therapy!]!
  timepointStats: CivicTimepointStats!
  user(id: Int!): User
  userLeaderboards: UserLeaderboards!

  """
  Retrieve user type typeahead fields for a search term.
  """
  userTypeahead(queryTerm: String!): [User!]!

  """
  List and filter users.
  """
  users(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Filtering on name
    """
    name: String

    """
    Limit to users that belong to a certain organizations
    """
    organization: OrganizationFilter

    """
    Filtering on role.
    """
    role: UserRole

    """
    Filtering on username
    """
    username: String
  ): UserConnection!
  validateRevisionsForAcceptance(
    """
    A list of CIViC Revisions IDs to validate
    """
    revisionIds: [Int!]!
  ): ValidationErrors!

  """
  Find a variant by CIViC ID
  """
  variant(id: Int!): VariantInterface

  """
  Find a variant group by CIViC ID
  """
  variantGroup(id: Int!): VariantGroup

  """
  List and filter variant groups.
  """
  variantGroups(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): VariantGroupConnection!

  """
  Find a variant type by CIViC ID
  """
  variantType(id: Int!): VariantType

  """
  Retrieve popover fields for a specific variant type.
  """
  variantTypePopover(id: Int!): VariantTypePopover

  """
  Retrieve variant type typeahead fields for a search term.
  """
  variantTypeTypeahead(queryTerm: String!): [VariantType!]!

  """
  List and filter Variant Types from the Sequence Ontology.
  """
  variantTypes(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Filter variant types by internal CIViC id a feature
    """
    featureId: Int

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

    """
    Filter variant types by internal CIViC id of a gene
    """
    geneId: Int

    """
    Filter variant types by internal CIViC id
    """
    id: Int

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Wildcard match on variant type name
    """
    name: String

    """
    Limit to variant types  with a specific Sequence Ontology ID
    """
    soid: String

    """
    Sort order for the variant type. Defaults to most recent.
    """
    sortBy: VariantTypeSort
  ): BrowseVariantTypeConnection!

  """
  List and filter variants.
  """
  variants(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Find a CIViC Variant based on its ClinGen Allele Registry ID
    """
    alleleRegistryId: String

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

    """
    Feature that the variants are associated with, limited to only Factor type features.
    """
    factorId: Int

    """
    Feature that the variants are associated with.
    """
    featureId: Int

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

    """
    Feature that the variants are associated with, limited to only Gene type features.
    """
    geneId: Int

    """
    Return Variants lacking an assigned VariantType
    """
    hasNoVariantType: Boolean

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Left anchored filtering for variant name and aliases.
    """
    name: String
    sortBy: VariantMenuSort

    """
    A list of CIViC identifiers for variant types
    """
    variantTypeIds: [Int!]
  ): VariantInterfaceConnection!
  variantsTypeahead(featureId: Int, queryTerm: String!): [Variant!]!
  viewer: User
}

type Ranks {
  commentsRank: LeaderboardRank
  moderationRank: LeaderboardRank
  revisionsRank: LeaderboardRank
  submissionsRank: LeaderboardRank
}

enum ReadStatus {
  READ
  UNREAD
}

enum ReferenceBuild {
  GRCH37
  GRCH38
  NCBI36
}

type RejectRevisionsActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  revisions: [Revision!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of RejectRevisions
"""
input RejectRevisionsInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text explaining the reasoning for rejecting this Revision. Will be attached as a comment.
  """
  comment: String!

  """
  A list of IDs of the Revisions to reject.
  """
  ids: [Int!]

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int

  """
  The ID of a revision set.
  """
  revisionSetId: Int
}

"""
Autogenerated return type of RejectRevisions.
"""
type RejectRevisionsPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The rejected Revisions.
  """
  revisions: [Revision!]!
}

type ResolveFlagActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  flag: Flag!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of ResolveFlag
"""
input ResolveFlagInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing the reason for resolving the flag. Will be attached as a comment.
  """
  comment: String!

  """
  The ID of the flag to resolve.
  """
  id: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of ResolveFlag.
"""
type ResolveFlagPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String
  flag: Flag
}

type Revision implements Commentable & EventOriginObject & EventSubject {
  acceptanceActivity: AcceptRevisionsActivity

  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  createdAt: ISO8601DateTime!
  creationActivity: SuggestRevisionSetActivity
  currentValue: JSON

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  fieldName: String!
  id: Int!
  lastCommentEvent: Event
  link: String!
  linkoutData: LinkoutData!
  name: String!
  rejectionActivity: RejectRevisionsActivity
  resolutionActivity: ActivityInterface
  revisionSetId: Int!
  status: RevisionStatus!
  subject: EventSubject!
  suggestedValue: JSON
  supersedingActivity: AcceptRevisionsActivity
  updatedAt: ISO8601DateTime!
}

"""
The connection type for Revision.
"""
type RevisionConnection {
  """
  A list of edges.
  """
  edges: [RevisionEdge!]!

  """
  A list of nodes.
  """
  nodes: [Revision!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  List of all fields that have at least one revision.
  """
  revisedFieldNames: [FieldName!]!

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!

  """
  When filtered on a subject, the total number of revisions for that subject,
  irregardless of other filters. Null when no subject provided.
  """
  unfilteredCountForSubject: Int

  """
  List of all users that have accepted/rejected/superseded a revision to this entity.
  """
  uniqueResolvers: [User!]!

  """
  List of all users that have submitted a revision to this entity.
  """
  uniqueRevisors: [User!]!
}

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

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

type RevisionResult {
  """
  Name of the field on the moderated entity that the Revision pertains to.
  """
  fieldName: String!

  """
  ID of the Revision.
  """
  id: Int!

  """
  Was this Revision newly created as a result of this request?
  """
  newlyCreated: Boolean!

  """
  An identifier that can be used to group Revisions proposed at the same time.
  """
  revisionSetId: Int!
}

input RevisionSearchFilter {
  booleanOperator: BooleanOperator
  createdAt: DateSearchInput
  creatingUser: UserSearchFilter
  fieldName: StringSearchInput
  moderatingUser: UserSearchFilter
  status: RevisionStatusSearchInput
  subFilters: [RevisionSearchFilter!]
  subjectId: IntSearchInput
  subjectType: ModeratedEntitiesTypeSearchInput
}

type RevisionSet implements EventSubject {
  createdAt: ISO8601DateTime!
  displayName: String!

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  id: Int!
  link: String!
  name: String!
  revisions: [Revision!]!
  updatedAt: ISO8601DateTime!
}

enum RevisionStatus {
  ACCEPTED
  NEW
  REJECTED
  SUPERSEDED
}

input RevisionStatusSearchInput {
  operator: EnumSearchOperator!
  value: RevisionStatus!
}

"""
Autogenerated input type of RevokeApiKey
"""
input RevokeApiKeyInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  ID of the API key to be revoked.
  """
  id: Int!
}

"""
Autogenerated return type of RevokeApiKey.
"""
type RevokeApiKeyPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Indicates whether the API key was successfully revoked.
  """
  success: Boolean!
}

type RevokeEndorsementActivity implements ActivityInterface {
  assertion: Assertion!
  createdAt: ISO8601DateTime!
  endorsement: Endorsement!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of RevokeEndorsement
"""
input RevokeEndorsementInput {
  """
  ID of the Assertion
  """
  assertionId: Int!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing the reason for revoking this Endorsement.
  """
  comment: String!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of RevokeEndorsement.
"""
type RevokeEndorsementPayload {
  """
  The newly unendorsed Assertion
  """
  assertion: Assertion!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String
}

type ScalarField {
  value: String
}

type ScalarFieldDiff {
  left: String!
  right: String!
}

type SearchResult {
  id: Int!
  matchingText: String!
  name: String!
  resultType: SearchableEntities!
}

enum SearchableEntities {
  ASSERTION
  DISEASE
  EVIDENCE_ITEM
  FEATURE
  MOLECULAR_PROFILE
  REVISION
  THERAPY
  VARIANT
  VARIANT_GROUP
}

enum SortDirection {
  ASC
  DESC
}

type Source implements Commentable & EventSubject {
  abstract: String
  ascoAbstractId: Int
  authorString: String
  citation: String
  citationId: String!
  clinicalTrials: [ClinicalTrial!]

  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  deprecated: Boolean!
  displayType: String!

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  fullJournalTitle: String
  fullyCurated: Boolean!
  id: Int!
  journal: String
  lastCommentEvent: Event
  link: String!
  name: String!
  openAccess: Boolean!
  pmcId: String
  publicationDate: String
  publicationDay: Int
  publicationMonth: Int
  publicationYear: Int
  retracted: Boolean!
  retractionDate: ISO8601DateTime
  retractionNature: String
  retractionReasons: String
  sourceType: SourceSource!
  sourceUrl: String
  title: String
}

"""
The connection type for Source.
"""
type SourceConnection {
  """
  A list of edges.
  """
  edges: [SourceEdge!]!

  """
  A list of nodes.
  """
  nodes: [Source!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

type SourcePopover implements Commentable & EventSubject {
  abstract: String
  ascoAbstractId: Int
  authorString: String
  citation: String
  citationId: String!
  clinicalTrials: [ClinicalTrial!]

  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  deprecated: Boolean!
  displayType: String!

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  evidenceItemCount: Int!
  fullJournalTitle: String
  fullyCurated: Boolean!
  id: Int!
  journal: String
  lastCommentEvent: Event
  link: String!
  name: String!
  openAccess: Boolean!
  pmcId: String
  publicationDate: String
  publicationDay: Int
  publicationMonth: Int
  publicationYear: Int
  retracted: Boolean!
  retractionDate: ISO8601DateTime
  retractionNature: String
  retractionReasons: String
  sourceType: SourceSource!
  sourceUrl: String
  title: String
}

input SourceSearchFilter {
  abstract: StringSearchInput
  booleanOperator: BooleanOperator
  citation: StringSearchInput
  citationId: StringSearchInput
  id: IntSearchInput
  isRetracted: BooleanSearchInput
  journal: StringSearchInput
  sourceType: SourceSourceTypeSearchInput
  subFilters: [SourceSearchFilter!]
  title: StringSearchInput
}

enum SourceSource {
  ASCO
  ASH
  PUBMED
}

input SourceSourceTypeSearchInput {
  operator: EnumSearchOperator!
  value: SourceSource!
}

type SourceStub {
  citationId: Int!
  id: Int!
  sourceType: SourceSource!
}

type SourceSuggestion implements EventOriginObject & EventSubject {
  createdAt: ISO8601DateTime!
  creationActivity: SuggestSourceActivity!
  disease: Disease

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  id: Int!
  initialComment: String!
  lastStatusUpdateActivity: UpdateSourceSuggestionStatusActivity
  link: String!
  molecularProfile: MolecularProfile
  name: String!
  reason: String
  source: Source
  status: SourceSuggestionStatus!
  user: User
}

"""
The connection type for SourceSuggestion.
"""
type SourceSuggestionConnection {
  """
  A list of edges.
  """
  edges: [SourceSuggestionEdge!]!

  """
  The total number of records in this set.
  """
  filteredCount: Int!

  """
  The last time the data in this browse table was refreshed
  """
  lastUpdated: ISO8601DateTime!

  """
  A list of nodes.
  """
  nodes: [SourceSuggestion!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records of this type, regardless of any filtering.
  """
  totalCount: Int!
}

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

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

enum SourceSuggestionStatus {
  CURATED
  NEW
  REJECTED
}

type SourceSuggestionValues {
  disease: Disease
  molecularProfile: MolecularProfile
  source: Source
}

input SourceSuggestionsSort {
  """
  Available columns for sorting
  """
  column: SourceSuggestionsSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum SourceSuggestionsSortColumns {
  CITATION
  CITATION_ID
  CREATED_AT
  DISEASE_NAME
  SOURCE_TYPE
  SUBMITTER
}

input SourcesSort {
  """
  Available columns for sorting
  """
  column: SourcesSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum SourcesSortColumns {
  AUTHORS
  CITATION_ID
  EVIDENCE_COUNT
  JOURNAL
  NAME
  SOURCE_TYPE
  SUGGESTION_COUNT
  YEAR
}

type Stats {
  acceptedAssertions: Int!
  acceptedEvidenceItems: Int!
  appliedRevisions: Int!
  comments: Int!
  revisions: Int!
  submittedAssertions: Int!
  submittedEvidenceItems: Int!
  suggestedSources: Int!
}

input StringSearchInput {
  operator: StringSearchOperator!
  value: String!
}

enum StringSearchOperator {
  CONTAINS
  DOES_NOT_CONTAIN
  EQ
  NE
  STARTS_WITH
}

type SubmitAssertionActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of SubmitAssertion
"""
input SubmitAssertionInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing any further context or details about your proposed Assertion. Will be attached as a comment.
  """
  comment: String

  """
  The desired state of the Assertion's editable fields.
  """
  fields: AssertionFields!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of SubmitAssertion.
"""
type SubmitAssertionPayload {
  """
  The newly created Assertion
  """
  assertion: Assertion!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String
}

type SubmitEvidenceItemActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of SubmitEvidenceItem
"""
input SubmitEvidenceItemInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing any further context or details about your proposed EvidenceItem. Will be attached as a comment.
  """
  comment: String

  """
  The desired state of the EvidenceItems's editable fields.
  """
  fields: EvidenceItemFields!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of SubmitEvidenceItem.
"""
type SubmitEvidenceItemPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The newly created EvidenceItem
  """
  evidenceItem: EvidenceItem!
}

"""
Autogenerated input type of SubmitVariantGroup
"""
input SubmitVariantGroupInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  A description of the variant group.
  """
  description: String

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

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int

  """
  A list of CIViC source IDs to associate with the variant group.
  """
  sourceIds: [Int!]!

  """
  A list of CIViC variant IDs to add to the variant group.
  """
  variantIds: [Int!]!
}

"""
Autogenerated return type of SubmitVariantGroup.
"""
type SubmitVariantGroupPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The newly created Variant Group
  """
  variantGroup: VariantGroup!
}

type Subscribable {
  entityType: SubscribableEntities!
  id: Int!
}

"""
Enumeration of all subscribable CIViC entities.
"""
enum SubscribableEntities {
  ASSERTION
  EVIDENCE_ITEM
  FEATURE
  MOLECULAR_PROFILE
  REVISION
  SOURCE_SUGGESTION
  VARIANT
  VARIANT_GROUP
}

"""
Entity to subscribe to.
"""
input SubscribableInput {
  """
  Type of subscribable entity.
  """
  entityType: SubscribableEntities!

  """
  ID of subscribable entity.
  """
  id: Int!
}

"""
Entity to subscribe to.
"""
input SubscribableQueryInput {
  """
  Type of subscribable entity.
  """
  entityType: SubscribableEntities!

  """
  ID of subscribable entity.
  """
  id: Int!

  """
  Include child entities of the requested subscribable
  """
  includeChildren: Boolean = false
}

"""
Autogenerated input type of Subscribe
"""
input SubscribeInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  A list of one or more entities to subscribe to, each identified by its ID and type.
  """
  subscribables: [SubscribableInput!]!

  """
  Do you want to subscribe to related child entities of the subscribed entities?
  IE: If you subscribe to a Gene, do you want to receive notifications for its Variants as well?
  """
  subscribeToChildren: Boolean = false
}

"""
Autogenerated return type of Subscribe.
"""
type SubscribePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The newly created subscription objects.
  """
  subscriptions: [Subscription!]!
}

type Subscription {
  id: Int!
  subscribable: EventSubject!
}

"""
Autogenerated input type of SuggestAssertionRevision
"""
input SuggestAssertionRevisionInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing the reason for the change. Will be attached to the Revision as a comment.
  """
  comment: String!

  """
  The desired state of the Assertion's editable fields if the change were applied.
  If no change is desired for a particular field, pass in the current value of that field.
  """
  fields: AssertionFields!

  """
  The ID of the Assertion to suggest a Revision to.
  """
  id: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of SuggestAssertionRevision.
"""
type SuggestAssertionRevisionPayload {
  """
  The Assertion the user has proposed a Revision to.
  """
  assertion: Assertion!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  A list of Revisions generated as a result of this suggestion.
  If an existing Revision exactly matches the proposed one, it will be returned instead.
  This is indicated via the 'newlyCreated' Boolean.
  Revisions are stored on a per-field basis.
  The changesetId can be used to group Revisions proposed at the same time.
  """
  results: [RevisionResult!]!
}

"""
Autogenerated input type of SuggestEvidenceItemRevision
"""
input SuggestEvidenceItemRevisionInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing the reason for the change. Will be attached to the Revision as a comment.
  """
  comment: String!

  """
  The desired state of the EvidenceItems's editable fields if the change were applied.
  If no change is desired for a particular field, pass in the current value of that field.
  """
  fields: EvidenceItemFields!

  """
  The ID of the EvidenceItem to suggest a Revision to.
  """
  id: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of SuggestEvidenceItemRevision.
"""
type SuggestEvidenceItemRevisionPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The EvidenceItem the user has proposed a Revision to.
  """
  evidenceItem: EvidenceItem!

  """
  A list of Revisions generated as a result of this suggestion.
  If an existing Revision exactly matches the proposed one, it will be returned instead.
  This is indicated via the 'newlyCreated' Boolean.
  Revisions are stored on a per-field basis.
  The changesetId can be used to group Revisions proposed at the same time.
  """
  results: [RevisionResult!]!
}

"""
Autogenerated input type of SuggestFactorRevision
"""
input SuggestFactorRevisionInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing the reason for the change. Will be attached to the Revision as a comment.
  """
  comment: String!

  """
  The desired state of the Factors's editable fields if the change were applied.
  If no change is desired for a particular field, pass in the current value of that field.
  """
  fields: FactorFields!

  """
  The ID of the Feature of instance type "Factor" to suggest a Revision to.
  """
  id: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of SuggestFactorRevision.
"""
type SuggestFactorRevisionPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The Factor the user has proposed a Revision to.
  """
  factor: Factor!

  """
  A list of Revisions generated as a result of this suggestion.
  If an existing Revision exactly matches the proposed one, it will be returned instead.
  This is indicated via the 'newlyCreated' Boolean.
  Revisions are stored on a per-field basis.
  The changesetId can be used to group Revisions proposed at the same time.
  """
  results: [RevisionResult!]!
}

"""
Autogenerated input type of SuggestFactorVariantRevision
"""
input SuggestFactorVariantRevisionInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing the reason for the change. Will be attached to the Revision as a comment.
  """
  comment: String

  """
  The desired state of the Variant's editable fields if the change were applied.
  If no change is desired for a particular field, pass in the current value of that field.
  """
  fields: FactorVariantFields!

  """
  The ID of the Variant to suggest a Revision to.
  """
  id: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of SuggestFactorVariantRevision.
"""
type SuggestFactorVariantRevisionPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  A list of Revisions generated as a result of this suggestion.
  If an existing Revision exactly matches the proposed one, it will be returned instead.
  This is indicated via the 'newlyCreated' Boolean.
  Revisions are stored on a per-field basis.
  The changesetId can be used to group Revisions proposed at the same time.
  """
  results: [RevisionResult!]!

  """
  The Variant the user has proposed a Revision to.
  """
  variant: FactorVariant!
}

"""
Autogenerated input type of SuggestFusionRevision
"""
input SuggestFusionRevisionInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing the reason for the change. Will be attached to the Revision as a comment.
  """
  comment: String!

  """
  The desired state of the Fusion's editable fields if the change were applied.
  If no change is desired for a particular field, pass in the current value of that field.
  """
  fields: FusionFields!

  """
  The ID of the Feature of instance type "Fusion" to suggest a Revision to.
  """
  id: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of SuggestFusionRevision.
"""
type SuggestFusionRevisionPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The Fusion the user has proposed a Revision to.
  """
  fusion: Fusion!

  """
  A list of Revisions generated as a result of this suggestion.
  If an existing Revision exactly matches the proposed one, it will be returned instead.
  This is indicated via the 'newlyCreated' Boolean.
  Revisions are stored on a per-field basis.
  The changesetId can be used to group Revisions proposed at the same time.
  """
  results: [RevisionResult!]!
}

"""
Autogenerated input type of SuggestFusionVariantRevision
"""
input SuggestFusionVariantRevisionInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing the reason for the change. Will be attached to the Revision as a comment.
  """
  comment: String

  """
  The desired state of the Variant's editable fields if the change were applied.
  If no change is desired for a particular field, pass in the current value of that field.
  """
  fields: FusionVariantFields!

  """
  The ID of the Variant to suggest a Revision to.
  """
  id: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of SuggestFusionVariantRevision.
"""
type SuggestFusionVariantRevisionPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  A list of Revisions generated as a result of this suggestion.
  If an existing Revision exactly matches the proposed one, it will be returned instead.
  This is indicated via the 'newlyCreated' Boolean.
  Revisions are stored on a per-field basis.
  The changesetId can be used to group Revisions proposed at the same time.
  """
  results: [RevisionResult!]!

  """
  The Variant the user has proposed a Revision to.
  """
  variant: FusionVariant!
}

"""
Autogenerated input type of SuggestGeneRevision
"""
input SuggestGeneRevisionInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing the reason for the change. Will be attached to the Revision as a comment.
  """
  comment: String!

  """
  The desired state of the Gene's editable fields if the change were applied.
  If no change is desired for a particular field, pass in the current value of that field.
  """
  fields: GeneFields!

  """
  The ID of the Feature of instance type "Gene" to suggest a Revision to.
  """
  id: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of SuggestGeneRevision.
"""
type SuggestGeneRevisionPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The Gene the user has proposed a Revision to.
  """
  gene: Gene!

  """
  A list of Revisions generated as a result of this suggestion.
  If an existing Revision exactly matches the proposed one, it will be returned instead.
  This is indicated via the 'newlyCreated' Boolean.
  Revisions are stored on a per-field basis.
  The changesetId can be used to group Revisions proposed at the same time.
  """
  results: [RevisionResult!]!
}

"""
Autogenerated input type of SuggestGeneVariantRevision
"""
input SuggestGeneVariantRevisionInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing the reason for the change. Will be attached to the Revision as a comment.
  """
  comment: String

  """
  The desired state of the Variant's editable fields if the change were applied.
  If no change is desired for a particular field, pass in the current value of that field.
  """
  fields: GeneVariantFields!

  """
  The ID of the Variant to suggest a Revision to.
  """
  id: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of SuggestGeneVariantRevision.
"""
type SuggestGeneVariantRevisionPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  A list of Revisions generated as a result of this suggestion.
  If an existing Revision exactly matches the proposed one, it will be returned instead.
  This is indicated via the 'newlyCreated' Boolean.
  Revisions are stored on a per-field basis.
  The changesetId can be used to group Revisions proposed at the same time.
  """
  results: [RevisionResult!]!

  """
  The Variant the user has proposed a Revision to.
  """
  variant: GeneVariant!
}

"""
Autogenerated input type of SuggestMolecularProfileRevision
"""
input SuggestMolecularProfileRevisionInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing the reason for the change. Will be attached to the Revision as a comment.
  """
  comment: String!

  """
  The desired state of the Molecular Profile's editable fields if the change were applied.
  If no change is desired for a particular field, pass in the current value of that field.
  """
  fields: MolecularProfileFields!

  """
  The ID of the MolecularProfile to suggest a Revision to.
  """
  id: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of SuggestMolecularProfileRevision.
"""
type SuggestMolecularProfileRevisionPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The MolecularProfile the user has proposed a Revision to.
  """
  molecularProfile: MolecularProfile!

  """
  A list of Revisions generated as a result of this suggestion.
  If an existing Revision exactly matches the proposed one, it will be returned instead.
  This is indicated via the 'newlyCreated' Boolean.
  Revisions are stored on a per-field basis.
  The changesetId can be used to group Revisions proposed at the same time.
  """
  results: [RevisionResult!]!
}

type SuggestRevisionSetActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  revisionSet: RevisionSet!
  revisions: [Revision!]!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

type SuggestSourceActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  sourceSuggestion: SourceSuggestion!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of SuggestSource
"""
input SuggestSourceInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text explaining why this source should be curated for CIViC evidence.
  """
  comment: String!

  """
  Internal CIViC ID for the applicable disease, if any.
  """
  diseaseId: Int

  """
  Internal CIViC ID for the applicable molecular profile, if any.
  """
  molecularProfileId: Int

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int

  """
  Internal CIViC ID for the source to suggest. Use the AddRemoteCitation mutation to populate this if needed.
  """
  sourceId: Int!
}

"""
Autogenerated return type of SuggestSource.
"""
type SuggestSourcePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The newly created Source Suggestion
  """
  sourceSuggestion: SourceSuggestion!
}

"""
Autogenerated input type of SuggestVariantGroupRevision
"""
input SuggestVariantGroupRevisionInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Text describing the reason for the change. Will be attached to the Revision as a comment.
  """
  comment: String!

  """
  The desired state of the VariantGroup's editable fields if the change were applied.
  If no change is desired for a particular field, pass in the current value of that field.
  """
  fields: VariantGroupFields!

  """
  The ID of the VariantGroup you are suggesting a Revision to
  """
  id: Int!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int
}

"""
Autogenerated return type of SuggestVariantGroupRevision.
"""
type SuggestVariantGroupRevisionPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  A list of Revisions generated as a result of this suggestion.
  If an existing Revision exactly matches the proposed one, it will be returned instead.
  This is indicated via the 'newlyCreated' Boolean.
  Revisions are stored on a per-field basis.
  The changesetId can be used to group Revisions proposed at the same time.
  """
  results: [RevisionResult!]!

  """
  The VariantGroup the user has proposed a Revision to.
  """
  variantGroup: VariantGroup!
}

enum TaggableEntity {
  ASSERTION
  EVIDENCE_ITEM
  FEATURE
  MOLECULAR_PROFILE
  REVISION
  ROLE
  VARIANT
  VARIANT_GROUP
}

"""
Mentioned entity to filter comments on.
"""
input TaggableEntityInput {
  """
  The type of the entity
  """
  entityType: TaggableEntity!

  """
  ID of the mentioned entity
  """
  id: Int!
}

type Therapy {
  deprecated: Boolean!
  id: Int!
  link: String!
  myChemInfo: MyChemInfo
  name: String!
  ncitId: String
  therapyAliases: [String!]!
  therapyUrl: String
}

"""
The connection type for Therapy.
"""
type TherapyConnection {
  """
  A list of edges.
  """
  edges: [TherapyEdge!]!

  """
  A list of nodes.
  """
  nodes: [Therapy!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

enum TherapyInteraction {
  COMBINATION
  SEQUENTIAL
  SUBSTITUTES
}

input TherapyInteractionTypeSearchInput {
  operator: EnumSearchOperator!
  value: TherapyInteraction!
}

type TherapyPopover {
  assertionCount: Int!
  deprecated: Boolean!
  evidenceItemCount: Int!
  id: Int!
  link: String!
  molecularProfileCount: Int!
  myChemInfo: MyChemInfo
  name: String!
  ncitId: String
  therapyAliases: [String!]!
  therapyUrl: String
}

input TherapySearchFilter {
  booleanOperator: BooleanOperator
  deprecated: BooleanSearchInput
  id: IntSearchInput
  name: StringSearchInput
  ncitId: OntologyTermSearchInput
  subFilters: [TherapySearchFilter!]
  therapyAliases: StringSearchInput
}

input TherapySort {
  """
  Available columns for sorting
  """
  column: TherapySortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum TherapySortColumns {
  ASSERTION_COUNT
  EVIDENCE_ITEM_COUNT
  NAME
  NCIT_ID
}

type TimePointCounts {
  allTime: Int!
  newThisMonth: Int!
  newThisWeek: Int!
  newThisYear: Int!
}

enum TimeWindow {
  ALL_TIME
  LAST_MONTH
  LAST_WEEK
  LAST_YEAR
}

"""
Autogenerated input type of Unsubscribe
"""
input UnsubscribeInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  A list of one or more entities to unsubscribe from, each identified by its ID and type.
  """
  subscribables: [SubscribableInput!]!

  """
  Do you also wish to stop receiving notifications from child entities?
  IE: If you unsubscribe from a Gene do you want to stop receiving notifications for its Variants as well?
  """
  unsubscribeFromChildren: Boolean = false
}

"""
Autogenerated return type of Unsubscribe.
"""
type UnsubscribePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The entities that were unsubscribed from.
  """
  unsubscribedEntities: [Subscribable!]!
}

"""
Autogenerated input type of UpdateCoi
"""
input UpdateCoiInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Does the user report having a conflict of interest? Mark true if so.
  """
  coiPresent: Boolean!

  """
  If the user reports a potential conflict of interest please provide a brief summary of it.
  """
  statement: String
}

"""
Autogenerated return type of UpdateCoi.
"""
type UpdateCoiPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String
  coiStatement: Coi!
}

"""
Autogenerated input type of UpdateNotificationStatus
"""
input UpdateNotificationStatusInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  A list of one or more Notification IDs.
  """
  ids: [Int!]!

  """
  The new status of the selected notifications.
  """
  newStatus: ReadStatus!
}

"""
Autogenerated return type of UpdateNotificationStatus.
"""
type UpdateNotificationStatusPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  A list of the notifications in their new state.
  """
  notifications: [Notification!]!
}

type UpdateSourceSuggestionStatusActivity implements ActivityInterface {
  createdAt: ISO8601DateTime!
  events: [Event!]!
  id: Int!
  note: String
  organization: Organization
  parsedNote: [CommentBodySegment!]!
  sourceSuggestion: SourceSuggestion!
  subject: EventSubject!
  user: User!
  verbiage: String!
}

"""
Autogenerated input type of UpdateSourceSuggestionStatus
"""
input UpdateSourceSuggestionStatusInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The ID of the SourceSuggestion to update.
  """
  id: Int!

  """
  The desired status of the SourceSuggestion.
  """
  newStatus: SourceSuggestionStatus!

  """
  The ID of the organization to credit the user's contributions to.
  If the user belongs to a single organization or no organizations, this field is not required.
  This field is required if the user belongs to more than one organization.
  The user must belong to the organization provided.
  """
  organizationId: Int

  """
  The justification for marking a source as curated/rejected
  """
  reason: String
}

"""
Autogenerated return type of UpdateSourceSuggestionStatus.
"""
type UpdateSourceSuggestionStatusPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The updated SourceSuggestion.
  """
  sourceSuggestion: SourceSuggestion!
}

type User {
  apiKeys: [ApiKey!]!
  areaOfExpertise: AreaOfExpertise
  bio: String
  country: Country
  displayName: String!
  email: String
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): EventConnection!
  facebookProfile: String
  id: Int!
  joinDate: ISO8601DateTime
  linkedinProfile: String
  mostRecentActivityTimestamp: ISO8601DateTime
  mostRecentConflictOfInterestStatement: Coi
  mostRecentEvent: Event
  mostRecentOrganizationId: Int
  name: String

  """
  Filterable list of notifications for the logged in user.
  """
  notifications(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Filter the response to include only notifications generated by certain actions (ex: commenting).
    """
    eventType: EventAction

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

    """
    Filter the response to include only notifications generated by a particular subscription.
    """
    includeSeen: Boolean = false

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Filter the response to include only notifications of a certain type (ex: mentions).
    """
    notificationType: NotificationReason

    """
    Filter the response to include only notifications generated by a particular subscription.
    """
    subscriptionId: Int
  ): NotificationConnection
  orcid: String
  organizations: [Organization!]!
  organizationsWithEndorsementPrivileges: [Organization!]!
  profileImagePath(size: Int = 56): String
  ranks: Ranks!
  role: UserRole!
  statsHash: Stats!
  twitterHandle: String
  url: String
  username: String!
}

"""
The connection type for User.
"""
type UserConnection {
  """
  A list of edges.
  """
  edges: [UserEdge!]!

  """
  A list of nodes.
  """
  nodes: [User!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

"""
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
}

type UserLeaderboards {
  commentsLeaderboard(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    role: UserRole
    window: TimeWindow
  ): LeaderboardUserConnection!
  moderationLeaderboard(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    role: UserRole
    window: TimeWindow
  ): LeaderboardUserConnection!
  revisionsLeaderboard(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    role: UserRole
    window: TimeWindow
  ): LeaderboardUserConnection!
  submissionsLeaderboard(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    role: UserRole
    window: TimeWindow
  ): LeaderboardUserConnection!
}

enum UserRole {
  ADMIN
  CURATOR
  EDITOR
}

input UserSearchFilter {
  booleanOperator: BooleanOperator
  createdAt: DateSearchInput
  id: IntSearchInput
  name: StringSearchInput
  organizationId: IntSearchInput
  organizationName: StringSearchInput
  subFilters: [CommentSearchFilter!]
  username: StringSearchInput
}

input UsersSort {
  """
  Available columns for sorting
  """
  column: UsersSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum UsersSortColumns {
  EVIDENCE_COUNT
  ID
  LAST_ACTION
  NAME
  REVISION_COUNT
  ROLE
}

type ValidationErrors {
  genericErrors: [String!]!
  validationErrors: [FieldValidationError!]!
}

type Variant implements Commentable & EventOriginObject & EventSubject & Flaggable & MolecularProfileComponent & VariantInterface & WithRevisions {
  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  creationActivity: CreateVariantActivity
  deprecated: Boolean!
  deprecationActivity: DeprecateVariantActivity
  deprecationReason: VariantDeprecationReason

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  feature: Feature!
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastCommentEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  molecularProfiles(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): MolecularProfileConnection!
  name: String!
  openRevisionCount: Int!

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  singleVariantMolecularProfile: MolecularProfile!
  singleVariantMolecularProfileId: Int!
  variantAliases: [String!]!
  variantTypes: [VariantType!]!
}

type VariantAlias {
  name: String!
}

enum VariantCategories {
  FACTOR
  FUSION
  GENE
}

"""
Representation of a Variant's membership in a Molecular Profile.
"""
input VariantComponent {
  """
  When set to true, this means the NOT operator will be applied to the Variant in the Molecluar Profile.
  """
  not: Boolean! = false

  """
  The ID of the Variant involved in the Molecular Profile.
  """
  variantId: Int!
}

type VariantCoordinate implements EventSubject & WithRevisions {
  chromosome: String
  coordinateType: VariantCoordinateType!
  ensemblVersion: Int

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  name: String!
  openRevisionCount: Int!
  referenceBases: String
  referenceBuild: ReferenceBuild
  representativeTranscript: String

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  start: Int
  stop: Int
  variantBases: String
}

enum VariantCoordinateType {
  FIVE_PRIME_FUSION_COORDINATE
  GENE_VARIANT_COORDINATE
  THREE_PRIME_FUSION_COORDINATE
}

enum VariantDeprecationReason {
  DUPLICATE
  FEATURE_DEPRECATED
  INVALID
  OTHER
}

input VariantDeprecationReasonTypeSearchInput {
  operator: EnumSearchOperator!
  value: VariantDeprecationReason!
}

type VariantGroup implements Commentable & EventSubject & Flaggable & WithRevisions {
  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  description: String!

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastCommentEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  name: String!
  openRevisionCount: Int!

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  sources: [Source!]!

  """
  List and filter variants.
  """
  variants(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Find a CIViC Variant based on its ClinGen Allele Registry ID
    """
    alleleRegistryId: String

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

    """
    Feature that the variants are associated with, limited to only Factor type features.
    """
    factorId: Int

    """
    Feature that the variants are associated with.
    """
    featureId: Int

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

    """
    Feature that the variants are associated with, limited to only Gene type features.
    """
    geneId: Int

    """
    Return Variants lacking an assigned VariantType
    """
    hasNoVariantType: Boolean

    """
    Filter by internal CIViC ids
    """
    ids: [Int!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Left anchored filtering for variant name and aliases.
    """
    name: String
    sortBy: VariantMenuSort

    """
    A list of CIViC identifiers for variant types
    """
    variantTypeIds: [Int!]
  ): VariantInterfaceConnection!
}

"""
The connection type for VariantGroup.
"""
type VariantGroupConnection {
  """
  A list of edges.
  """
  edges: [VariantGroupEdge!]!

  """
  A list of nodes.
  """
  nodes: [VariantGroup!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

"""
Fields on a VariantGroup that curators may propose revisions to.
"""
input VariantGroupFields {
  """
  The VariantGroups's description/summary text.
  """
  description: NullableStringInput!

  """
  The VariantGroups's name.
  """
  name: String!

  """
  Source IDs cited by the VariantGroup's summary.
  """
  sourceIds: [Int!]!

  """
  Variants in this VariantGroup.
  """
  variantIds: [Int!]!
}

input VariantGroupsSort {
  """
  Available columns for sorting
  """
  column: VariantGroupsSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum VariantGroupsSortColumns {
  EVIDENCE_ITEM_COUNT
  GENE_NAMES
  NAME
  VARIANT_COUNT
  VARIANT_NAMES
}

"""
A taggable/linkable component of a molecular profile
"""
interface VariantInterface implements Commentable & EventOriginObject & EventSubject & Flaggable & MolecularProfileComponent & WithRevisions {
  """
  List and filter comments.
  """
  comments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to comments that mention a certain entity
    """
    mentionedEntity: TaggableEntityInput

    """
    Limit to comments that mention a certain user role
    """
    mentionedRole: UserRole

    """
    Limit to comments that mention a certain user
    """
    mentionedUserId: Int

    """
    Limit to comments by a certain user
    """
    originatingUserId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort
  ): CommentConnection!
  creationActivity: CreateVariantActivity
  deprecated: Boolean!
  deprecationActivity: DeprecateVariantActivity
  deprecationReason: VariantDeprecationReason

  """
  List and filter events for an object
  """
  events(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
    organizationId: Int
    originatingUserId: Int

    """
    Sort order for the events. Defaults to most recent.
    """
    sortBy: DateSort
  ): EventConnection!
  feature: Feature!
  flagged: Boolean!

  """
  List and filter flags.
  """
  flags(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Limit to flags added by a certain user
    """
    flaggingUserId: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to flags resolved by a certain user
    """
    resolvingUserId: Int

    """
    Sort order for the flags. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to flags in a particular state
    """
    state: FlagState
  ): FlagConnection!
  id: Int!
  lastAcceptedRevisionEvent: Event
  lastCommentEvent: Event
  lastSubmittedRevisionEvent: Event
  link: String!
  molecularProfiles(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): MolecularProfileConnection!
  name: String!
  openRevisionCount: Int!

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
  singleVariantMolecularProfile: MolecularProfile!
  singleVariantMolecularProfileId: Int!
  variantAliases: [String!]!
  variantTypes: [VariantType!]!
}

"""
The connection type for VariantInterface.
"""
type VariantInterfaceConnection {
  """
  A list of edges.
  """
  edges: [VariantInterfaceEdge!]!

  """
  A list of nodes.
  """
  nodes: [VariantInterface!]!

  """
  Total number of pages, based on filtered count and pagesize.
  """
  pageCount: Int!

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

  """
  The total number of records in this filtered collection.
  """
  totalCount: Int!
}

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

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

input VariantMenuSort {
  """
  Available columns for sorting
  """
  column: VariantMenuSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum VariantMenuSortColumns {
  COORDINATE_END
  COORDINATE_START
  NAME
}

enum VariantOrigin {
  COMBINED
  COMMON_GERMLINE
  MIXED
  NA
  RARE_GERMLINE
  SOMATIC
  UNKNOWN
}

input VariantOriginTypeSearchInput {
  operator: EnumSearchOperator!
  value: VariantOrigin!
}

input VariantSearchFilter {
  booleanOperator: BooleanOperator
  comment: CommentSearchFilter
  coordinates: CoordinateSearchInput
  creatingUser: UserSearchFilter
  deprecatingUser: UserSearchFilter
  deprecationReason: VariantDeprecationReasonTypeSearchInput
  feature: FeatureSearchFilter
  id: IntSearchInput
  isDeprecated: BooleanSearchInput
  isFlagged: BooleanSearchInput
  molecularProfile: MolecularProfileSearchFilter
  name: StringSearchInput
  openRevisionCount: IntSearchInput
  revisions: RevisionSearchFilter
  singleVariantMolecularProfile: MolecularProfileSearchFilter
  subFilters: [VariantSearchFilter!]
  variantAlias: StringSearchInput
  variantType: VariantTypeSearchFilter
}

type VariantType {
  description: String!
  id: Int!
  link: String!
  name: String!
  soid: String!
  url: String
}

type VariantTypePopover {
  description: String!
  id: Int!
  link: String!
  name: String!
  soid: String!
  url: String
  variantCount: Int!
}

input VariantTypeSearchFilter {
  booleanOperator: BooleanOperator
  description: StringSearchInput
  id: IntSearchInput
  name: StringSearchInput
  soid: OntologyTermSearchInput
  subFilters: [VariantTypeSearchFilter!]
}

input VariantTypeSort {
  """
  Available columns for sorting
  """
  column: VariantTypeSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum VariantTypeSortColumns {
  NAME
  SOID
  VARIANT_COUNT
}

input VariantsSort {
  """
  Available columns for sorting
  """
  column: VariantsSortColumns!

  """
  Sort direction
  """
  direction: SortDirection!
}

enum VariantsSortColumns {
  diseaseName
  evidenceItemCount
  featureName
  therapyName
  variantName
}

"""
A CIViC entity that can have revisions proposed to it.
"""
interface WithRevisions {
  lastAcceptedRevisionEvent: Event
  lastSubmittedRevisionEvent: Event
  openRevisionCount: Int!

  """
  List and filter revisions.
  """
  revisions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

    """
    Limit to revisions on a particular field.
    """
    fieldName: String

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

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Limit to revisions by a certain user
    """
    originatingUserId: Int

    """
    Limit to revisions suggested as part of a single Revision Set.
    """
    revisionSetId: Int

    """
    Sort order for the comments. Defaults to most recent.
    """
    sortBy: DateSort

    """
    Limit to revisions with a certain status
    """
    status: RevisionStatus
  ): RevisionConnection!
}
