'type AllView {
  _class: String
  name: String
  url: String
}

type BranchImpl {
  _class: String
  _links: BranchImpllinks
  displayName: String
  estimatedDurationInMillis: Int
  fullDisplayName: String
  fullName: String
  latestRun: PipelineRunImpl
  name: String
  organization: String
  parameters: [StringParameterDefinition]
  permissions: BranchImplpermissions
  pullRequest: String
  weatherScore: Int
}

type BranchImpllinks {
  _class: String
  actions: Link
  queue: Link
  runs: Link
  self: Link
}

type BranchImplpermissions {
  _class: String
  create: Boolean
  read: Boolean
  start: Boolean
  stop: Boolean
}

type CauseAction {
  _class: String
  causes: [CauseUserIdCause]
}

type CauseUserIdCause {
  _class: String
  shortDescription: String
  userId: String
  userName: String
}

type ClockDifference {
  _class: String
  diff: Int
}

type ComputerSet {
  _class: String
  busyExecutors: Int
  computer: [HudsonMasterComputer]
  displayName: String
  totalExecutors: Int
}

type DefaultCrumbIssuer {
  _class: String
  crumb: String
  crumbRequestField: String
}

type DiskSpaceMonitorDescriptorDiskSpace {
  _class: String
  path: String
  size: Int
  timestamp: Int
}

type EmptyChangeLogSet {
  _class: String
  kind: String
}

type FavoriteImpl {
  _class: String
  _links: FavoriteImpllinks
  item: PipelineImpl
}

type FavoriteImpllinks {
  _class: String
  self: Link
}

type FreeStyleBuild {
  _class: String
  actions: [CauseAction]
  building: Boolean
  builtOn: String
  changeSet: EmptyChangeLogSet
  description: String
  displayName: String
  duration: Int
  estimatedDuration: Int
  executor: String
  fullDisplayName: String
  id: String
  keepLog: Boolean
  number: Int
  queueId: Int
  result: String
  timestamp: Int
  url: String
}

type FreeStyleProject {
  _class: String
  actions: [FreeStyleProjectactions]
  buildable: Boolean
  builds: [FreeStyleBuild]
  color: String
  concurrentBuild: Boolean
  description: String
  displayName: String
  displayNameOrNull: String
  firstBuild: FreeStyleBuild
  fullDisplayName: String
  fullName: String
  healthReport: [FreeStyleProjecthealthReport]
  inQueue: Boolean
  keepDependencies: Boolean
  lastBuild: FreeStyleBuild
  lastCompletedBuild: FreeStyleBuild
  lastFailedBuild: String
  lastStableBuild: FreeStyleBuild
  lastSuccessfulBuild: FreeStyleBuild
  lastUnstableBuild: String
  lastUnsuccessfulBuild: String
  name: String
  nextBuildNumber: Int
  queueItem: String
  scm: NullSCM
  url: String
}

type FreeStyleProjectactions {
  _class: String
}

type FreeStyleProjecthealthReport {
  _class: String
  description: String
  iconClassName: String
  iconUrl: String
  score: Int
}

type GithubOrganization {
  _class: String
  _links: GithubOrganizationlinks
  jenkinsOrganizationPipeline: Boolean
  name: String
}

type GithubOrganizationlinks {
  _class: String
  repositories: Link
  self: Link
}

type GithubScm {
  _class: String
  _links: GithubScmlinks
  credentialId: String
  id: String
  uri: String
}

type GithubScmlinks {
  _class: String
  self: Link
}

type Hudson {
  _class: String
  assignedLabels: [HudsonassignedLabels]
  description: String
  jobs: [FreeStyleProject]
  mode: String
  nodeDescription: String
  nodeName: String
  numExecutors: Int
  primaryView: AllView
  quietingDown: Boolean
  slaveAgentPort: Int
  unlabeledLoad: UnlabeledLoadStatistics
  useCrumbs: Boolean
  useSecurity: Boolean
  views: [AllView]
}

type HudsonMasterComputer {
  _class: String
  displayName: String
  executors: [HudsonMasterComputerexecutors]
  icon: String
  iconClassName: String
  idle: Boolean
  jnlpAgent: Boolean
  launchSupported: Boolean
  loadStatistics: Label1
  manualLaunchAllowed: Boolean
  monitorData: HudsonMasterComputermonitorData
  numExecutors: Int
  offline: Boolean
  offlineCause: String
  offlineCauseReason: String
  temporarilyOffline: Boolean
}

type HudsonMasterComputerexecutors {
  _class: String
  currentExecutable: FreeStyleBuild
  idle: Boolean
  likelyStuck: Boolean
  number: Int
  progress: Int
}

type HudsonMasterComputermonitorData {
  _class: String
  hudson_node_monitors_ArchitectureMonitor: String
  hudson_node_monitors_ClockMonitor: ClockDifference
  hudson_node_monitors_DiskSpaceMonitor: DiskSpaceMonitorDescriptorDiskSpace
  hudson_node_monitors_ResponseTimeMonitor: ResponseTimeMonitorData
  hudson_node_monitors_SwapSpaceMonitor: SwapSpaceMonitorMemoryUsage2
  hudson_node_monitors_TemporarySpaceMonitor: DiskSpaceMonitorDescriptorDiskSpace
}

type HudsonassignedLabels {
  _class: String
}

type InputStepImpl {
  _class: String
  _links: InputStepImpllinks
  id: String
  message: String
  ok: String
  parameters: [StringParameterDefinition]
  submitter: String
}

type InputStepImpllinks {
  _class: String
  self: Link
}

type Label1 {
  _class: String
}

type Link {
  _class: String
  href: String
}

type ListView {
  _class: String
  description: String
  jobs: [FreeStyleProject]
  name: String
  url: String
}

type MultibranchPipeline {
  _class: String
  branchNames: [String]
  displayName: String
  estimatedDurationInMillis: Int
  latestRun: String
  name: String
  numberOfFailingBranches: Int
  numberOfFailingPullRequests: Int
  numberOfSuccessfulBranches: Int
  numberOfSuccessfulPullRequests: Int
  organization: String
  totalNumberOfBranches: Int
  totalNumberOfPullRequests: Int
  weatherScore: Int
}

type Mutation {
  # Delete queue item from an organization pipeline queue
  deletePipelineQueueItem(organization: String!, pipeline: String!, queue: String!): String
  # Create a new job using job configuration, or copied from an existing job
  postCreateItem(Content_Type: String, Jenkins_Crumb: String, body: String, from: String, mode: String, name: String!): String
  # Create a new view using view configuration
  postCreateView(Content_Type: String, Jenkins_Crumb: String, body: String, name: String!): String
  # Build a job
  postJobBuild(Jenkins_Crumb: String, json: String!, name: String!, token: String): String
  # Update job configuration
  postJobConfig(Jenkins_Crumb: String, body: String!, name: String!): String
  # Delete a job
  postJobDelete(Jenkins_Crumb: String, name: String!): String
  # Disable a job
  postJobDisable(Jenkins_Crumb: String, name: String!): String
  # Enable a job
  postJobEnable(Jenkins_Crumb: String, name: String!): String
  # Stop a job
  postJobLastBuildStop(Jenkins_Crumb: String, name: String!): String
  # Replay an organization pipeline run
  postPipelineRun(organization: String!, pipeline: String!, run: String!): QueueItemImpl
  # Start a build for an organization pipeline
  postPipelineRuns(organization: String!, pipeline: String!): QueueItemImpl
  # Update view configuration
  postViewConfig(Jenkins_Crumb: String, body: String!, name: String!): String
  # Favorite/unfavorite a pipeline
  putPipelineFavorite(body: putPipelineFavorite_bodyInput!, organization: String!, pipeline: String!): FavoriteImpl
  # Stop a build of an organization pipeline
  putPipelineRun(blocking: String, organization: String!, pipeline: String!, run: String!, timeOutInSecs: Int): PipelineRun
}

type NullSCM {
  _class: String
}

type Organisation {
  _class: String
  name: String
}

type Pipeline {
  _class: String
  displayName: String
  estimatedDurationInMillis: Int
  fullName: String
  latestRun: PipelinelatestRun
  name: String
  organization: String
  weatherScore: Int
}

type PipelineActivity {
  _class: String
  artifacts: [PipelineActivityartifacts]
  commitId: String
  durationInMillis: Int
  enQueueTime: String
  endTime: String
  estimatedDurationInMillis: Int
  id: String
  organization: String
  pipeline: String
  result: String
  runSummary: String
  startTime: String
  state: String
  type: String
}

type PipelineActivityartifacts {
  _class: String
  name: String
  size: Int
  url: String
}

type PipelineFolderImpl {
  _class: String
  displayName: String
  fullName: String
  name: String
  numberOfFolders: Int
  numberOfPipelines: Int
  organization: String
}

type PipelineImpl {
  _class: String
  _links: PipelineImpllinks
  displayName: String
  estimatedDurationInMillis: Int
  fullName: String
  latestRun: String
  name: String
  organization: String
  weatherScore: Int
}

type PipelineImpllinks {
  _class: String
  actions: Link
  queue: Link
  runs: Link
  self: Link
}

type PipelineRun {
  _class: String
  artifacts: [PipelineRunartifacts]
  commitId: String
  durationInMillis: Int
  enQueueTime: String
  endTime: String
  estimatedDurationInMillis: Int
  id: String
  organization: String
  pipeline: String
  result: String
  runSummary: String
  startTime: String
  state: String
  type: String
}

type PipelineRunImpl {
  _class: String
  _links: PipelineRunImpllinks
  commitId: String
  durationInMillis: Int
  enQueueTime: String
  endTime: String
  estimatedDurationInMillis: Int
  id: String
  organization: String
  pipeline: String
  result: String
  runSummary: String
  startTime: String
  state: String
  type: String
}

type PipelineRunImpllinks {
  _class: String
  actions: Link
  log: Link
  nodes: Link
  self: Link
  steps: Link
}

type PipelineRunNode {
  _class: String
  displayName: String
  durationInMillis: Int
  edges: [PipelineRunNodeedges]
  id: String
  result: String
  startTime: String
  state: String
}

type PipelineRunNodeedges {
  _class: String
  id: String
}

type PipelineRunartifacts {
  _class: String
  name: String
  size: Int
  url: String
}

type PipelineStepImpl {
  _class: String
  _links: PipelineStepImpllinks
  displayName: String
  durationInMillis: Int
  id: String
  input: InputStepImpl
  result: String
  startTime: String
  state: String
}

type PipelineStepImpllinks {
  _class: String
  actions: Link
  self: Link
}

type PipelinelatestRun {
  _class: String
  artifacts: [PipelinelatestRunartifacts]
  commitId: String
  durationInMillis: Int
  enQueueTime: String
  endTime: String
  estimatedDurationInMillis: Int
  id: String
  organization: String
  pipeline: String
  result: String
  runSummary: String
  startTime: String
  state: String
  type: String
}

type PipelinelatestRunartifacts {
  _class: String
  name: String
  size: Int
  url: String
}

type Query {
  # Retrieve authenticated user details for an organization
  getAuthenticatedUser(organization: String!): User
  # Get a list of class names supported by a given class
  getClasses(class: String!): String
  # Retrieve computer details
  getComputer(depth: Int!): ComputerSet
  # Retrieve CSRF protection token
  getCrumb: DefaultCrumbIssuer
  # Retrieve Jenkins details
  getJenkins: Hudson
  # Retrieve job details
  getJob(name: String!): FreeStyleProject
  # Retrieve job configuration
  getJobConfig(name: String!): String
  # Retrieve job\'s last build details
  getJobLastBuild(name: String!): FreeStyleBuild
  # Retrieve job\'s build progressive text output
  getJobProgressiveText(name: String!, number: String!, start: String!): String
  # Retrieve JSON Web Key
  getJsonWebKey(key: Int!): String
  # Retrieve JSON Web Token
  getJsonWebToken(expiryTimeInMins: Int, maxExpiryTimeInMins: Int): String
  # Retrieve organization details
  getOrganisation(organization: String!): Organisation
  # Retrieve all organizations details
  getOrganisations: [Organisation]
  # Retrieve pipeline details for an organization
  getPipeline(organization: String!, pipeline: String!): Pipeline
  # Retrieve all activities details for an organization pipeline
  getPipelineActivities(organization: String!, pipeline: String!): [PipelineActivity]
  # Retrieve branch details for an organization pipeline
  getPipelineBranch(branch: String!, organization: String!, pipeline: String!): BranchImpl
  # Retrieve branch run details for an organization pipeline
  getPipelineBranchRun(branch: String!, organization: String!, pipeline: String!, run: String!): PipelineRun
  # Retrieve all branches details for an organization pipeline
  getPipelineBranches(organization: String!, pipeline: String!): MultibranchPipeline
  # Retrieve pipeline folder for an organization
  getPipelineFolder(folder: String!, organization: String!): PipelineFolderImpl
  # Retrieve pipeline details for an organization folder
  getPipelineFolderPipeline(folder: String!, organization: String!, pipeline: String!): PipelineImpl
  # Retrieve queue details for an organization pipeline
  getPipelineQueue(organization: String!, pipeline: String!): [QueueItemImpl]
  # Retrieve run details for an organization pipeline
  getPipelineRun(organization: String!, pipeline: String!, run: String!): PipelineRun
  # Get log for a pipeline run
  getPipelineRunLog(download: Boolean, organization: String!, pipeline: String!, run: String!, start: Int): String
  # Retrieve run node details for an organization pipeline
  getPipelineRunNode(node: String!, organization: String!, pipeline: String!, run: String!): PipelineRunNode
  # Retrieve run node details for an organization pipeline
  getPipelineRunNodeStep(node: String!, organization: String!, pipeline: String!, run: String!, step: String!): PipelineStepImpl
  # Get log for a pipeline run node step
  getPipelineRunNodeStepLog(node: String!, organization: String!, pipeline: String!, run: String!, step: String!): String
  # Retrieve run node steps details for an organization pipeline
  getPipelineRunNodeSteps(node: String!, organization: String!, pipeline: String!, run: String!): [PipelineStepImpl]
  # Retrieve run nodes details for an organization pipeline
  getPipelineRunNodes(organization: String!, pipeline: String!, run: String!): [PipelineRunNode]
  # Retrieve all runs details for an organization pipeline
  getPipelineRuns(organization: String!, pipeline: String!): [PipelineRun]
  # Retrieve all pipelines details for an organization
  getPipelines(organization: String!): [Pipeline]
  # Retrieve queue details
  getQueue: Queue
  # Retrieve queued item details
  getQueueItem(number: String!): Queue
  # Retrieve SCM details for an organization
  getSCM(organization: String!, scm: String!): GithubScm
  # Retrieve SCM organization repositories details for an organization
  getSCMOrganisationRepositories(credentialId: String, organization: String!, pageNumber: Int, pageSize: Int, scm: String!, scmOrganisation: String!): [GithubOrganization]
  # Retrieve SCM organization repository details for an organization
  getSCMOrganisationRepository(credentialId: String, organization: String!, repository: String!, scm: String!, scmOrganisation: String!): [GithubOrganization]
  # Retrieve SCM organizations details for an organization
  getSCMOrganisations(credentialId: String, organization: String!, scm: String!): [GithubOrganization]
  # Retrieve user details for an organization
  getUser(organization: String!, user: String!): User
  # Retrieve user favorites details for an organization
  getUserFavorites(user: String!): [FavoriteImpl]
  # Retrieve users details for an organization
  getUsers(organization: String!): User
  # Retrieve view details
  getView(name: String!): ListView
  # Retrieve view configuration
  getViewConfig(name: String!): String
  # Retrieve Jenkins headers
  headJenkins: String
  # Search for any resource details
  search(q: String!): String
  # Get classes details
  searchClasses(q: String!): String
}

type Queue {
  _class: String
  items: [QueueBlockedItem]
}

type QueueBlockedItem {
  _class: String
  actions: [CauseAction]
  blocked: Boolean
  buildable: Boolean
  buildableStartMilliseconds: Int
  id: Int
  inQueueSince: Int
  params: String
  stuck: Boolean
  task: FreeStyleProject
  url: String
  why: String
}

type QueueItemImpl {
  _class: String
  expectedBuildNumber: Int
  id: String
  pipeline: String
  queuedTime: Int
}

type ResponseTimeMonitorData {
  _class: String
  average: Int
  timestamp: Int
}

type StringParameterDefinition {
  _class: String
  defaultParameterValue: StringParameterValue
  description: String
  name: String
  type: String
}

type StringParameterValue {
  _class: String
  name: String
  value: String
}

type SwapSpaceMonitorMemoryUsage2 {
  _class: String
  availablePhysicalMemory: Int
  availableSwapSpace: Int
  totalPhysicalMemory: Int
  totalSwapSpace: Int
}

type UnlabeledLoadStatistics {
  _class: String
}

type User {
  _class: String
  email: String
  fullName: String
  id: String
  name: String
}

input putPipelineFavorite_bodyInput {
  favorite: Boolean!
}
'
