directive @enum(value: String) on ENUM_VALUE

directive @globalOptions(endpoint: String, operationHeaders: ObjMap, queryParams: ObjMap, queryStringOptions: ObjMap, sourceName: String) on OBJECT

directive @httpOperation(httpMethod: HTTPMethod, isBinary: Boolean, operationSpecificHeaders: ObjMap, path: String, queryParamArgMap: ObjMap, queryStringOptionsByParam: ObjMap, requestBaseBody: ObjMap) on FIELD_DEFINITION

directive @oneOf on INPUT_OBJECT | INTERFACE | OBJECT

directive @resolveRoot on FIELD_DEFINITION

directive @resolveRootField(field: String) on ARGUMENT_DEFINITION | FIELD_DEFINITION | INPUT_FIELD_DEFINITION

directive @statusCodeTypeName(statusCode: ID, typeName: String) on UNION

"""APIError is an api error with a message"""
type APIError {
  message: String
  url: String
}

"""
Either `null` to set no restrictions or an object with following properties
"""
input AccessRestriction_Input {
  """Array of group ids"""
  groups: [String]

  """Array of user ids"""
  users: [String]
}

type AccessToken_represents_an_API_access_token_ {
  id: BigInt
  name: String
  scopes: [String]
  sha1: String
  token_last_eight: String
}

"""ActivityPub type"""
type ActivityPub {
  _AT_context: String
}

"""
AddCollaboratorOption options when adding a user as a collaborator of a repository
"""
input AddCollaboratorOption_Input {
  permission: String
}

"""AddTimeOption options for adding time to an issue"""
input AddTimeOption_Input {
  created: DateTime

  """time in seconds"""
  time: BigInt!

  """User who spent the time (optional)"""
  user_name: String
}

type AddonConfig {
  """Memory limit in bytes. Example is 256MB"""
  memory: Int

  """Swap memory limit in bytes. Example is 512MB"""
  memorySwap: Int
}

input AddonConfig_Input {
  """Memory limit in bytes. Example is 256MB"""
  memory: Int

  """Swap memory limit in bytes. Example is 512MB"""
  memorySwap: Int
}

"""AnnotatedTag represents an annotated tag"""
type AnnotatedTag {
  message: String
  object: AnnotatedTagObject
  sha: String
  tag: String
  tagger: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_
  url: String
  verification: PayloadCommitVerification
}

"""AnnotatedTagObject contains meta information of the tag object"""
type AnnotatedTagObject {
  sha: String
  type: String
  url: String
}

type App {
  appStoreId: String

  """Time the app was installed"""
  creationTime: DateTime
  domain: String
  error: JSON

  """FullQualifiedDomainName is essentially `subdomain`.`domain`"""
  fqdn: String
  health: String
  iconUrl: String
  id: String
  installationState: String
  label: String
  manifest: AppManifest
  portBindings: PortBindings
  runState: String

  """
  This is the subdomain, the app is installed on. May be an empty string if no subdomain is configured
  """
  subdomain: String
  tags: [JSON]
  taskId: String

  """Time the app was last modified"""
  ts: DateTime
}

type AppManifest {
  id: String
}

input AppManifest_Input {
  id: String
}

"""Attachment a generic attachment"""
type Attachment {
  browser_download_url: String
  created_at: DateTime
  download_count: BigInt
  id: BigInt
  name: String
  size: BigInt
  uuid: String
}

type BackupConfig {
  acceptSelfSignedCerts: Boolean

  """only for S3 style provider"""
  accessKeyId: String

  """only for filesystem provider"""
  backupFolder: String

  """only for S3 and gcs style provider"""
  bucket: String
  credentials: mutationInput_post_cloudron_restore_input_backupConfig_credentials

  """only for S3 style provider"""
  endpoint: String

  """only for filesystem provider"""
  externalDisk: Boolean
  format: BackupFormat

  """
  Interval for automatic backups in seconds. Must be atleast 6 hours (21600 seconds)
  """
  intervalSecs: PositiveInt

  """Encyrption key. May contain a placeholder string to not leak the key"""
  key: String

  """only for filesystem provider"""
  noHardlinks: Boolean

  """only for S3 and gcs style provider"""
  prefix: String

  """only for gcs provider"""
  projectId: String
  provider: mutationInput_post_cloudron_restore_input_backupConfig_provider

  """only for S3 style provider"""
  region: String

  """Maximum time to keep backups in seconds (1 week is 604800 seconds)"""
  retentionSecs: Int

  """only for S3 style provider"""
  secretAccessKey: String

  """only for S3 style provider"""
  signatureVersion: String
  syncConcurrency: PositiveInt
}

input BackupConfig_Input {
  acceptSelfSignedCerts: Boolean

  """only for S3 style provider"""
  accessKeyId: String

  """only for filesystem provider"""
  backupFolder: String

  """only for S3 and gcs style provider"""
  bucket: String
  credentials: mutationInput_post_cloudron_restore_input_backupConfig_credentials_Input

  """only for S3 style provider"""
  endpoint: String

  """only for filesystem provider"""
  externalDisk: Boolean
  format: BackupFormat

  """
  Interval for automatic backups in seconds. Must be atleast 6 hours (21600 seconds)
  """
  intervalSecs: PositiveInt

  """Encyrption key. May contain a placeholder string to not leak the key"""
  key: String

  """only for filesystem provider"""
  noHardlinks: Boolean

  """only for S3 and gcs style provider"""
  prefix: String

  """only for gcs provider"""
  projectId: String
  provider: mutationInput_post_cloudron_restore_input_backupConfig_provider

  """only for S3 style provider"""
  region: String

  """Maximum time to keep backups in seconds (1 week is 604800 seconds)"""
  retentionSecs: Int

  """only for S3 style provider"""
  secretAccessKey: String

  """only for S3 style provider"""
  signatureVersion: String
  syncConcurrency: PositiveInt
}

enum BackupFormat {
  rsync
  targz
}

"""
The `BigInt` scalar type represents non-fractional signed whole numeric values.
"""
scalar BigInt

"""Branch represents a repository branch"""
type Branch {
  commit: PayloadCommit
  effective_branch_protection_name: String
  enable_status_check: Boolean
  name: String
  protected: Boolean
  required_approvals: BigInt
  status_check_contexts: [String]
  user_can_merge: Boolean
  user_can_push: Boolean
}

"""BranchProtection represents a branch protection for a repository"""
type BranchProtection {
  approvals_whitelist_teams: [String]
  approvals_whitelist_username: [String]
  block_on_official_review_requests: Boolean
  block_on_outdated_branch: Boolean
  block_on_rejected_reviews: Boolean

  """Deprecated: true"""
  branch_name: String
  created_at: DateTime
  dismiss_stale_approvals: Boolean
  enable_approvals_whitelist: Boolean
  enable_merge_whitelist: Boolean
  enable_push: Boolean
  enable_push_whitelist: Boolean
  enable_status_check: Boolean
  merge_whitelist_teams: [String]
  merge_whitelist_usernames: [String]
  protected_file_patterns: String
  push_whitelist_deploy_keys: Boolean
  push_whitelist_teams: [String]
  push_whitelist_usernames: [String]
  require_signed_commits: Boolean
  required_approvals: BigInt
  rule_name: String
  status_check_contexts: [String]
  unprotected_file_patterns: String
  updated_at: DateTime
}

"""ChangedFile store information about files affected by the pull request"""
type ChangedFile {
  additions: BigInt
  changes: BigInt
  contents_url: String
  deletions: BigInt
  filename: String
  html_url: String
  previous_filename: String
  raw_url: String
  status: String
}

type CloudronNameConfig {
  name: String!
}

input CloudronNameConfig_Input {
  name: String! = "Cloudron"
}

"""
CombinedStatus holds the combined state of several statuses for a single commit
"""
type CombinedStatus {
  commit_url: String
  repository: Repository
  sha: String

  """
  CommitStatusState holds the state of a CommitStatus
  It can be "pending", "success", "error", "failure", and "warning"
  """
  state: String
  statuses: [CommitStatus]
  total_count: BigInt
  url: String
}

"""Comment represents a comment on a commit or issue"""
type Comment {
  assets: [Attachment]
  body: String
  created_at: DateTime
  html_url: String
  id: BigInt
  issue_url: String
  original_author: String
  original_author_id: BigInt
  pull_request_url: String
  updated_at: DateTime
  user: User
}

"""
CommitAffectedFiles store information about files affected by the commit
"""
type CommitAffectedFiles {
  filename: String
}

"""
CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE
"""
input CommitDateOptions_Input {
  author: DateTime
  committer: DateTime
}

type CommitMeta_contains_meta_information_of_a_commit_in_terms_of_API_ {
  created: DateTime
  sha: String
  url: String
}

"""CommitStats is statistics for a RepoCommit"""
type CommitStats {
  additions: BigInt
  deletions: BigInt
  total: BigInt
}

"""CommitStatus holds a single status of a single Commit"""
type CommitStatus {
  context: String
  created_at: DateTime
  creator: User
  description: String
  id: BigInt

  """
  CommitStatusState holds the state of a CommitStatus
  It can be "pending", "success", "error", "failure", and "warning"
  """
  status: String
  target_url: String
  updated_at: DateTime
  url: String
}

type CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_ {
  date: String
  email: EmailAddress
  name: String
}

type Commit_contains_information_generated_from_a_Git_commit_ {
  author: User
  commit: RepoCommit_contains_information_of_a_commit_in_the_context_of_a_repository_
  committer: User
  created: DateTime
  files: [CommitAffectedFiles]
  html_url: String
  parents: [CommitMeta_contains_meta_information_of_a_commit_in_terms_of_API_]
  sha: String
  stats: CommitStats
  url: String
}

"""
ContentsResponse contains information about a repo's entry's (dir, file, symlink, submodule) metadata and content
"""
type ContentsResponse {
  _links: FileLinksResponse

  """`content` is populated when `type` is `file`, otherwise null"""
  content: String
  download_url: String

  """`encoding` is populated when `type` is `file`, otherwise null"""
  encoding: String
  git_url: String
  html_url: String
  last_commit_sha: String
  name: String
  path: String
  sha: String
  size: BigInt

  """
  `submodule_git_url` is populated when `type` is `submodule`, otherwise null
  """
  submodule_git_url: String

  """`target` is populated when `type` is `symlink`, otherwise null"""
  target: String

  """`type` will be `file`, `dir`, `symlink`, or `submodule`"""
  type: String
  url: String
}

"""CreateAccessTokenOption options when create access token"""
input CreateAccessTokenOption_Input {
  name: String!
  scopes: [String]
}

"""CreateBranchProtectionOption options for creating a branch protection"""
input CreateBranchProtectionOption_Input {
  approvals_whitelist_teams: [String]
  approvals_whitelist_username: [String]
  block_on_official_review_requests: Boolean
  block_on_outdated_branch: Boolean
  block_on_rejected_reviews: Boolean

  """Deprecated: true"""
  branch_name: String
  dismiss_stale_approvals: Boolean
  enable_approvals_whitelist: Boolean
  enable_merge_whitelist: Boolean
  enable_push: Boolean
  enable_push_whitelist: Boolean
  enable_status_check: Boolean
  merge_whitelist_teams: [String]
  merge_whitelist_usernames: [String]
  protected_file_patterns: String
  push_whitelist_deploy_keys: Boolean
  push_whitelist_teams: [String]
  push_whitelist_usernames: [String]
  require_signed_commits: Boolean
  required_approvals: BigInt
  rule_name: String
  status_check_contexts: [String]
  unprotected_file_patterns: String
}

"""CreateBranchRepoOption options when creating a branch in a repository"""
input CreateBranchRepoOption_Input {
  """Name of the branch to create"""
  new_branch_name: String!

  """Name of the old branch to create from"""
  old_branch_name: String
}

"""CreateEmailOption options when creating email addresses"""
input CreateEmailOption_Input {
  """email addresses to add"""
  emails: [String]
}

"""
CreateFileOptions options for creating files
Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)
"""
input CreateFileOptions_Input {
  author: Identity_Input

  """
  branch (optional) to base this file from. if not given, the default branch is used
  """
  branch: String
  committer: Identity_Input

  """content must be base64 encoded"""
  content: String!
  dates: CommitDateOptions_Input

  """
  message (optional) for the commit of this file. if not supplied, a default message will be used
  """
  message: String

  """
  new_branch (optional) will make a new branch from `branch` before creating the file
  """
  new_branch: String

  """
  Add a Signed-off-by trailer by the committer at the end of the commit log message.
  """
  signoff: Boolean
}

"""CreateForkOption options for creating a fork"""
input CreateForkOption_Input {
  """name of the forked repository"""
  name: String

  """organization name, if forking into an organization"""
  organization: String
}

"""CreateGPGKeyOption options create user GPG key"""
input CreateGPGKeyOption_Input {
  """An armored GPG key to add"""
  armored_public_key: String!
  armored_signature: String
}

"""CreateHookOption options when create a hook"""
input CreateHookOption_Input {
  active: Boolean
  authorization_header: String
  branch_filter: String

  """
  CreateHookOptionConfig has all config options in it
  required are "content_type" and "url" Required
  """
  config: JSON!
  events: [String]
  type: mutationInput_adminCreateHook_input_type!
}

"""CreateIssueCommentOption options for creating a comment on an issue"""
input CreateIssueCommentOption_Input {
  body: String!
}

"""CreateIssueOption options to create one issue"""
input CreateIssueOption_Input {
  """deprecated"""
  assignee: String
  assignees: [String]
  body: String
  closed: Boolean
  due_date: DateTime

  """list of label ids"""
  labels: [BigInt]

  """milestone id"""
  milestone: BigInt
  ref: String
  title: String!
}

"""CreateKeyOption options when creating a key"""
input CreateKeyOption_Input {
  """An armored SSH key to add"""
  key: String!

  """Describe if the key has only read access or read/write"""
  read_only: Boolean

  """Title of the key to add"""
  title: String!
}

"""CreateLabelOption options for creating a label"""
input CreateLabelOption_Input {
  color: String!
  description: String
  exclusive: Boolean
  name: String!
}

"""CreateMilestoneOption options for creating a milestone"""
input CreateMilestoneOption_Input {
  description: String
  due_on: DateTime
  state: mutationInput_issueCreateMilestone_input_state
  title: String
}

"""
CreateOAuth2ApplicationOptions holds options to create an oauth2 application
"""
input CreateOAuth2ApplicationOptions_Input {
  confidential_client: Boolean
  name: String
  redirect_uris: [String]
}

"""CreateOrgOption options for creating an organization"""
input CreateOrgOption_Input {
  description: String
  full_name: String
  location: String
  repo_admin_change_team_access: Boolean
  username: String!
  visibility: mutationInput_adminCreateOrg_input_visibility
  website: String
}

"""CreatePullRequestOption options when creating a pull request"""
input CreatePullRequestOption_Input {
  assignee: String
  assignees: [String]
  base: String
  body: String
  due_date: DateTime
  head: String
  labels: [BigInt]
  milestone: BigInt
  title: String
}

"""CreatePullReviewComment represent a review comment for creation api"""
input CreatePullReviewComment_Input {
  body: String

  """if comment to new file line or 0"""
  new_position: BigInt

  """if comment to old file line or 0"""
  old_position: BigInt

  """the tree path"""
  path: String
}

"""CreatePullReviewOptions are options to create a pull review"""
input CreatePullReviewOptions_Input {
  body: String
  comments: [CreatePullReviewComment_Input]
  commit_id: String

  """ReviewStateType review state type"""
  event: String
}

input CreatePushMirrorOption_represents_need_information_to_create_a_push_mirror_of_a_repository__Input {
  interval: String
  remote_address: String
  remote_password: String
  remote_username: String
  sync_on_commit: Boolean
}

"""CreateReleaseOption options when creating a release"""
input CreateReleaseOption_Input {
  body: String
  draft: Boolean
  name: String
  prerelease: Boolean
  tag_name: String!
  target_commitish: String
}

"""CreateRepoOption options when creating repository"""
input CreateRepoOption_Input {
  """Whether the repository should be auto-initialized?"""
  auto_init: Boolean

  """
  DefaultBranch of the repository (used when initializes and in template)
  """
  default_branch: String

  """Description of the repository to create"""
  description: String

  """Gitignores to use"""
  gitignores: String

  """Label-Set to use"""
  issue_labels: String

  """License to use"""
  license: String

  """Name of the repository to create"""
  name: String!

  """Whether the repository is private"""
  private: Boolean

  """Readme of the repository to create"""
  readme: String

  """Whether the repository is template"""
  template: Boolean
  trust_model: mutationInput_adminCreateRepo_input_trust_model
}

"""
CreateStatusOption holds the information needed to create a new CommitStatus for a Commit
"""
input CreateStatusOption_Input {
  context: String
  description: String

  """
  CommitStatusState holds the state of a CommitStatus
  It can be "pending", "success", "error", "failure", and "warning"
  """
  state: String
  target_url: String
}

"""CreateTagOption options when creating a tag"""
input CreateTagOption_Input {
  message: String
  tag_name: String!
  target: String
}

"""CreateTeamOption options for creating a team"""
input CreateTeamOption_Input {
  can_create_org_repo: Boolean
  description: String
  includes_all_repositories: Boolean
  name: String!
  permission: mutationInput_orgCreateTeam_input_permission
  units: [String]
  units_map: mutationInput_orgCreateTeam_input_units_map_Input
}

"""CreateUserOption create user options"""
input CreateUserOption_Input {
  """
  For explicitly setting the user creation timestamp. Useful when users are
  migrated from other systems. When omitted, the user's creation timestamp
  will be set to "now".
  """
  created_at: DateTime
  email: EmailAddress!
  full_name: String
  login_name: String
  must_change_password: Boolean
  password: String!
  restricted: Boolean
  send_notify: Boolean
  source_id: BigInt
  username: String!
  visibility: String
}

"""CreateWikiPageOptions form for creating wiki"""
input CreateWikiPageOptions_Input {
  """content must be base64 encoded"""
  content_base64: String

  """optional commit message summarizing the change"""
  message: String

  """page title. leave empty to keep unchanged"""
  title: String
}

"""Cron represents a Cron task"""
type Cron {
  exec_times: BigInt
  name: String
  next: DateTime
  prev: DateTime
  schedule: String
}

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

"""DeleteEmailOption options when deleting email addresses"""
input DeleteEmailOption_Input {
  """email addresses to delete"""
  emails: [String]
}

"""
DeleteFileOptions options for deleting files (used for other File structs below)
Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)
"""
input DeleteFileOptions_Input {
  author: Identity_Input

  """
  branch (optional) to base this file from. if not given, the default branch is used
  """
  branch: String
  committer: Identity_Input
  dates: CommitDateOptions_Input

  """
  message (optional) for the commit of this file. if not supplied, a default message will be used
  """
  message: String

  """
  new_branch (optional) will make a new branch from `branch` before creating the file
  """
  new_branch: String

  """sha is the SHA for the file that already exists"""
  sha: String!

  """
  Add a Signed-off-by trailer by the committer at the end of the commit log message.
  """
  signoff: Boolean
}

"""DeployKey a deploy key"""
type DeployKey {
  created_at: DateTime
  fingerprint: String
  id: BigInt
  key: String
  key_id: BigInt
  read_only: Boolean
  repository: Repository
  title: String
  url: String
}

"""DismissPullReviewOptions are options to dismiss a pull review"""
input DismissPullReviewOptions_Input {
  message: String
  priors: Boolean
}

enum DnsProvider {
  cloudflare
  digitalocean
  gandi
  gcdns
  godaddy
  linode
  manual
  namecheap
  namecom
  noop
  route53
  wildcard
}

"""Domain Info"""
type Domain {
  banner: query_mail_by_domain_banner
  catchAll: [JSON]
  domain: String
  enabled: Boolean
  mailFromValidation: Boolean
  relay: query_mail_by_domain_relay
}

input DomainConfig_Input {
  config: JSON!
  fallbackCertificate: mutationInput_post_domains_input_allOf_1_fallbackCertificate_Input
  hyphenatedSubdomains: Boolean
  provider: DnsProvider!
  tlsConfig: TlsConfig_Input
  wildcard: Boolean
  zoneName: String
}

input DynamicDnsConfig_request_Input {
  enabled: Boolean!
}

"""EditAttachmentOptions options for editing attachments"""
input EditAttachmentOptions_Input {
  name: String
}

"""EditBranchProtectionOption options for editing a branch protection"""
input EditBranchProtectionOption_Input {
  approvals_whitelist_teams: [String]
  approvals_whitelist_username: [String]
  block_on_official_review_requests: Boolean
  block_on_outdated_branch: Boolean
  block_on_rejected_reviews: Boolean
  dismiss_stale_approvals: Boolean
  enable_approvals_whitelist: Boolean
  enable_merge_whitelist: Boolean
  enable_push: Boolean
  enable_push_whitelist: Boolean
  enable_status_check: Boolean
  merge_whitelist_teams: [String]
  merge_whitelist_usernames: [String]
  protected_file_patterns: String
  push_whitelist_deploy_keys: Boolean
  push_whitelist_teams: [String]
  push_whitelist_usernames: [String]
  require_signed_commits: Boolean
  required_approvals: BigInt
  status_check_contexts: [String]
  unprotected_file_patterns: String
}

"""EditDeadlineOption options for creating a deadline"""
input EditDeadlineOption_Input {
  due_date: DateTime!
}

"""EditGitHookOption options when modifying one Git hook"""
input EditGitHookOption_Input {
  content: String
}

"""EditHookOption options when modify one hook"""
input EditHookOption_Input {
  active: Boolean
  authorization_header: String
  branch_filter: String
  config: JSON
  events: [String]
}

"""EditIssueCommentOption options for editing a comment"""
input EditIssueCommentOption_Input {
  body: String!
}

"""EditIssueOption options for editing an issue"""
input EditIssueOption_Input {
  """deprecated"""
  assignee: String
  assignees: [String]
  body: String
  due_date: DateTime
  milestone: BigInt
  ref: String
  state: String
  title: String
  unset_due_date: Boolean
}

"""EditLabelOption options for editing a label"""
input EditLabelOption_Input {
  color: String
  description: String
  exclusive: Boolean
  name: String
}

"""EditMilestoneOption options for editing a milestone"""
input EditMilestoneOption_Input {
  description: String
  due_on: DateTime
  state: String
  title: String
}

"""EditOrgOption options for editing an organization"""
input EditOrgOption_Input {
  description: String
  full_name: String
  location: String
  repo_admin_change_team_access: Boolean
  visibility: mutationInput_orgEdit_input_visibility
  website: String
}

"""EditPullRequestOption options when modify pull request"""
input EditPullRequestOption_Input {
  allow_maintainer_edit: Boolean
  assignee: String
  assignees: [String]
  base: String
  body: String
  due_date: DateTime
  labels: [BigInt]
  milestone: BigInt
  state: String
  title: String
  unset_due_date: Boolean
}

"""EditReactionOption contain the reaction type"""
input EditReactionOption_Input {
  content: String
}

"""EditReleaseOption options when editing a release"""
input EditReleaseOption_Input {
  body: String
  draft: Boolean
  name: String
  prerelease: Boolean
  tag_name: String
  target_commitish: String
}

"""EditRepoOption options when editing a repository's properties"""
input EditRepoOption_Input {
  """
  either `true` to allow mark pr as merged manually, or `false` to prevent it.
  """
  allow_manual_merge: Boolean

  """
  either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.
  """
  allow_merge_commits: Boolean

  """
  either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.
  """
  allow_rebase: Boolean

  """
  either `true` to allow rebase with explicit merge commits (--no-ff), or `false` to prevent rebase with explicit merge commits.
  """
  allow_rebase_explicit: Boolean

  """
  either `true` to allow updating pull request branch by rebase, or `false` to prevent it.
  """
  allow_rebase_update: Boolean

  """
  either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.
  """
  allow_squash_merge: Boolean

  """set to `true` to archive this repository."""
  archived: Boolean

  """
  either `true` to enable AutodetectManualMerge, or `false` to prevent it. Note: In some special cases, misjudgments can occur.
  """
  autodetect_manual_merge: Boolean

  """set to `true` to allow edits from maintainers by default"""
  default_allow_maintainer_edit: Boolean

  """sets the default branch for this repository."""
  default_branch: String

  """set to `true` to delete pr branch after merge by default"""
  default_delete_branch_after_merge: Boolean

  """
  set to a merge style to be used by this repository: "merge", "rebase", "rebase-merge", or "squash".
  """
  default_merge_style: String

  """a short description of the repository."""
  description: String

  """enable prune - remove obsolete remote-tracking references"""
  enable_prune: Boolean
  external_tracker: ExternalTracker_Input
  external_wiki: ExternalWiki_Input

  """
  either `true` to enable issues for this repository or `false` to disable them.
  """
  has_issues: Boolean

  """either `true` to enable project unit, or `false` to disable them."""
  has_projects: Boolean

  """
  either `true` to allow pull requests, or `false` to prevent pull request.
  """
  has_pull_requests: Boolean

  """
  either `true` to enable the wiki for this repository or `false` to disable it.
  """
  has_wiki: Boolean

  """
  either `true` to ignore whitespace for conflicts, or `false` to not ignore whitespace.
  """
  ignore_whitespace_conflicts: Boolean
  internal_tracker: InternalTracker_Input

  """set to a string like `8h30m0s` to set the mirror interval time"""
  mirror_interval: String

  """name of the repository"""
  name: String

  """
  either `true` to make the repository private or `false` to make it public.
  Note: you will get a 422 error if the organization restricts changing repository visibility to organization
  owners and a non-owner tries to change the value of private.
  """
  private: Boolean

  """
  either `true` to make this repository a template or `false` to make it a normal repository
  """
  template: Boolean

  """a URL with more information about the repository."""
  website: String
}

"""EditTeamOption options for editing a team"""
input EditTeamOption_Input {
  can_create_org_repo: Boolean
  description: String
  includes_all_repositories: Boolean
  name: String!
  permission: mutationInput_orgEditTeam_input_permission
  units: [String]
  units_map: mutationInput_orgEditTeam_input_units_map_Input
}

"""EditUserOption edit user options"""
input EditUserOption_Input {
  active: Boolean
  admin: Boolean
  allow_create_organization: Boolean
  allow_git_hook: Boolean
  allow_import_local: Boolean
  description: String
  email: EmailAddress
  full_name: String
  location: String
  login_name: String!
  max_repo_creation: BigInt
  must_change_password: Boolean
  password: String
  prohibit_login: Boolean
  restricted: Boolean
  source_id: BigInt!
  visibility: String
  website: String
}

"""Email an email address belonging to a user"""
type Email {
  email: EmailAddress
  primary: Boolean
  verified: Boolean
}

"""
A field whose value conforms to the standard internet email address format as specified in HTML Spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address.
"""
scalar EmailAddress

input EnableMailboxes_request_Input {
  enabled: Boolean!
}

type ExternalLdapConfig {
  autoCreate: Boolean
  baseDn: String!
  bindDn: String
  bindPassword: String
  filter: String!
  provider: mutationInput_post_settings_external_ldap_config_input_provider!
  url: String!
  usernameField: String
}

input ExternalLdapConfig_Input {
  autoCreate: Boolean
  baseDn: String!
  bindDn: String
  bindPassword: String
  filter: String!
  provider: mutationInput_post_settings_external_ldap_config_input_provider!
  url: String!
  usernameField: String = "uid"
}

"""ExternalTracker represents settings for external tracker"""
type ExternalTracker {
  """
  External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index.
  """
  external_tracker_format: String

  """External Issue Tracker issue regular expression"""
  external_tracker_regexp_pattern: String

  """
  External Issue Tracker Number Format, either `numeric`, `alphanumeric`, or `regexp`
  """
  external_tracker_style: String

  """URL of external issue tracker."""
  external_tracker_url: String
}

"""ExternalTracker represents settings for external tracker"""
input ExternalTracker_Input {
  """
  External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index.
  """
  external_tracker_format: String

  """External Issue Tracker issue regular expression"""
  external_tracker_regexp_pattern: String

  """
  External Issue Tracker Number Format, either `numeric`, `alphanumeric`, or `regexp`
  """
  external_tracker_style: String

  """URL of external issue tracker."""
  external_tracker_url: String
}

"""ExternalWiki represents setting for external wiki"""
type ExternalWiki {
  """URL of external wiki."""
  external_wiki_url: String
}

"""ExternalWiki represents setting for external wiki"""
input ExternalWiki_Input {
  """URL of external wiki."""
  external_wiki_url: String
}

"""The `File` scalar type represents a file upload."""
scalar File

type FileCommitResponse_contains_information_generated_from_a_Git_commit_for_a_repo_SINGLE_QUOTE_s_file_ {
  author: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_
  committer: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_
  created: DateTime
  html_url: String
  message: String
  parents: [CommitMeta_contains_meta_information_of_a_commit_in_terms_of_API_]
  sha: String
  tree: CommitMeta_contains_meta_information_of_a_commit_in_terms_of_API_
  url: String
}

"""
FileDeleteResponse contains information about a repo's file that was deleted
"""
type FileDeleteResponse {
  commit: FileCommitResponse_contains_information_generated_from_a_Git_commit_for_a_repo_SINGLE_QUOTE_s_file_
  content: JSON
  verification: PayloadCommitVerification
}

"""FileLinksResponse contains the links for a repo's file"""
type FileLinksResponse {
  git: String
  html: String
  self: String
}

"""FileResponse contains information about a repo's file"""
type FileResponse {
  commit: FileCommitResponse_contains_information_generated_from_a_Git_commit_for_a_repo_SINGLE_QUOTE_s_file_
  content: ContentsResponse
  verification: PayloadCommitVerification
}

"""GPGKey a user GPG key to sign commit and tag in repository"""
type GPGKey {
  can_certify: Boolean
  can_encrypt_comms: Boolean
  can_encrypt_storage: Boolean
  can_sign: Boolean
  created_at: DateTime
  emails: [GPGKeyEmail]
  expires_at: DateTime
  id: BigInt
  key_id: String
  primary_key_id: String
  public_key: String
  subkeys: [GPGKey]
  verified: Boolean
}

"""GPGKeyEmail an email attached to a GPGKey"""
type GPGKeyEmail {
  email: String
  verified: Boolean
}

"""GeneralAPISettings contains global api settings exposed by it"""
type GeneralAPISettings {
  default_git_trees_per_page: BigInt
  default_max_blob_size: BigInt
  default_paging_num: BigInt
  max_response_items: BigInt
}

"""
GeneralAttachmentSettings contains global Attachment settings exposed by API
"""
type GeneralAttachmentSettings {
  allowed_types: String
  enabled: Boolean
  max_files: BigInt
  max_size: BigInt
}

"""GeneralRepoSettings contains global repository settings exposed by API"""
type GeneralRepoSettings {
  http_git_disabled: Boolean
  lfs_disabled: Boolean
  migrations_disabled: Boolean
  mirrors_disabled: Boolean
  stars_disabled: Boolean
  time_tracking_disabled: Boolean
}

"""GeneralUISettings contains global ui settings exposed by API"""
type GeneralUISettings {
  allowed_reactions: [String]
  custom_emojis: [String]
  default_theme: String
}

"""GenerateRepoOption options when creating repository using a template"""
input GenerateRepoOption_Input {
  """include avatar of the template repo"""
  avatar: Boolean

  """Default branch of the new repository"""
  default_branch: String

  """Description of the repository to create"""
  description: String

  """include git content of default branch in template repo"""
  git_content: Boolean

  """include git hooks in template repo"""
  git_hooks: Boolean

  """include labels in template repo"""
  labels: Boolean

  """Name of the repository to create"""
  name: String!

  """The organization or person who will own the new repository"""
  owner: String!

  """Whether the repository is private"""
  private: Boolean

  """include topics in template repo"""
  topics: Boolean

  """include webhooks in template repo"""
  webhooks: Boolean
}

"""GitBlobResponse represents a git blob"""
type GitBlobResponse {
  content: String
  encoding: String
  sha: String
  size: BigInt
  url: String
}

"""GitEntry represents a git tree"""
type GitEntry {
  mode: String
  path: String
  sha: String
  size: BigInt
  type: String
  url: String
}

"""GitHook represents a Git repository hook"""
type GitHook {
  content: String
  is_active: Boolean
  name: String
}

type GitObject_represents_a_Git_object_ {
  sha: String
  type: String
  url: String
}

"""GitTreeResponse returns a git tree"""
type GitTreeResponse {
  page: BigInt
  sha: String
  total_count: BigInt
  tree: [GitEntry]
  truncated: Boolean
  url: String
}

type Group {
  id: String
  name: String
}

type GroupWithMembers {
  id: String
  name: String
  userIds: [String]
}

input Group_request_Input {
  name: String!
}

enum HTTPMethod {
  CONNECT
  DELETE
  GET
  HEAD
  OPTIONS
  PATCH
  POST
  PUT
  TRACE
}

"""Hook a hook is a web hook when one repository changed"""
type Hook {
  active: Boolean
  authorization_header: String
  config: JSON
  created_at: DateTime
  events: [String]
  id: BigInt
  type: String
  updated_at: DateTime
}

"""Identity for a person's identity like an author or committer"""
input Identity_Input {
  email: EmailAddress
  name: String
}

"""InternalTracker represents settings for internal tracker"""
type InternalTracker {
  """Let only contributors track time (Built-in issue tracker)"""
  allow_only_contributors_to_track_time: Boolean

  """
  Enable dependencies for issues and pull requests (Built-in issue tracker)
  """
  enable_issue_dependencies: Boolean

  """Enable time tracking (Built-in issue tracker)"""
  enable_time_tracker: Boolean
}

"""InternalTracker represents settings for internal tracker"""
input InternalTracker_Input {
  """Let only contributors track time (Built-in issue tracker)"""
  allow_only_contributors_to_track_time: Boolean

  """
  Enable dependencies for issues and pull requests (Built-in issue tracker)
  """
  enable_issue_dependencies: Boolean

  """Enable time tracking (Built-in issue tracker)"""
  enable_time_tracker: Boolean
}

"""Issue represents an issue in a repository"""
type Issue {
  assets: [Attachment]
  assignee: User
  assignees: [User]
  body: String
  closed_at: DateTime
  comments: BigInt
  created_at: DateTime
  due_date: DateTime
  html_url: String
  id: BigInt
  is_locked: Boolean
  labels: [Label]
  milestone: Milestone
  number: BigInt
  original_author: String
  original_author_id: BigInt
  pull_request: PullRequestMeta
  ref: String
  repository: RepositoryMeta

  """StateType issue state type"""
  state: String
  title: String
  updated_at: DateTime
  url: String
  user: User
}

"""IssueDeadline represents an issue deadline"""
type IssueDeadline {
  due_date: DateTime
}

"""IssueFormField represents a form field"""
type IssueFormField {
  attributes: JSON
  id: String
  type: String
  validations: JSON
}

"""IssueLabelsOption a collection of labels"""
input IssueLabelsOption_Input {
  """list of label IDs"""
  labels: [BigInt]
}

"""IssueTemplate represents an issue template for a repository"""
type IssueTemplate {
  about: String
  body: [IssueFormField]
  content: String
  file_name: String
  labels: [String]
  name: String
  ref: String
  title: String
}

"""
The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
"""
scalar JSON

"""Label a label to an issue or a pr"""
type Label {
  color: String
  description: String
  exclusive: Boolean
  id: BigInt
  name: String
  url: String
}

"""Mail SMTP relay provider"""
enum MailRelayProvider {
  cloudron_smtp
  elasticemail_smtp
  external_smtp
  external_smtp_noauth
  google_smtp
  mailgun_smtp
  mailjet_smtp
  noop
  postmark_smtp
  sendgrid_smtp
  ses_smtp
  sparkpost_smtp
}

"""Mailbox"""
type Mailbox {
  aliases: [JSON]
  domain: String
  name: String
  ownerId: String
  ownerType: String
}

"""MarkdownOption markdown options"""
input MarkdownOption_Input {
  """
  Context to render
  
  in: body
  """
  Context: String

  """
  Mode to render
  
  in: body
  """
  Mode: String

  """
  Text markdown to render
  
  in: body
  """
  Text: String

  """
  Is it a wiki page ?
  
  in: body
  """
  Wiki: Boolean
}

"""MergePullRequestForm form for merging Pull Request"""
input MergePullRequestOption_Input {
  Do: mutationInput_repoMergePullRequest_input_Do!
  MergeCommitID: String
  MergeMessageField: String
  MergeTitleField: String
  delete_branch_after_merge: Boolean
  force_merge: Boolean
  head_commit_id: String
  merge_when_checks_succeed: Boolean
}

"""
MigrateRepoOptions options for migrating repository's
this is used to interact with api v1
"""
input MigrateRepoOptions_Input {
  auth_password: String
  auth_token: String
  auth_username: String
  clone_addr: String!
  description: String
  issues: Boolean
  labels: Boolean
  lfs: Boolean
  lfs_endpoint: String
  milestones: Boolean
  mirror: Boolean
  mirror_interval: String
  private: Boolean
  pull_requests: Boolean
  releases: Boolean
  repo_name: String!

  """Name of User or Organisation who will own Repo after migration"""
  repo_owner: String
  service: mutationInput_repoMigrate_input_service

  """deprecated (only for backwards compatibility)"""
  uid: BigInt
  wiki: Boolean
}

"""Milestone milestone is a collection of issues on one repository"""
type Milestone {
  closed_at: DateTime
  closed_issues: BigInt
  created_at: DateTime
  description: String
  due_on: DateTime
  id: BigInt
  open_issues: BigInt

  """StateType issue state type"""
  state: String
  title: String
  updated_at: DateTime
}

type Mutation {
  """Accept a repo transfer"""
  acceptRepoTransfer(
    """owner of the repo to transfer"""
    owner: String!

    """name of the repo to transfer"""
    repo: String!
  ): Repository

  """Send to the inbox"""
  activitypubPersonInbox(
    """user ID of the user"""
    user_id: Int!
  ): Void

  """Adopt unadopted files as a repository"""
  adminAdoptRepository(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Create a hook"""
  adminCreateHook(input: CreateHookOption_Input!): Hook

  """Create an organization"""
  adminCreateOrg(
    input: CreateOrgOption_Input!

    """username of the user that will own the created organization"""
    username: String!
  ): Organization

  """Add a public key on behalf of a user"""
  adminCreatePublicKey(
    input: CreateKeyOption_Input

    """username of the user"""
    username: String!
  ): PublicKey

  """Create a repository on behalf of a user"""
  adminCreateRepo(
    input: CreateRepoOption_Input!

    """username of the user. This user will own the created repository"""
    username: String!
  ): Repository

  """Create a user"""
  adminCreateUser(input: CreateUserOption_Input): User

  """Run cron task"""
  adminCronRun(
    """task to run"""
    task: String!
  ): Void

  """Delete a hook"""
  adminDeleteHook(
    """id of the hook to delete"""
    id: BigInt!
  ): Void

  """Delete unadopted files"""
  adminDeleteUnadoptedRepository(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a user"""
  adminDeleteUser(
    """purge the user from the system completely"""
    purge: Boolean

    """username of user to delete"""
    username: String!
  ): Void

  """Delete a user's public key"""
  adminDeleteUserPublicKey(
    """id of the key to delete"""
    id: BigInt!

    """username of user"""
    username: String!
  ): Void

  """Update a hook"""
  adminEditHook(
    """id of the hook to update"""
    id: BigInt!
    input: EditHookOption_Input
  ): Hook

  """Edit an existing user"""
  adminEditUser(
    input: EditUserOption_Input

    """username of user to edit"""
    username: String!
  ): User

  """Create a repository"""
  createCurrentUserRepo(input: CreateRepoOption_Input!): Repository

  """Fork a repository"""
  createFork(
    input: CreateForkOption_Input

    """owner of the repo to fork"""
    owner: String!

    """name of the repo to fork"""
    repo: String!
  ): Repository

  """Create a repository in an organization"""
  createOrgRepo(
    input: CreateRepoOption_Input!

    """name of organization"""
    org: String!
  ): Repository

  """Create a repository in an organization"""
  createOrgRepoDeprecated(
    input: CreateRepoOption_Input!

    """name of organization"""
    org: String!
  ): Repository

  """Delete a package"""
  deletePackage(
    """name of the package"""
    name: String!

    """owner of the package"""
    owner: String!

    """type of the package"""
    type: String!

    """version of the package"""
    version: String!
  ): Void

  """Remove Domain"""
  delete_domains_by_domain(
    """Domain"""
    domain: String!
  ): Void

  """Delete group"""
  delete_groups_by_groupId(
    """Group ID"""
    groupId: String!
  ): Void

  """Delete mailbox."""
  delete_mail_by_domain_mailboxes_by_name(
    """Domain"""
    domain: String!
    input: delete_mail_by_domain_mailboxes_by_name_request_Input

    """Mailbox"""
    name: String!
  ): JSON

  """Delete user"""
  delete_users_by_userId(
    """User ID"""
    userId: String!
  ): Void

  """Create a repository using a template"""
  generateRepo(
    input: GenerateRepoOption_Input

    """name of the template repository owner"""
    template_owner: String!

    """name of the template repository"""
    template_repo: String!
  ): Repository

  """Add a label to an issue"""
  issueAddLabel(
    """index of the issue"""
    index: BigInt!
    input: IssueLabelsOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [Label]

  """Subscribe user to issue"""
  issueAddSubscription(
    """index of the issue"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """user to subscribe"""
    user: String!
  ): JSON

  """Add tracked time to a issue"""
  issueAddTime(
    """index of the issue"""
    index: BigInt!
    input: AddTimeOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): TrackedTime

  """Remove all labels from an issue"""
  issueClearLabels(
    """index of the issue"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Add a comment to an issue"""
  issueCreateComment(
    """index of the issue"""
    index: BigInt!
    input: CreateIssueCommentOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Comment

  """
  Create an issue. If using deadline only the date will be taken into account, and time of day ignored.
  """
  issueCreateIssue(
    input: CreateIssueOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Issue

  """Create an issue attachment"""
  issueCreateIssueAttachment(
    """index of the issue"""
    index: BigInt!

    """name of the attachment"""
    name: String

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Attachment

  """Create a comment attachment"""
  issueCreateIssueCommentAttachment(
    """id of the comment"""
    id: BigInt!

    """name of the attachment"""
    name: String

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Attachment

  """Create a label"""
  issueCreateLabel(
    input: CreateLabelOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Label

  """Create a milestone"""
  issueCreateMilestone(
    input: CreateMilestoneOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Milestone

  """Delete an issue"""
  issueDelete(
    """index of issue to delete"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a comment"""
  issueDeleteComment(
    """id of comment to delete"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a comment"""
  issueDeleteCommentDeprecated(
    """id of comment to delete"""
    id: BigInt!

    """this parameter is ignored"""
    index: Int!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Remove a reaction from a comment of an issue"""
  issueDeleteCommentReaction(
    """id of the comment to edit"""
    id: BigInt!
    input: EditReactionOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): JSON

  """Delete an issue attachment"""
  issueDeleteIssueAttachment(
    """id of the attachment to delete"""
    attachment_id: BigInt!

    """index of the issue"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a comment attachment"""
  issueDeleteIssueCommentAttachment(
    """id of the attachment to delete"""
    attachment_id: BigInt!

    """id of the comment"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Remove a reaction from an issue"""
  issueDeleteIssueReaction(
    """index of the issue"""
    index: BigInt!
    input: EditReactionOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): JSON

  """Delete a label"""
  issueDeleteLabel(
    """id of the label to delete"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a milestone"""
  issueDeleteMilestone(
    """the milestone to delete, identified by ID and if not available by name"""
    id: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete an issue's existing stopwatch."""
  issueDeleteStopWatch(
    """index of the issue to stop the stopwatch on"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Unsubscribe user from issue"""
  issueDeleteSubscription(
    """index of the issue"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """user witch unsubscribe"""
    user: String!
  ): JSON

  """Delete specific tracked time"""
  issueDeleteTime(
    """id of time to delete"""
    id: BigInt!

    """index of the issue"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Edit a comment"""
  issueEditComment(
    """id of the comment to edit"""
    id: BigInt!
    input: EditIssueCommentOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): issueEditComment_response

  """Edit a comment"""
  issueEditCommentDeprecated(
    """id of the comment to edit"""
    id: BigInt!

    """this parameter is ignored"""
    index: Int!
    input: EditIssueCommentOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): issueEditCommentDeprecated_response

  """
  Edit an issue. If using deadline only the date will be taken into account, and time of day ignored.
  """
  issueEditIssue(
    """index of the issue to edit"""
    index: BigInt!
    input: EditIssueOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Issue

  """Edit an issue attachment"""
  issueEditIssueAttachment(
    """id of the attachment to edit"""
    attachment_id: BigInt!

    """index of the issue"""
    index: BigInt!
    input: EditAttachmentOptions_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Attachment

  """Edit a comment attachment"""
  issueEditIssueCommentAttachment(
    """id of the attachment to edit"""
    attachment_id: BigInt!

    """id of the comment"""
    id: BigInt!
    input: EditAttachmentOptions_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Attachment

  """
  Set an issue deadline. If set to null, the deadline is deleted. If using deadline only the date will be taken into account, and time of day ignored.
  """
  issueEditIssueDeadline(
    """index of the issue to create or update a deadline on"""
    index: BigInt!
    input: EditDeadlineOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): IssueDeadline

  """Update a label"""
  issueEditLabel(
    """id of the label to edit"""
    id: BigInt!
    input: EditLabelOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Label

  """Update a milestone"""
  issueEditMilestone(
    """the milestone to edit, identified by ID and if not available by name"""
    id: String!
    input: EditMilestoneOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Milestone

  """Add a reaction to a comment of an issue"""
  issuePostCommentReaction(
    """id of the comment to edit"""
    id: BigInt!
    input: EditReactionOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Reaction

  """Add a reaction to an issue"""
  issuePostIssueReaction(
    """index of the issue"""
    index: BigInt!
    input: EditReactionOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Reaction

  """Remove a label from an issue"""
  issueRemoveLabel(
    """id of the label to remove"""
    id: BigInt!

    """index of the issue"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Replace an issue's labels"""
  issueReplaceLabels(
    """index of the issue"""
    index: BigInt!
    input: IssueLabelsOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [Label]

  """Reset a tracked time of an issue"""
  issueResetTime(
    """index of the issue to add tracked time to"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Start stopwatch on an issue."""
  issueStartStopWatch(
    """index of the issue to create the stopwatch on"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): JSON

  """Stop an issue's existing stopwatch."""
  issueStopStopWatch(
    """index of the issue to stop the stopwatch on"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): JSON

  """Mark notification threads as read, pinned or unread"""
  notifyReadList(
    """If true, mark all notifications on this repo. Default value is false"""
    all: String

    """
    Describes the last point that notifications were checked. Anything updated since this time will not be updated.
    """
    last_read_at: DateTime

    """
    Mark notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread.
    """
    status_types: [String]

    """Status to mark notifications as, Defaults to read."""
    to_status: String
  ): [NotificationThread]

  """Mark notification threads as read, pinned or unread on a specific repo"""
  notifyReadRepoList(
    """If true, mark all notifications on this repo. Default value is false"""
    all: String

    """
    Describes the last point that notifications were checked. Anything updated since this time will not be updated.
    """
    last_read_at: DateTime

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """
    Mark notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread.
    """
    status_types: [String]

    """Status to mark notifications as. Defaults to read."""
    to_status: String
  ): [NotificationThread]

  """Mark notification thread as read by ID"""
  notifyReadThread(
    """id of notification thread"""
    id: String!

    """Status to mark notifications as"""
    to_status: String = "read"
  ): NotificationThread

  """Add a team member"""
  orgAddTeamMember(
    """id of the team"""
    id: BigInt!

    """username of the user to add"""
    username: String!
  ): Void

  """Add a repository to a team"""
  orgAddTeamRepository(
    """id of the team"""
    id: BigInt!

    """organization that owns the repo to add"""
    org: String!

    """name of the repo to add"""
    repo: String!
  ): Void

  """Conceal a user's membership"""
  orgConcealMember(
    """name of the organization"""
    org: String!

    """username of the user"""
    username: String!
  ): Void

  """Create an organization"""
  orgCreate(input: CreateOrgOption_Input!): Organization

  """Create a hook"""
  orgCreateHook(
    input: CreateHookOption_Input!

    """name of the organization"""
    org: String!
  ): Hook

  """Create a label for an organization"""
  orgCreateLabel(
    input: CreateLabelOption_Input

    """name of the organization"""
    org: String!
  ): Label

  """Create a team"""
  orgCreateTeam(
    input: CreateTeamOption_Input

    """name of the organization"""
    org: String!
  ): Team

  """Delete an organization"""
  orgDelete(
    """organization that is to be deleted"""
    org: String!
  ): Void

  """Delete a hook"""
  orgDeleteHook(
    """id of the hook to delete"""
    id: BigInt!

    """name of the organization"""
    org: String!
  ): Void

  """Delete a label"""
  orgDeleteLabel(
    """id of the label to delete"""
    id: BigInt!

    """name of the organization"""
    org: String!
  ): Void

  """Remove a member from an organization"""
  orgDeleteMember(
    """name of the organization"""
    org: String!

    """username of the user"""
    username: String!
  ): Void

  """Delete a team"""
  orgDeleteTeam(
    """id of the team to delete"""
    id: BigInt!
  ): Void

  """Edit an organization"""
  orgEdit(
    input: EditOrgOption_Input!

    """name of the organization to edit"""
    org: String!
  ): Organization

  """Update a hook"""
  orgEditHook(
    """id of the hook to update"""
    id: BigInt!
    input: EditHookOption_Input

    """name of the organization"""
    org: String!
  ): Hook

  """Update a label"""
  orgEditLabel(
    """id of the label to edit"""
    id: BigInt!
    input: EditLabelOption_Input

    """name of the organization"""
    org: String!
  ): Label

  """Edit a team"""
  orgEditTeam(
    """id of the team to edit"""
    id: Int!
    input: EditTeamOption_Input
  ): Team

  """Publicize a user's membership"""
  orgPublicizeMember(
    """name of the organization"""
    org: String!

    """username of the user"""
    username: String!
  ): Void

  """Remove a team member"""
  orgRemoveTeamMember(
    """id of the team"""
    id: BigInt!

    """username of the user to remove"""
    username: String!
  ): Void

  """
  This does not delete the repository, it only removes the repository from the team.
  """
  orgRemoveTeamRepository(
    """id of the team"""
    id: BigInt!

    """organization that owns the repo to remove"""
    org: String!

    """name of the repo to remove"""
    repo: String!
  ): Void

  """Create a backup for an app"""
  post_apps_by_appid_backup: post_apps_by_appid_backup_202_response

  """Update meta info and retention for this backup."""
  post_apps_by_appid_backups_by_backupId(
    """Backup ID"""
    backupId: String!
    input: post_apps_by_appid_backups_by_backupId_request_Input
  ): JSON

  """
  Clone app identified by appid from a backup to a new instance with the same version and data
  """
  post_apps_by_appid_clone(input: post_apps_by_appid_clone_request_Input): post_apps_by_appid_clone_201_response

  """
  Configure access to apps for Cloudron usermanagement or dashboard visibility
  """
  post_apps_by_appid_configure_access_restriction(input: post_apps_by_appid_configure_access_restriction_request_Input): JSON

  """Enable or disable the automatic backup"""
  post_apps_by_appid_configure_automatic_backup(input: post_apps_by_appid_configure_automatic_backup_request_Input): post_apps_by_appid_configure_automatic_backup_202_response

  """Configure the domain, subdomain, alias of an app"""
  post_apps_by_appid_configure_location(input: post_apps_by_appid_configure_location_request_Input): post_apps_by_appid_configure_location_202_response

  """Increase or the decrease the allocated memory limit"""
  post_apps_by_appid_configure_memory_limit(input: post_apps_by_appid_configure_memory_limit_request_Input): post_apps_by_appid_configure_memory_limit_202_response

  """Restart an installed app"""
  post_apps_by_appid_restart: post_apps_by_appid_restart_202_response

  """Restore an app from a specific backup"""
  post_apps_by_appid_restore(input: post_apps_by_appid_restore_request_Input): post_apps_by_appid_restore_202_response

  """Start a stopped app"""
  post_apps_by_appid_start: post_apps_by_appid_start_202_response

  """Stop a running app"""
  post_apps_by_appid_stop: post_apps_by_appid_stop_202_response

  """Uninstall an app"""
  post_apps_by_appid_uninstall: post_apps_by_appid_uninstall_202_response

  """
  This triggers an app installation. Use the `taskId` from the response with the Tasks API to follow the installation progress <br/> <br/> **Either `manifest` or `appStoreId` are required!** In most cases the `appStoreId` is the correct property to be used for installing apps from the Cloudron app catalogue.
  """
  post_apps_install(input: post_apps_install_request_Input): post_apps_install_200_response

  """
  Register this Cloudron with cloudron.io AppStore and enable access to the app library.
  """
  post_appstore_register_cloudron(input: post_appstore_register_cloudron_request_Input): JSON

  """
  Based on the backup creation and `retentionSecs` specified in the backup config, backups will be purged. This should not need to be called manually as the same logic is called automatically very 6 hours.
  """
  post_backups_cleanup: post_backups_cleanup_202_response

  """
  This will trigger a new backup for the whole system, including all apps.
  """
  post_backups_create: post_backups_create_202_response

  """
  Public route to activate the Cloudron. This creates the first user (aka owner) account. <br/><br/> Before installing apps, the Cloudron must be registered with a valid Appstore account as well using the 'Register Cloudron' route.
  """
  post_cloudron_activate(input: post_cloudron_activate_request_Input): post_cloudron_activate_201_response

  """Login to the Cloudron API to obtain an access token"""
  post_cloudron_login(input: post_cloudron_login_request_Input): post_cloudron_login_200_response

  """Renew SSL certificates of all or optionally provided domains"""
  post_cloudron_renew_certs(input: post_cloudron_renew_certs_request_Input): post_cloudron_renew_certs_202_response

  """
  Public route to restore a whole Cloudron from backup. This is only available until the Cloudron is activated.
  """
  post_cloudron_restore(input: post_cloudron_restore_request_Input): JSON

  """
  Public route and very first call to setup the dashboard domain.
  <br/><br/>
  <b>This call has to be made against the raw IP address (eg. https://1.2.3.4 ) accepting self-signed certificates.</b>
  <br/><br/>
  A curl example could look like:<br/>
  ```curl -k -X POST -H 'Content-Type: application/json' --data '{...}' http://1.2.3.4/api/v1/cloudron/setup```
  <br/><br/>
  Once called, the process can be tracked through the `setup` object in the `/api/v1/cloudron/status` API reply.
  After the status API returns a success, future API requests must be made to `https://my.domain.com`.
  <br/><br/>
  This routes gets disabled once the Cloudron has been activated.
  
  """
  post_cloudron_setup(input: post_cloudron_setup_request_Input): JSON

  """Add a new domain"""
  post_domains(input: post_domains_request_Input): JSON

  """Update Domain"""
  post_domains_by_domain(
    """Domain"""
    domain: String!
    input: DomainConfig_Input
  ): Void

  """Add group"""
  post_groups(input: Group_request_Input): Group

  """Update group"""
  post_groups_by_groupId(
    """Group ID"""
    groupId: String!
    input: Group_request_Input
  ): JSON

  """Set Mail Signature"""
  post_mail_by_domain_banner(
    """Domain"""
    domain: String!
    input: post_mail_by_domain_banner_request_Input
  ): JSON

  """Set Catchall addresses"""
  post_mail_by_domain_catch_all(
    """Domain"""
    domain: String!
    input: post_mail_by_domain_catch_all_request_Input
  ): JSON

  """
  Enable incoming email for the domain to receive emails. By default, only email sending is enabled.
  """
  post_mail_by_domain_enable(
    """Domain"""
    domain: String!
    input: EnableMailboxes_request_Input
  ): JSON

  """Set Mail From Validation"""
  post_mail_by_domain_mail_from_validation(
    """Domain"""
    domain: String!
    input: EnableMailboxes_request_Input
  ): JSON

  """Add mailbox."""
  post_mail_by_domain_mailboxes(
    """Domain"""
    domain: String!
    input: post_mail_by_domain_mailboxes_request_Input
  ): JSON

  """Update mailbox."""
  post_mail_by_domain_mailboxes_by_name(
    """Domain"""
    domain: String!

    """Mailbox"""
    name: String!
  ): Void

  """Configure a SMTP relay for this domain"""
  post_mail_by_domain_relay(
    """Domain"""
    domain: String!
    input: post_mail_by_domain_relay_request_Input
  ): JSON

  """Sent a test mail from domain."""
  post_mail_by_domain_send_test_mail(
    """Domain"""
    domain: String!
    input: post_mail_by_domain_send_test_mail_request_Input
  ): JSON

  """Set notification acknowledged state"""
  post_notifications_by_notificationId(
    """Notification Id"""
    notificationId: String!
  ): Void

  """Configure Service"""
  post_services_by_service(input: post_services_by_service_request_Input, service: ServiceName_parameter!): JSON

  """Restart Service"""
  post_services_by_service_restart(service: ServiceName_parameter!): JSON

  """Set Apps Autoupdate Pattern"""
  post_settings_app_autoupdate_pattern(input: UpdatePattern_Input): JSON

  """Set Backup Config"""
  post_settings_backup_config(input: BackupConfig_Input): JSON

  """Set Cloudron Autoupdate Pattern"""
  post_settings_box_autoupdate_pattern(input: UpdatePattern_Input): JSON

  """Set Cloudron Avatar"""
  post_settings_cloudron_avatar(input: post_settings_cloudron_avatar_request_Input): JSON

  """Set Cloudron Name"""
  post_settings_cloudron_name(input: CloudronNameConfig_Input): JSON

  """Set Dynamic DNS State"""
  post_settings_dynamic_dns(input: DynamicDnsConfig_request_Input): JSON

  """Set External LDAP Config"""
  post_settings_external_ldap_config(input: ExternalLdapConfig_Input): JSON

  """Set Platform Config"""
  post_settings_platform_config(input: PlatformConfig_Input): JSON

  """Set Registry Config"""
  post_settings_registry_config(input: RegistryConfig_Input): JSON

  """Set Sysinfo Config"""
  post_settings_sysinfo_config(input: SysinfoConfig_Input): JSON

  """Set Timezone"""
  post_settings_time_zone(input: TimezoneConfig_Input): JSON

  """Set Unstable Apps State"""
  post_settings_unstable_apps(input: DynamicDnsConfig_request_Input): JSON

  """Stop Task"""
  post_tasks_by_taskId_stop(
    """Task ID"""
    taskId: Int!
  ): Void

  """Add new User"""
  post_users(input: post_users_request_Input): User

  """Update user"""
  post_users_by_userId(
    input: post_users_by_userId_request_Input

    """User ID"""
    userId: String!
  ): User

  """Change Password"""
  post_users_by_userId_password(
    input: post_users_by_userId_password_request_Input

    """User ID"""
    userId: String!
  ): Void

  """
  Send user invite email. This will not reset the invite token. See the create invite route.
  """
  post_users_by_userId_send_invite_email(
    input: post_users_by_userId_send_invite_email_request_Input

    """User ID"""
    userId: String!
  ): JSON

  """Set group members"""
  put_groups_by_groupId_members(
    """Group ID"""
    groupId: String!
    input: put_groups_by_groupId_members_request_Input
  ): JSON

  """Set groups a user belongs to"""
  put_users_by_userId_groups(
    input: put_users_by_userId_groups_request_Input

    """User ID"""
    userId: String!
  ): Void

  """Reject a repo transfer"""
  rejectRepoTransfer(
    """owner of the repo to transfer"""
    owner: String!

    """name of the repo to transfer"""
    repo: String!
  ): Repository

  """Render a markdown document as HTML"""
  renderMarkdown(input: MarkdownOption_Input): String

  """Render raw markdown as HTML"""
  renderMarkdownRaw(
    """Request body to render"""
    input: String!
  ): String

  """Add a collaborator to a repository"""
  repoAddCollaborator(
    """username of the collaborator to add"""
    collaborator: String!
    input: AddCollaboratorOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """add a push mirror to the repository"""
  repoAddPushMirror(
    input: CreatePushMirrorOption_represents_need_information_to_create_a_push_mirror_of_a_repository__Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): PushMirror

  """Add a team to a repository"""
  repoAddTeam(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """team name"""
    team: String!
  ): Void

  """Add a topic to a repository"""
  repoAddTopic(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """name of the topic to add"""
    topic: String!
  ): Void

  """Apply diff patch to repository"""
  repoApplyDiffPatch(
    input: UpdateFileOptions_Input!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): FileResponse

  """Cancel the scheduled auto merge for the given pull request"""
  repoCancelScheduledAutoMerge(
    """index of the pull request to merge"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Create a branch"""
  repoCreateBranch(
    input: CreateBranchRepoOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Branch

  """Create a branch protections for a repository"""
  repoCreateBranchProtection(
    input: CreateBranchProtectionOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): BranchProtection

  """Create a file in a repository"""
  repoCreateFile(
    """path of the file to create"""
    filepath: String!
    input: CreateFileOptions_Input!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): FileResponse

  """Create a hook"""
  repoCreateHook(
    input: CreateHookOption_Input!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Hook

  """Add a key to a repository"""
  repoCreateKey(
    input: CreateKeyOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): DeployKey

  """Create a pull request"""
  repoCreatePullRequest(
    input: CreatePullRequestOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): PullRequest

  """Create a review to an pull request"""
  repoCreatePullReview(
    """index of the pull request"""
    index: BigInt!
    input: CreatePullReviewOptions_Input!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): PullReview

  """create review requests for a pull request"""
  repoCreatePullReviewRequests(
    """index of the pull request"""
    index: BigInt!
    input: PullReviewRequestOptions_Input!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [PullReview]

  """Create a release"""
  repoCreateRelease(
    input: CreateReleaseOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Release

  """Create a release attachment"""
  repoCreateReleaseAttachment(
    """id of the release"""
    id: BigInt!

    """name of the attachment"""
    name: String

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Attachment

  """Create a commit status"""
  repoCreateStatus(
    input: CreateStatusOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """sha of the commit"""
    sha: String!
  ): CommitStatus

  """Create a new git tag in a repository"""
  repoCreateTag(
    input: CreateTagOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Tag

  """Create a wiki page"""
  repoCreateWikiPage(
    input: CreateWikiPageOptions_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): WikiPage

  """Delete a repository"""
  repoDelete(
    """owner of the repo to delete"""
    owner: String!

    """name of the repo to delete"""
    repo: String!
  ): Void

  """Delete a specific branch from a repository"""
  repoDeleteBranch(
    """branch to delete"""
    branch: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a specific branch protection for the repository"""
  repoDeleteBranchProtection(
    """name of protected branch"""
    name: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a collaborator from a repository"""
  repoDeleteCollaborator(
    """username of the collaborator to delete"""
    collaborator: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a file in a repository"""
  repoDeleteFile(
    """path of the file to delete"""
    filepath: String!
    input: DeleteFileOptions_Input!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): FileDeleteResponse

  """Delete a Git hook in a repository"""
  repoDeleteGitHook(
    """id of the hook to get"""
    id: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a hook in a repository"""
  repoDeleteHook(
    """id of the hook to delete"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a key from a repository"""
  repoDeleteKey(
    """id of the key to delete"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a specific review from a pull request"""
  repoDeletePullReview(
    """id of the review"""
    id: BigInt!

    """index of the pull request"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """cancel review requests for a pull request"""
  repoDeletePullReviewRequests(
    """index of the pull request"""
    index: BigInt!
    input: PullReviewRequestOptions_Input!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """deletes a push mirror from a repository by remoteName"""
  repoDeletePushMirror(
    """remote name of the pushMirror"""
    name: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a release"""
  repoDeleteRelease(
    """id of the release to delete"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a release attachment"""
  repoDeleteReleaseAttachment(
    """id of the attachment to delete"""
    attachment_id: BigInt!

    """id of the release"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Delete a release by tag name"""
  repoDeleteReleaseByTag(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """tag name of the release to delete"""
    tag: String!
  ): Void

  """Delete a repository's tag by name"""
  repoDeleteTag(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """name of tag to delete"""
    tag: String!
  ): Void

  """Delete a team from a repository"""
  repoDeleteTeam(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """team name"""
    team: String!
  ): Void

  """Delete a topic from a repository"""
  repoDeleteTopic(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """name of the topic to delete"""
    topic: String!
  ): Void

  """Delete a wiki page"""
  repoDeleteWikiPage(
    """owner of the repo"""
    owner: String!

    """name of the page"""
    pageName: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Dismiss a review for a pull request"""
  repoDismissPullReview(
    """id of the review"""
    id: BigInt!

    """index of the pull request"""
    index: BigInt!
    input: DismissPullReviewOptions_Input!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): PullReview

  """
  Edit a repository's properties. Only fields that are set will be changed.
  """
  repoEdit(
    input: EditRepoOption_Input

    """owner of the repo to edit"""
    owner: String!

    """name of the repo to edit"""
    repo: String!
  ): Repository

  """
  Edit a branch protections for a repository. Only fields that are set will be changed
  """
  repoEditBranchProtection(
    input: EditBranchProtectionOption_Input

    """name of protected branch"""
    name: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): BranchProtection

  """Edit a Git hook in a repository"""
  repoEditGitHook(
    """id of the hook to get"""
    id: String!
    input: EditGitHookOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): GitHook

  """Edit a hook in a repository"""
  repoEditHook(
    """index of the hook"""
    id: BigInt!
    input: EditHookOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Hook

  """
  Update a pull request. If using deadline only the date will be taken into account, and time of day ignored.
  """
  repoEditPullRequest(
    """index of the pull request to edit"""
    index: BigInt!
    input: EditPullRequestOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): PullRequest

  """Update a release"""
  repoEditRelease(
    """id of the release to edit"""
    id: BigInt!
    input: EditReleaseOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Release

  """Edit a release attachment"""
  repoEditReleaseAttachment(
    """id of the attachment to edit"""
    attachment_id: BigInt!

    """id of the release"""
    id: BigInt!
    input: EditAttachmentOptions_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Attachment

  """Edit a wiki page"""
  repoEditWikiPage(
    input: CreateWikiPageOptions_Input

    """owner of the repo"""
    owner: String!

    """name of the page"""
    pageName: String!

    """name of the repo"""
    repo: String!
  ): WikiPage

  """Merge a pull request"""
  repoMergePullRequest(
    """index of the pull request to merge"""
    index: BigInt!
    input: MergePullRequestOption_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): JSON

  """Migrate a remote git repository"""
  repoMigrate(input: MigrateRepoOptions_Input): Repository

  """Sync a mirrored repository"""
  repoMirrorSync(
    """owner of the repo to sync"""
    owner: String!

    """name of the repo to sync"""
    repo: String!
  ): JSON

  """Sync all push mirrored repository"""
  repoPushMirrorSync(
    """owner of the repo to sync"""
    owner: String!

    """name of the repo to sync"""
    repo: String!
  ): JSON

  """Submit a pending review to an pull request"""
  repoSubmitPullReview(
    """id of the review"""
    id: BigInt!

    """index of the pull request"""
    index: BigInt!
    input: SubmitPullReviewOptions_Input!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): PullReview

  """Test a push webhook"""
  repoTestHook(
    """id of the hook to test"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """
    The name of the commit/branch/tag, indicates which commit will be loaded to the webhook payload.
    """
    ref: String

    """name of the repo"""
    repo: String!
  ): Void

  """Transfer a repo ownership"""
  repoTransfer(
    input: TransferRepoOption_Input!

    """owner of the repo to transfer"""
    owner: String!

    """name of the repo to transfer"""
    repo: String!
  ): Repository

  """Cancel to dismiss a review for a pull request"""
  repoUnDismissPullReview(
    """id of the review"""
    id: BigInt!

    """index of the pull request"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): PullReview

  """Update a file in a repository"""
  repoUpdateFile(
    """path of the file to update"""
    filepath: String!
    input: UpdateFileOptions_Input!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): FileResponse

  """Merge PR's baseBranch into headBranch"""
  repoUpdatePullRequest(
    """index of the pull request to get"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
    style: mutationInput_repoUpdatePullRequest_style
  ): JSON

  """Replace list of topics for a repository"""
  repoUpdateTopics(
    input: RepoTopicOptions_Input

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Update user settings"""
  updateUserSettings(input: UserSettingsOptions_Input): [UserSettings]

  """Add email addresses"""
  userAddEmail(input: CreateEmailOption_Input): [Email]

  """creates a new OAuth2 application"""
  userCreateOAuth2Application(input: CreateOAuth2ApplicationOptions_Input!): OAuth2Application_represents_an_OAuth2_application_

  """Create an access token"""
  userCreateToken(
    input: CreateAccessTokenOption_Input

    """username of user"""
    username: String!
  ): AccessToken_represents_an_API_access_token_

  """Unfollow a user"""
  userCurrentDeleteFollow(
    """username of user to unfollow"""
    username: String!
  ): Void

  """Remove a GPG key"""
  userCurrentDeleteGPGKey(
    """id of key to delete"""
    id: BigInt!
  ): Void

  """Delete a public key"""
  userCurrentDeleteKey(
    """id of key to delete"""
    id: BigInt!
  ): Void

  """Unstar the given repo"""
  userCurrentDeleteStar(
    """owner of the repo to unstar"""
    owner: String!

    """name of the repo to unstar"""
    repo: String!
  ): Void

  """Unwatch a repo"""
  userCurrentDeleteSubscription(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Create a GPG key"""
  userCurrentPostGPGKey(input: CreateGPGKeyOption_Input): GPGKey

  """Create a public key"""
  userCurrentPostKey(input: CreateKeyOption_Input): PublicKey

  """Follow a user"""
  userCurrentPutFollow(
    """username of user to follow"""
    username: String!
  ): Void

  """Star the given repo"""
  userCurrentPutStar(
    """owner of the repo to star"""
    owner: String!

    """name of the repo to star"""
    repo: String!
  ): Void

  """Watch a repo"""
  userCurrentPutSubscription(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): WatchInfo

  """delete an access token"""
  userDeleteAccessToken(
    """token to be deleted, identified by ID and if not available by name"""
    token: String!

    """username of user"""
    username: String!
  ): Void

  """Delete email addresses"""
  userDeleteEmail(input: DeleteEmailOption_Input): Void

  """delete an OAuth2 Application"""
  userDeleteOAuth2Application(
    """token to be deleted"""
    id: BigInt!
  ): Void

  """
  update an OAuth2 Application, this includes regenerating the client secret
  """
  userUpdateOAuth2Application(
    """application to be updated"""
    id: BigInt!
    input: CreateOAuth2ApplicationOptions_Input!
  ): OAuth2Application_represents_an_OAuth2_application_

  """Verify a GPG key"""
  userVerifyGPGKey: GPGKey
}

"""
NodeInfo contains standardized way of exposing metadata about a server running one of the distributed social networks
"""
type NodeInfo {
  metadata: JSON
  openRegistrations: Boolean
  protocols: [String]
  services: NodeInfoServices
  software: NodeInfoSoftware
  usage: NodeInfoUsage
  version: String
}

"""
NodeInfoServices contains the third party sites this server can connect to via their application API
"""
type NodeInfoServices {
  inbound: [String]
  outbound: [String]
}

"""NodeInfoSoftware contains Metadata about server software in use"""
type NodeInfoSoftware {
  homepage: String
  name: String
  repository: String
  version: String
}

"""NodeInfoUsage contains usage statistics for this server"""
type NodeInfoUsage {
  localComments: BigInt
  localPosts: BigInt
  users: NodeInfoUsageUsers
}

"""NodeInfoUsageUsers contains statistics about the users of this server"""
type NodeInfoUsageUsers {
  activeHalfyear: BigInt
  activeMonth: BigInt
  total: BigInt
}

"""Integers that will have a value of 0 or more."""
scalar NonNegativeInt

"""Note contains information related to a git note"""
type Note {
  commit: Commit_contains_information_generated_from_a_Git_commit_
  message: String
}

"""Notification"""
type Notification {
  acknowledged: Boolean
  creationTime: DateTime

  """EventId from Eventlog"""
  eventId: String

  """Notification Id for GET and POST calls"""
  id: String
  message: String
  title: String
}

"""NotificationCount number of unread notifications"""
type NotificationCount {
  new: BigInt
}

"""
NotificationSubject contains the notification subject (Issue/Pull/Commit)
"""
type NotificationSubject {
  html_url: String
  latest_comment_html_url: String
  latest_comment_url: String

  """StateType issue state type"""
  state: String
  title: String

  """NotifySubjectType represent type of notification subject"""
  type: String
  url: String
}

"""NotificationThread expose Notification on API"""
type NotificationThread {
  id: BigInt
  pinned: Boolean
  repository: Repository
  subject: NotificationSubject
  unread: Boolean
  updated_at: DateTime
  url: String
}

type OAuth2Application_represents_an_OAuth2_application_ {
  client_id: String
  client_secret: String
  confidential_client: Boolean
  created: DateTime
  id: BigInt
  name: String
  redirect_uris: [String]
}

scalar ObjMap

"""Organization represents an organization"""
type Organization {
  avatar_url: String
  description: String
  full_name: String
  id: BigInt
  location: String
  name: String
  repo_admin_change_team_access: Boolean

  """deprecated"""
  username: String
  visibility: String
  website: String
}

"""
OrganizationPermissions list different users permissions on an organization
"""
type OrganizationPermissions {
  can_create_repository: Boolean
  can_read: Boolean
  can_write: Boolean
  is_admin: Boolean
  is_owner: Boolean
}

"""PRBranchInfo information about a branch"""
type PRBranchInfo {
  label: String
  ref: String
  repo: Repository
  repo_id: BigInt
  sha: String
}

"""Package represents a package"""
type Package {
  created_at: DateTime
  creator: User
  id: BigInt
  name: String
  owner: User
  repository: Repository
  type: String
  version: String
}

"""PackageFile represents a package file"""
type PackageFile {
  Size: BigInt
  id: BigInt
  md5: String
  name: String
  sha1: String
  sha256: String
  sha512: String
}

"""PayloadCommit represents a commit"""
type PayloadCommit {
  added: [String]
  author: PayloadUser
  committer: PayloadUser

  """sha1 hash of the commit"""
  id: String
  message: String
  modified: [String]
  removed: [String]
  timestamp: DateTime
  url: String
  verification: PayloadCommitVerification
}

"""PayloadCommitVerification represents the GPG verification of a commit"""
type PayloadCommitVerification {
  payload: String
  reason: String
  signature: String
  signer: PayloadUser
  verified: Boolean
}

"""PayloadUser represents the author or committer of a commit"""
type PayloadUser {
  email: EmailAddress

  """Full name of the commit author"""
  name: String
  username: String
}

"""Permission represents a set of permissions"""
type Permission {
  admin: Boolean
  pull: Boolean
  push: Boolean
}

type PlatformConfig {
  mail: AddonConfig
  mongodb: AddonConfig
  mysql: AddonConfig
  postgresql: AddonConfig
}

input PlatformConfig_Input {
  mail: AddonConfig_Input
  mongodb: AddonConfig_Input
  mysql: AddonConfig_Input
  postgresql: AddonConfig_Input
}

"""
Object of port bindings. If an app uses other TCP/UDP ports, new port bindings have to be specified to avoid conflict
"""
type PortBindings {
  EXAMPLE_PORT: Int
}

"""
Object of port bindings. If an app uses other TCP/UDP ports, new port bindings have to be specified to avoid conflict
"""
input PortBindings_Input {
  EXAMPLE_PORT: Int
}

"""Integers that will have a value greater than 0."""
scalar PositiveInt

"""VPS provider name tag"""
enum Provider {
  ami
  azure
  cloudscale
  contabo
  digitalocean
  ec2
  exoscale
  galaxygate
  gce
  generic
  hetzner
  interox
  lightsail
  linode
  netcup
  ovh
  rosehosting
  scaleway
  skysilk
  time4vps
  upcloud
  vultr
}

"""PublicKey publickey is a user key to push code to repository"""
type PublicKey {
  created_at: DateTime
  fingerprint: String
  id: BigInt
  key: String
  key_type: String
  read_only: Boolean
  title: String
  url: String
  user: User
}

"""PullRequest represents a pull request"""
type PullRequest {
  allow_maintainer_edit: Boolean
  assignee: User
  assignees: [User]
  base: PRBranchInfo
  body: String
  closed_at: DateTime
  comments: BigInt
  created_at: DateTime
  diff_url: String
  due_date: DateTime
  head: PRBranchInfo
  html_url: String
  id: BigInt
  is_locked: Boolean
  labels: [Label]
  merge_base: String
  merge_commit_sha: String
  mergeable: Boolean
  merged: Boolean
  merged_at: DateTime
  merged_by: User
  milestone: Milestone
  number: BigInt
  patch_url: String

  """StateType issue state type"""
  state: String
  title: String
  updated_at: DateTime
  url: String
  user: User
}

"""PullRequestMeta PR info if an issue is a PR"""
type PullRequestMeta {
  merged: Boolean
  merged_at: DateTime
}

"""PullReview represents a pull request review"""
type PullReview {
  body: String
  comments_count: BigInt
  commit_id: String
  dismissed: Boolean
  html_url: String
  id: BigInt
  official: Boolean
  pull_request_url: String
  stale: Boolean

  """ReviewStateType review state type"""
  state: String
  submitted_at: DateTime
  team: Team
  updated_at: DateTime
  user: User
}

"""PullReviewComment represents a comment on a pull request review"""
type PullReviewComment {
  body: String
  commit_id: String
  created_at: DateTime
  diff_hunk: String
  html_url: String
  id: BigInt
  original_commit_id: String
  original_position: Int
  path: String
  position: Int
  pull_request_review_id: BigInt
  pull_request_url: String
  resolver: User
  updated_at: DateTime
  user: User
}

"""
PullReviewRequestOptions are options to add or remove pull review requests
"""
input PullReviewRequestOptions_Input {
  reviewers: [String]
  team_reviewers: [String]
}

"""PushMirror represents information of a push mirror"""
type PushMirror {
  created: String
  interval: String
  last_error: String
  last_update: String
  remote_address: String
  remote_name: String
  repo_name: String
  sync_on_commit: Boolean
}

type Query {
  """Gets the tag object of an annotated tag (not lightweight tags)"""
  GetAnnotatedTag(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """
    sha of the tag. The Git tags API only supports annotated tag objects, not lightweight tags.
    """
    sha: String!
  ): AnnotatedTag

  """Gets the blob of a repository."""
  GetBlob(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """sha of the commit"""
    sha: String!
  ): GitBlobResponse

  """Gets the tree of a repository."""
  GetTree(
    """owner of the repo"""
    owner: String!

    """
    page number; the 'truncated' field in the response will be true if there are still more items after this page, false if the last page
    """
    page: Int

    """number of items per page"""
    per_page: Int

    """show all directories and files"""
    recursive: Boolean

    """name of the repo"""
    repo: String!

    """sha of the commit"""
    sha: String!
  ): GitTreeResponse

  """Returns the Person actor for a user"""
  activitypubPerson(
    """user ID of the user"""
    user_id: Int!
  ): ActivityPub

  """List cron tasks"""
  adminCronList(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [Cron]

  """List all organizations"""
  adminGetAllOrgs(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [Organization]

  """List all users"""
  adminGetAllUsers(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [User]

  """Get a hook"""
  adminGetHook(
    """id of the hook to get"""
    id: BigInt!
  ): Hook

  """List system's webhooks"""
  adminListHooks(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [Hook]

  """List unadopted repositories"""
  adminUnadoptedList(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """pattern of repositories to search for"""
    pattern: String
  ): [String]

  """List installed apps"""
  apps: apps_200_response

  """Get installed app"""
  apps_by_appid: App

  """Return a list of all backups for this app"""
  apps_by_appid_backups(page: Int = 1, per_page: Int = 25): apps_by_appid_backups_200_response

  """
  For format `plain` simple text lines are returned. When format is `json` each log line looks like `{ realtimeTimestamp: timestamp, message: message, source: appId }`
  """
  apps_by_appid_logs(
    format: queryInput_apps_by_appid_logs_format = json

    """Number of log lines to fetch. Starting at latest."""
    lines: String = "10"
  ): String

  """
  A logstream is of type [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource). For format `plain` simple text lines are returned. When format is `json` each log line looks like `{ realtimeTimestamp: timestamp, message: message, source: appId }`
  """
  apps_by_appid_logstream(
    format: queryInput_apps_by_appid_logstream_format = json

    """Number of log lines to fetch. Starting at latest."""
    lines: String = "10"
  ): String

  """Get Subscription"""
  appstore_subscription: appstore_subscription_200_response

  """List Backups"""
  backups(page: Int = 1, per_page: Int = 25): backups_200_response

  """Public route to get status information for this Cloudron."""
  cloudron_status: cloudron_status_200_response

  """This config object contains the platform configuration."""
  config: config_200_response

  """Get all domains"""
  domains: domains_200_response

  """Get Domain"""
  domains_by_domain(
    """Domain"""
    domain: String!
  ): domains_by_domain_200_response

  """Check DNS Records"""
  domains_by_domain_dns_check(
    """Domain"""
    domain: String!

    """The subdomain to check the DNS record for"""
    subdomain: String
  ): domains_by_domain_dns_check_200_response

  """Get instance's global settings for api"""
  getGeneralAPISettings: GeneralAPISettings

  """Get instance's global settings for Attachment"""
  getGeneralAttachmentSettings: GeneralAttachmentSettings

  """Get instance's global settings for repositories"""
  getGeneralRepositorySettings: GeneralRepoSettings

  """Get instance's global settings for ui"""
  getGeneralUISettings: GeneralUISettings

  """Returns the nodeinfo of the Gitea application"""
  getNodeInfo: NodeInfo

  """Gets a package"""
  getPackage(
    """name of the package"""
    name: String!

    """owner of the package"""
    owner: String!

    """type of the package"""
    type: String!

    """version of the package"""
    version: String!
  ): Package

  """Get default signing-key.gpg"""
  getSigningKey: String

  """Get user settings"""
  getUserSettings: [UserSettings]

  """Get a Token to verify"""
  getVerificationToken: String

  """Returns the version of the Gitea application"""
  getVersion: ServerVersion

  """List groups"""
  groups: groups_200_response

  """Get group"""
  groups_by_groupId(
    """Group ID"""
    groupId: String!
  ): GroupWithMembers

  """Check if user is subscribed to an issue"""
  issueCheckSubscription(
    """index of the issue"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): WatchInfo

  """Get a comment"""
  issueGetComment(
    """id of the comment"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): issueGetComment_response

  """Get a list of reactions from a comment of an issue"""
  issueGetCommentReactions(
    """id of the comment to edit"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [Reaction]

  """List all comments on an issue"""
  issueGetComments(
    """
    if provided, only comments updated before the provided time are returned.
    """
    before: DateTime

    """index of the issue"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """
    if provided, only comments updated since the specified time are returned.
    """
    since: DateTime
  ): [Comment]

  """List all comments and events on an issue"""
  issueGetCommentsAndTimeline(
    """
    if provided, only comments updated before the provided time are returned.
    """
    before: DateTime

    """index of the issue"""
    index: BigInt!

    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!

    """
    if provided, only comments updated since the specified time are returned.
    """
    since: DateTime
  ): [TimelineComment]

  """Get an issue"""
  issueGetIssue(
    """index of the issue to get"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Issue

  """Get an issue attachment"""
  issueGetIssueAttachment(
    """id of the attachment to get"""
    attachment_id: BigInt!

    """index of the issue"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Attachment

  """Get a comment attachment"""
  issueGetIssueCommentAttachment(
    """id of the attachment to get"""
    attachment_id: BigInt!

    """id of the comment"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Attachment

  """Get a list reactions of an issue"""
  issueGetIssueReactions(
    """index of the issue"""
    index: BigInt!

    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [Reaction]

  """Get a single label"""
  issueGetLabel(
    """id of the label to get"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Label

  """Get an issue's labels"""
  issueGetLabels(
    """index of the issue"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [Label]

  """Get a milestone"""
  issueGetMilestone(
    """the milestone to get, identified by ID and if not available by name"""
    id: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Milestone

  """Get all of a repository's opened milestones"""
  issueGetMilestonesList(
    """page size of results"""
    limit: Int

    """filter by milestone name"""
    name: String

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!

    """
    Milestone state, Recognized values are open, closed and all. Defaults to "open"
    """
    state: String
  ): [Milestone]

  """List all comments in a repository"""
  issueGetRepoComments(
    """
    if provided, only comments updated before the provided time are returned.
    """
    before: DateTime

    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!

    """
    if provided, only comments updated since the provided time are returned.
    """
    since: DateTime
  ): [Comment]

  """List issue's attachments"""
  issueListIssueAttachments(
    """index of the issue"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [Attachment]

  """List comment's attachments"""
  issueListIssueCommentAttachments(
    """id of the comment"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [Attachment]

  """List a repository's issues"""
  issueListIssues(
    """Only show items for which the given user is assigned"""
    assigned_by: String

    """
    Only show items updated before the given time. This is a timestamp in RFC 3339 format
    """
    before: DateTime

    """Only show items which were created by the the given user"""
    created_by: String

    """
    comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded
    """
    labels: String

    """page size of results"""
    limit: Int

    """Only show items in which the given user was mentioned"""
    mentioned_by: String

    """
    comma separated list of milestone names or ids. It uses names and fall back to ids. Fetch only issues that have any of this milestones. Non existent milestones are discarded
    """
    milestones: String

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """search string"""
    q: String

    """name of the repo"""
    repo: String!

    """
    Only show items updated after the given time. This is a timestamp in RFC 3339 format
    """
    since: DateTime
    state: queryInput_issueListIssues_state
    type: queryInput_issueListIssues_type
  ): [Issue]

  """Get all of a repository's labels"""
  issueListLabels(
    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [Label]

  """Search for issues across the repositories that the user has access to"""
  issueSearchIssues(
    """filter (issues / pulls) assigned to you, default is false"""
    assigned: Boolean

    """
    Only show notifications updated before the given time. This is a timestamp in RFC 3339 format
    """
    before: DateTime

    """filter (issues / pulls) created by you, default is false"""
    created: Boolean

    """
    comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded
    """
    labels: String

    """page size of results"""
    limit: Int

    """filter (issues / pulls) mentioning you, default is false"""
    mentioned: Boolean

    """
    comma separated list of milestone names. Fetch only issues that have any of this milestones. Non existent are discarded
    """
    milestones: String

    """filter by owner"""
    owner: String

    """page number of results to return (1-based)"""
    page: Int

    """repository to prioritize in the results"""
    priority_repo_id: BigInt

    """search string"""
    q: String

    """filter pulls requesting your review, default is false"""
    review_requested: Boolean

    """
    Only show notifications updated after the given time. This is a timestamp in RFC 3339 format
    """
    since: DateTime

    """whether issue is open or closed"""
    state: String

    """filter by team (requires organization owner parameter to be provided)"""
    team: String

    """filter by type (issues / pulls) if set"""
    type: String
  ): [Issue]

  """Get users who subscribed on an issue."""
  issueSubscriptions(
    """index of the issue"""
    index: BigInt!

    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [User]

  """List an issue's tracked times"""
  issueTrackedTimes(
    """
    Only show times updated before the given time. This is a timestamp in RFC 3339 format
    """
    before: DateTime

    """index of the issue"""
    index: BigInt!

    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!

    """
    Only show times updated after the given time. This is a timestamp in RFC 3339 format
    """
    since: DateTime

    """optional filter by user (available for issue managers)"""
    user: String
  ): [TrackedTime]

  """List a repository's forks"""
  listForks(
    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [Repository]

  """Gets all files of a package"""
  listPackageFiles(
    """name of the package"""
    name: String!

    """owner of the package"""
    owner: String!

    """type of the package"""
    type: String!

    """version of the package"""
    version: String!
  ): [PackageFile]

  """Gets all packages of an owner"""
  listPackages(
    """page size of results"""
    limit: Int

    """owner of the packages"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name filter"""
    q: String
    type: queryInput_listPackages_type
  ): [Package]

  """Get Mail Domain Info"""
  mail_by_domain(
    """Domain"""
    domain: String!
  ): Domain

  """Get mailbox count."""
  mail_by_domain_mailbox_count(
    """Domain"""
    domain: String!
  ): mail_by_domain_mailbox_count_200_response

  """List mailboxes for this domain."""
  mail_by_domain_mailboxes(
    """Domain"""
    domain: String!
    page: Int = 1
    per_page: Int = 25
    search: String
  ): mail_by_domain_mailboxes_200_response

  """Get mailbox information."""
  mail_by_domain_mailboxes_by_name(
    """Domain"""
    domain: String!

    """Mailbox"""
    name: String!
  ): Mailbox

  """Get Mail Domain Status"""
  mail_by_domain_status(
    """Domain"""
    domain: String!
  ): mail_by_domain_status_200_response

  """List notifications."""
  notifications(
    """Filter by acknowledged status"""
    acknowledged: Boolean
    page: Int = 1
    per_page: Int = 25
  ): notifications_200_response

  """Get notification"""
  notifications_by_notificationId(
    """Notification Id"""
    notificationId: String!
  ): Notification

  """List users's notification threads"""
  notifyGetList(
    """If true, show notifications marked as read. Default value is false"""
    all: Boolean

    """
    Only show notifications updated before the given time. This is a timestamp in RFC 3339 format
    """
    before: DateTime

    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """
    Only show notifications updated after the given time. This is a timestamp in RFC 3339 format
    """
    since: DateTime

    """
    Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread & pinned.
    """
    status_types: [String]

    """filter notifications by subject type"""
    subject_type: [queryInput_notifyGetList_subject_type_items]
  ): [NotificationThread]

  """List users's notification threads on a specific repo"""
  notifyGetRepoList(
    """If true, show notifications marked as read. Default value is false"""
    all: Boolean

    """
    Only show notifications updated before the given time. This is a timestamp in RFC 3339 format
    """
    before: DateTime

    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!

    """
    Only show notifications updated after the given time. This is a timestamp in RFC 3339 format
    """
    since: DateTime

    """
    Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread & pinned
    """
    status_types: [String]

    """filter notifications by subject type"""
    subject_type: [queryInput_notifyGetRepoList_subject_type_items]
  ): [NotificationThread]

  """Get notification thread by ID"""
  notifyGetThread(
    """id of notification thread"""
    id: String!
  ): NotificationThread

  """Check if unread notifications exist"""
  notifyNewAvailable: NotificationCount

  """Get an organization"""
  orgGet(
    """name of the organization to get"""
    org: String!
  ): Organization

  """Get list of organizations"""
  orgGetAll(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [Organization]

  """Get a hook"""
  orgGetHook(
    """id of the hook to get"""
    id: BigInt!

    """name of the organization"""
    org: String!
  ): Hook

  """Get a single label"""
  orgGetLabel(
    """id of the label to get"""
    id: BigInt!

    """name of the organization"""
    org: String!
  ): Label

  """Get a team"""
  orgGetTeam(
    """id of the team to get"""
    id: BigInt!
  ): Team

  """Get user permissions in organization"""
  orgGetUserPermissions(
    """name of the organization"""
    org: String!

    """username of user"""
    username: String!
  ): OrganizationPermissions

  """Check if a user is a member of an organization"""
  orgIsMember(
    """name of the organization"""
    org: String!

    """username of the user"""
    username: String!
  ): Void

  """Check if a user is a public member of an organization"""
  orgIsPublicMember(
    """name of the organization"""
    org: String!

    """username of the user"""
    username: String!
  ): Void

  """List the current user's organizations"""
  orgListCurrentUserOrgs(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [Organization]

  """List an organization's webhooks"""
  orgListHooks(
    """page size of results"""
    limit: Int

    """name of the organization"""
    org: String!

    """page number of results to return (1-based)"""
    page: Int
  ): [Hook]

  """List an organization's labels"""
  orgListLabels(
    """page size of results"""
    limit: Int

    """name of the organization"""
    org: String!

    """page number of results to return (1-based)"""
    page: Int
  ): [Label]

  """List an organization's members"""
  orgListMembers(
    """page size of results"""
    limit: Int

    """name of the organization"""
    org: String!

    """page number of results to return (1-based)"""
    page: Int
  ): [User]

  """List an organization's public members"""
  orgListPublicMembers(
    """page size of results"""
    limit: Int

    """name of the organization"""
    org: String!

    """page number of results to return (1-based)"""
    page: Int
  ): [User]

  """List an organization's repos"""
  orgListRepos(
    """page size of results"""
    limit: Int

    """name of the organization"""
    org: String!

    """page number of results to return (1-based)"""
    page: Int
  ): [Repository]

  """List a particular member of team"""
  orgListTeamMember(
    """id of the team"""
    id: BigInt!

    """username of the member to list"""
    username: String!
  ): User

  """List a team's members"""
  orgListTeamMembers(
    """id of the team"""
    id: BigInt!

    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [User]

  """List a particular repo of team"""
  orgListTeamRepo(
    """id of the team"""
    id: BigInt!

    """organization that owns the repo to list"""
    org: String!

    """name of the repo to list"""
    repo: String!
  ): Repository

  """List a team's repos"""
  orgListTeamRepos(
    """id of the team"""
    id: BigInt!

    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [Repository]

  """List an organization's teams"""
  orgListTeams(
    """page size of results"""
    limit: Int

    """name of the organization"""
    org: String!

    """page number of results to return (1-based)"""
    page: Int
  ): [Team]

  """List a user's organizations"""
  orgListUserOrgs(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """username of user"""
    username: String!
  ): [Organization]

  """Check if a user is a collaborator of a repository"""
  repoCheckCollaborator(
    """username of the collaborator"""
    collaborator: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Check if a team is assigned to a repository"""
  repoCheckTeam(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """team name"""
    team: String!
  ): Team

  """Get a commit's diff or patch"""
  repoDownloadCommitDiffOrPatch(
    diffType: queryInput_repoDownloadCommitDiffOrPatch_diffType!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """SHA of the commit to get"""
    sha: String!
  ): String

  """Get a pull request diff or patch"""
  repoDownloadPullDiffOrPatch(
    """
    whether to include binary file changes. if true, the diff is applicable with `git apply`
    """
    binary: Boolean
    diffType: queryInput_repoDownloadPullDiffOrPatch_diffType!

    """index of the pull request to get"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): String

  """Get a repository"""
  repoGet(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Repository

  """Get a list of all commits from a repository"""
  repoGetAllCommits(
    """page size of results (ignored if used with 'path')"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """filepath of a file/dir"""
    path: String

    """name of the repo"""
    repo: String!

    """SHA or branch to start listing commits from (usually 'master')"""
    sha: String

    """
    include diff stats for every commit (disable for speedup, default 'true')
    """
    stat: Boolean
  ): [repoGetAllCommits_response]

  """Get an archive of a repository"""
  repoGetArchive(
    """
    the git reference for download with attached archive format (e.g. master.zip)
    """
    archive: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): JSON

  """Return all users that have write access and can be assigned to issues"""
  repoGetAssignees(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [User]

  """
  Retrieve a specific branch from a repository, including its effective branch protection
  """
  repoGetBranch(
    """branch to get"""
    branch: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Branch

  """Get a specific branch protection for the repository"""
  repoGetBranchProtection(
    """name of protected branch"""
    name: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): BranchProtection

  """Get a repository by id"""
  repoGetByID(
    """id of the repo to get"""
    id: BigInt!
  ): Repository

  """Get a commit's combined status, by branch/tag/commit reference"""
  repoGetCombinedStatusByRef(
    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of branch/tag/commit"""
    ref: String!

    """name of the repo"""
    repo: String!
  ): CombinedStatus

  """
  Gets the metadata and contents (if a file) of an entry in a repository, or a list of entries if a dir
  """
  repoGetContents(
    """path of the dir, file, symlink or submodule in the repo"""
    filepath: String!

    """owner of the repo"""
    owner: String!

    """
    The name of the commit/branch/tag. Default the repository’s default branch (usually master)
    """
    ref: String

    """name of the repo"""
    repo: String!
  ): ContentsResponse

  """Gets the metadata of all the entries of the root dir"""
  repoGetContentsList(
    """owner of the repo"""
    owner: String!

    """
    The name of the commit/branch/tag. Default the repository’s default branch (usually master)
    """
    ref: String

    """name of the repo"""
    repo: String!
  ): [ContentsResponse]

  """Get the EditorConfig definitions of a file in a repository"""
  repoGetEditorConfig(
    """filepath of file to get"""
    filepath: String!

    """owner of the repo"""
    owner: String!

    """
    The name of the commit/branch/tag. Default the repository’s default branch (usually master)
    """
    ref: String

    """name of the repo"""
    repo: String!
  ): JSON

  """Get a Git hook"""
  repoGetGitHook(
    """id of the hook to get"""
    id: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): GitHook

  """Get a hook"""
  repoGetHook(
    """id of the hook to get"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Hook

  """Get available issue templates for a repository"""
  repoGetIssueTemplates(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [IssueTemplate]

  """Get a repository's key by id"""
  repoGetKey(
    """id of the key to get"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): DeployKey

  """Get languages and number of bytes of code written"""
  repoGetLanguages(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): JSON

  """
  Gets the most recent non-prerelease, non-draft release of a repository, sorted by created_at
  """
  repoGetLatestRelease(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Release

  """Get a note corresponding to a single commit from a repository"""
  repoGetNote(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """a git ref or commit sha"""
    sha: String!
  ): Note

  """Get a pull request"""
  repoGetPullRequest(
    """index of the pull request to get"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): PullRequest

  """Get commits for a pull request"""
  repoGetPullRequestCommits(
    """index of the pull request to get"""
    index: BigInt!

    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [Commit_contains_information_generated_from_a_Git_commit_]

  """Get changed files for a pull request"""
  repoGetPullRequestFiles(
    """index of the pull request to get"""
    index: BigInt!

    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!

    """skip to given file"""
    skip_to: String
    whitespace: queryInput_repoGetPullRequestFiles_whitespace
  ): [ChangedFile]

  """Get a specific review for a pull request"""
  repoGetPullReview(
    """id of the review"""
    id: BigInt!

    """index of the pull request"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): PullReview

  """Get a specific review for a pull request"""
  repoGetPullReviewComments(
    """id of the review"""
    id: BigInt!

    """index of the pull request"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [PullReviewComment]

  """Get push mirror of the repository by remoteName"""
  repoGetPushMirrorByRemoteName(
    """remote name of push mirror"""
    name: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): PushMirror

  """Get a file from a repository"""
  repoGetRawFile(
    """filepath of the file to get"""
    filepath: String!

    """owner of the repo"""
    owner: String!

    """
    The name of the commit/branch/tag. Default the repository’s default branch (usually master)
    """
    ref: String

    """name of the repo"""
    repo: String!
  ): JSON

  """Get a file or it's LFS object from a repository"""
  repoGetRawFileOrLFS(
    """filepath of the file to get"""
    filepath: String!

    """owner of the repo"""
    owner: String!

    """
    The name of the commit/branch/tag. Default the repository’s default branch (usually master)
    """
    ref: String

    """name of the repo"""
    repo: String!
  ): JSON

  """Get a release"""
  repoGetRelease(
    """id of the release to get"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Release

  """Get a release attachment"""
  repoGetReleaseAttachment(
    """id of the attachment to get"""
    attachment_id: BigInt!

    """id of the release"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Attachment

  """Get a release by tag name"""
  repoGetReleaseByTag(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """tag name of the release to get"""
    tag: String!
  ): Release

  """Get repository permissions for a user"""
  repoGetRepoPermissions(
    """username of the collaborator"""
    collaborator: String!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): RepoCollaboratorPermission

  """Return all users that can be requested to review in this repo"""
  repoGetReviewers(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [User]

  """Get a single commit from a repository"""
  repoGetSingleCommit(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """a git ref or commit sha"""
    sha: String!
  ): Commit_contains_information_generated_from_a_Git_commit_

  """Get the tag of a repository by tag name"""
  repoGetTag(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """name of tag"""
    tag: String!
  ): Tag

  """Get a wiki page"""
  repoGetWikiPage(
    """owner of the repo"""
    owner: String!

    """name of the page"""
    pageName: String!

    """name of the repo"""
    repo: String!
  ): WikiPage

  """Get revisions of a wiki page"""
  repoGetWikiPageRevisions(
    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the page"""
    pageName: String!

    """name of the repo"""
    repo: String!
  ): WikiCommitList

  """Get all wiki pages"""
  repoGetWikiPages(
    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [WikiPageMetaData]

  """Get specified ref or filtered repository's refs"""
  repoListAllGitRefs(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [Reference_represents_a_Git_reference_]

  """List branch protections for a repository"""
  repoListBranchProtection(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [BranchProtection]

  """List a repository's branches"""
  repoListBranches(
    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [Branch]

  """List a repository's collaborators"""
  repoListCollaborators(
    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [User]

  """List the Git hooks in a repository"""
  repoListGitHooks(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [GitHook]

  """Get specified ref or filtered repository's refs"""
  repoListGitRefs(
    """owner of the repo"""
    owner: String!

    """part or full name of the ref"""
    ref: String!

    """name of the repo"""
    repo: String!
  ): [Reference_represents_a_Git_reference_]

  """List the hooks in a repository"""
  repoListHooks(
    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [Hook]

  """List a repository's keys"""
  repoListKeys(
    """fingerprint of the key"""
    fingerprint: String

    """the key_id to search for"""
    key_id: Int

    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [DeployKey]

  """List a repo's pull requests"""
  repoListPullRequests(
    """Label IDs"""
    labels: [BigInt]

    """page size of results"""
    limit: Int

    """ID of the milestone"""
    milestone: BigInt

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
    sort: queryInput_repoListPullRequests_sort
    state: queryInput_repoListPullRequests_state
  ): [PullRequest]

  """List all reviews for a pull request"""
  repoListPullReviews(
    """index of the pull request"""
    index: BigInt!

    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [PullReview]

  """Get all push mirrors of the repository"""
  repoListPushMirrors(
    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [PushMirror]

  """List release's attachments"""
  repoListReleaseAttachments(
    """id of the release"""
    id: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [Attachment]

  """List a repo's releases"""
  repoListReleases(
    """
    filter (exclude / include) drafts, if you dont have repo write access none will show
    """
    draft: Boolean

    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """page size of results, deprecated - use limit"""
    per_page: Int

    """filter (exclude / include) pre-releases"""
    pre_release: Boolean

    """name of the repo"""
    repo: String!
  ): [Release]

  """List a repo's stargazers"""
  repoListStargazers(
    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [User]

  """Get a commit's statuses"""
  repoListStatuses(
    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!

    """sha of the commit"""
    sha: String!
    sort: queryInput_repoListStatuses_sort
    state: queryInput_repoListStatuses_state
  ): [CommitStatus]

  """Get a commit's statuses, by branch/tag/commit reference"""
  repoListStatusesByRef(
    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of branch/tag/commit"""
    ref: String!

    """name of the repo"""
    repo: String!
    sort: queryInput_repoListStatusesByRef_sort
    state: queryInput_repoListStatusesByRef_state
  ): [CommitStatus]

  """List a repo's watchers"""
  repoListSubscribers(
    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [User]

  """List a repository's tags"""
  repoListTags(
    """page size of results, default maximum page size is 50"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): [Tag]

  """List a repository's teams"""
  repoListTeams(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): [Team]

  """Get list of topics that a repository has"""
  repoListTopics(
    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!
  ): TopicName

  """Check if a pull request has been merged"""
  repoPullRequestIsMerged(
    """index of the pull request"""
    index: BigInt!

    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Search for repositories"""
  repoSearch(
    """show only archived, non-archived or all repositories (defaults to all)"""
    archived: Boolean

    """if `uid` is given, search only for repos that the user owns"""
    exclusive: Boolean

    """include search of keyword within repository description"""
    includeDesc: Boolean

    """show only pubic, private or all repositories (defaults to all)"""
    is_private: Boolean

    """page size of results"""
    limit: Int

    """
    type of repository to search for. Supported values are "fork", "source", "mirror" and "collaborative"
    """
    mode: String

    """
    sort order, either "asc" (ascending) or "desc" (descending). Default is "asc", ignored if "sort" is not specified.
    """
    order: String

    """page number of results to return (1-based)"""
    page: Int

    """repo owner to prioritize in the results"""
    priority_owner_id: BigInt

    """
    include private repositories this user has access to (defaults to true)
    """
    private: Boolean

    """keyword"""
    q: String

    """
    sort repos by attribute. Supported values are "alpha", "created", "updated", "size", and "id". Default is "alpha"
    """
    sort: String

    """search only for repos that the user with the given id has starred"""
    starredBy: BigInt

    """search only for repos that belong to the given team id"""
    team_id: BigInt

    """
    include template repositories this user has access to (defaults to true)
    """
    template: Boolean

    """Limit search to repositories with keyword as topic"""
    topic: Boolean

    """
    search only for repos that the user with the given id owns or contributes to
    """
    uid: BigInt
  ): SearchResults

  """Get signing-key.gpg for given repository"""
  repoSigningKey(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): String

  """List a repo's tracked times"""
  repoTrackedTimes(
    """
    Only show times updated before the given time. This is a timestamp in RFC 3339 format
    """
    before: DateTime

    """page size of results"""
    limit: Int

    """owner of the repo"""
    owner: String!

    """page number of results to return (1-based)"""
    page: Int

    """name of the repo"""
    repo: String!

    """
    Only show times updated after the given time. This is a timestamp in RFC 3339 format
    """
    since: DateTime

    """optional filter by user (available for issue managers)"""
    user: String
  ): [TrackedTime]

  """Get Services"""
  services: services_200_response

  """Get Service"""
  services_by_service(service: ServiceName_parameter!): Service

  """Get Service Logs"""
  services_by_service_logs(service: ServiceName_parameter!): File

  """
  The log stream is in [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) format
  """
  services_by_service_logstream(service: ServiceName_parameter!): JSON

  """Get Apps Autoupdate Pattern"""
  settings_app_autoupdate_pattern: UpdatePattern

  """Get Backup Config"""
  settings_backup_config: BackupConfig

  """
  Gets the pattern that the Cloudron uses to automatically update itself and installed apps. Patterns are matched based on the Cloudron's timezone.
  """
  settings_box_autoupdate_pattern: UpdatePattern

  """Get Cloudron Avatar"""
  settings_cloudron_avatar: File

  """Get Cloudron Name"""
  settings_cloudron_name: CloudronNameConfig

  """Get Dynamic DNS State"""
  settings_dynamic_dns: settings_dynamic_dns_200_response

  """Get External LDAP Config"""
  settings_external_ldap_config: ExternalLdapConfig

  """Get Platform Config"""
  settings_platform_config: PlatformConfig

  """Get Registry Config"""
  settings_registry_config: RegistryConfig

  """Get Sysinfo Config"""
  settings_sysinfo_config: SysinfoConfig

  """Get Timezone"""
  settings_time_zone: TimezoneConfig

  """Get Unstable Apps State"""
  settings_unstable_apps: settings_unstable_apps_200_response

  """List Tasks"""
  tasks(page: Int = 1, per_page: Int = 25, type: queryInput_tasks_type): tasks_200_response

  """Get Task"""
  tasks_by_taskId(
    """Task ID"""
    taskId: Int!
  ): Task

  """Get Task Logs"""
  tasks_by_taskId_logs(
    """Task ID"""
    taskId: Int!
  ): File

  """
  The log stream is in [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) format
  """
  tasks_by_taskId_logstream(
    """Task ID"""
    taskId: Int!
  ): JSON

  """Search for teams within an organization"""
  teamSearch(
    """include search within team description (defaults to true)"""
    include_desc: Boolean

    """page size of results"""
    limit: Int

    """name of the organization"""
    org: String!

    """page number of results to return (1-based)"""
    page: Int

    """keywords to search"""
    q: String
  ): teamSearch_200_response

  """search topics via keyword"""
  topicSearch(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """keywords to search"""
    q: String!
  ): [TopicResponse]

  """Check if one user is following another user"""
  userCheckFollowing(
    """username of followed user"""
    target: String!

    """username of following user"""
    username: String!
  ): Void

  """Check whether a user is followed by the authenticated user"""
  userCurrentCheckFollowing(
    """username of followed user"""
    username: String!
  ): Void

  """Whether the authenticated is starring the repo"""
  userCurrentCheckStarring(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): Void

  """Check if the current user is watching a repo"""
  userCurrentCheckSubscription(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!
  ): WatchInfo

  """Get a GPG key"""
  userCurrentGetGPGKey(
    """id of key to get"""
    id: BigInt!
  ): GPGKey

  """Get a public key"""
  userCurrentGetKey(
    """id of key to get"""
    id: BigInt!
  ): PublicKey

  """List the authenticated user's followers"""
  userCurrentListFollowers(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [User]

  """List the users that the authenticated user is following"""
  userCurrentListFollowing(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [User]

  """List the authenticated user's GPG keys"""
  userCurrentListGPGKeys(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [GPGKey]

  """List the authenticated user's public keys"""
  userCurrentListKeys(
    """fingerprint of the key"""
    fingerprint: String

    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [PublicKey]

  """List the repos that the authenticated user owns"""
  userCurrentListRepos(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [Repository]

  """The repos that the authenticated user has starred"""
  userCurrentListStarred(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [Repository]

  """List repositories watched by the authenticated user"""
  userCurrentListSubscriptions(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [Repository]

  """List the current user's tracked times"""
  userCurrentTrackedTimes(
    """
    Only show times updated before the given time. This is a timestamp in RFC 3339 format
    """
    before: DateTime

    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """
    Only show times updated after the given time. This is a timestamp in RFC 3339 format
    """
    since: DateTime
  ): [TrackedTime]

  """Get a user"""
  userGet(
    """username of user to get"""
    username: String!
  ): User

  """Get the authenticated user"""
  userGetCurrent: User

  """Get a user's heatmap"""
  userGetHeatmapData(
    """username of user to get"""
    username: String!
  ): [UserHeatmapData]

  """get an OAuth2 Application"""
  userGetOAuth2Application(
    """Application ID to be found"""
    id: BigInt!
  ): OAuth2Application_represents_an_OAuth2_application_

  """List the authenticated user's oauth2 applications"""
  userGetOauth2Application(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [OAuth2Application_represents_an_OAuth2_application_]

  """Get list of all existing stopwatches"""
  userGetStopWatches(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [StopWatch]

  """List the authenticated user's access tokens"""
  userGetTokens(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """username of user"""
    username: String!
  ): [AccessToken_represents_an_API_access_token_]

  """List the authenticated user's email addresses"""
  userListEmails: [Email]

  """List the given user's followers"""
  userListFollowers(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """username of user"""
    username: String!
  ): [User]

  """List the users that the given user is following"""
  userListFollowing(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """username of user"""
    username: String!
  ): [User]

  """List the given user's GPG keys"""
  userListGPGKeys(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """username of user"""
    username: String!
  ): [GPGKey]

  """List the given user's public keys"""
  userListKeys(
    """fingerprint of the key"""
    fingerprint: String

    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """username of user"""
    username: String!
  ): [PublicKey]

  """List the repos owned by the given user"""
  userListRepos(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """username of user"""
    username: String!
  ): [Repository]

  """The repos that the given user has starred"""
  userListStarred(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """username of user"""
    username: String!
  ): [Repository]

  """List the repositories watched by a user"""
  userListSubscriptions(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """username of the user"""
    username: String!
  ): [Repository]

  """List all the teams a user belongs to"""
  userListTeams(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int
  ): [Team]

  """Search for users"""
  userSearch(
    """page size of results"""
    limit: Int

    """page number of results to return (1-based)"""
    page: Int

    """keyword"""
    q: String

    """ID of the user to search for"""
    uid: BigInt
  ): userSearch_200_response

  """List a user's tracked times in a repo"""
  userTrackedTimes(
    """owner of the repo"""
    owner: String!

    """name of the repo"""
    repo: String!

    """username of user"""
    user: String!
  ): [TrackedTime]

  """Get all users"""
  users(page: Int = 1, per_page: Int = 25, search: String): users_200_response

  """Get user"""
  users_by_userId(
    """User ID"""
    userId: String!
  ): User

  """
  Get an invite link. This will create a new one, if the previous is expired. This only works for local users, not LDAP/ActiveDirectory users.
  """
  users_by_userId_invite_link(
    """User ID"""
    userId: String!
  ): users_by_userId_invite_link_200_response
}

"""Reaction contain one reaction"""
type Reaction {
  content: String
  created_at: DateTime
  user: User
}

type Reference_represents_a_Git_reference_ {
  object: GitObject_represents_a_Git_object_
  ref: String
  url: String
}

type RegistryConfig {
  email: EmailAddress
  password: String
  serverAddress: String!
  username: String
}

input RegistryConfig_Input {
  email: EmailAddress
  password: String
  serverAddress: String!
  username: String
}

"""Release represents a repository release"""
type Release {
  assets: [Attachment]
  author: User
  body: String
  created_at: DateTime
  draft: Boolean
  html_url: String
  id: BigInt
  name: String
  prerelease: Boolean
  published_at: DateTime
  tag_name: String
  tarball_url: String
  target_commitish: String
  url: String
  zipball_url: String
}

"""
RepoCollaboratorPermission to get repository permission for a collaborator
"""
type RepoCollaboratorPermission {
  permission: String
  role_name: String
  user: User
}

type RepoCommit_contains_information_of_a_commit_in_the_context_of_a_repository_ {
  author: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_
  committer: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_
  message: String
  tree: CommitMeta_contains_meta_information_of_a_commit_in_terms_of_API_
  url: String
  verification: PayloadCommitVerification
}

"""RepoTopicOptions a collection of repo topic names"""
input RepoTopicOptions_Input {
  """list of topic names"""
  topics: [String]
}

"""RepoTransfer represents a pending repo transfer"""
type RepoTransfer {
  doer: User
  recipient: User
  teams: [Team]
}

"""Repository represents a repository"""
type Repository {
  allow_merge_commits: Boolean
  allow_rebase: Boolean
  allow_rebase_explicit: Boolean
  allow_rebase_update: Boolean
  allow_squash_merge: Boolean
  archived: Boolean
  avatar_url: String
  clone_url: String
  created_at: DateTime
  default_allow_maintainer_edit: Boolean
  default_branch: String
  default_delete_branch_after_merge: Boolean
  default_merge_style: String
  description: String
  empty: Boolean
  external_tracker: ExternalTracker
  external_wiki: ExternalWiki
  fork: Boolean
  forks_count: BigInt
  full_name: String
  has_issues: Boolean
  has_projects: Boolean
  has_pull_requests: Boolean
  has_wiki: Boolean
  html_url: String
  id: BigInt
  ignore_whitespace_conflicts: Boolean
  internal: Boolean
  internal_tracker: InternalTracker
  language: String
  languages_url: String
  link: String
  mirror: Boolean
  mirror_interval: String
  mirror_updated: DateTime
  name: String
  open_issues_count: BigInt
  open_pr_counter: BigInt
  original_url: String
  owner: User

  """Repository represents a repository"""
  parent: Repository
  permissions: Permission
  private: Boolean
  release_counter: BigInt
  repo_transfer: RepoTransfer
  size: BigInt
  ssh_url: String
  stars_count: BigInt
  template: Boolean
  updated_at: DateTime
  watchers_count: BigInt
  website: String
}

"""RepositoryMeta basic repository information"""
type RepositoryMeta {
  full_name: String
  id: BigInt
  name: String
  owner: String
}

"""SearchResults results of a successful search"""
type SearchResults {
  data: [Repository]
  ok: Boolean
}

"""ServerVersion wraps the version of the server"""
type ServerVersion {
  version: String
}

type Service {
  config: query_services_by_service_config
  error: String
  memoryPercent: Int
  memoryUsed: Int
  name: query_services_by_service_name
  status: query_services_by_service_status
}

"""Service Name"""
enum ServiceName_parameter {
  docker
  graphite
  mail
  mongodb
  mysql
  nginx
  postgresql
  sftp
  unbound
}

"""StopWatch represent a running stopwatch"""
type StopWatch {
  created: DateTime
  duration: String
  issue_index: BigInt
  issue_title: String
  repo_name: String
  repo_owner_name: String
  seconds: BigInt
}

"""SubmitPullReviewOptions are options to submit a pending pull review"""
input SubmitPullReviewOptions_Input {
  body: String

  """ReviewStateType review state type"""
  event: String
}

input SysConfig_Input {
  provider: mutationInput_post_cloudron_setup_input_domainConfig_sysinfoConfig_provider
}

type SysinfoConfig {
  """Only applies to the `network-interface` provider"""
  ifname: String

  """Only applies to the `fixed` provider"""
  ip: String
  provider: mutationInput_post_cloudron_restore_input_sysinfoConfig_provider!
}

input SysinfoConfig_Input {
  """Only applies to the `network-interface` provider"""
  ifname: String

  """Only applies to the `fixed` provider"""
  ip: String
  provider: mutationInput_post_cloudron_restore_input_sysinfoConfig_provider! = generic
}

"""Tag represents a repository tag"""
type Tag {
  commit: CommitMeta_contains_meta_information_of_a_commit_in_terms_of_API_
  id: String
  message: String
  name: String
  tarball_url: String
  zipball_url: String
}

type Task {
  """
  Determines if this task is currently active. Progress can be tracked with `message` and `percent`
  """
  active: Boolean

  """Creation time UTC timestamp"""
  creationTime: Int
  error: query_tasks_tasks_items_error
  id: Int

  """For display purpose to show more informed progress"""
  message: String
  percent: NonNegativeInt
  result: JSON

  """
  Determines if the task was successful. If `false` check `error` or `active` properties.
  """
  success: Boolean

  """Last modified UTC timestamp"""
  ts: Int
  type: TaskType
}

enum TaskType {
  app
  backup
  cleanBackups
  prepareDashboardDomain
  renewcerts
  syncExternalLdap
  update
}

"""Team represents a team in an organization"""
type Team {
  can_create_org_repo: Boolean
  description: String
  id: BigInt
  includes_all_repositories: Boolean
  name: String
  organization: Organization
  permission: query_notifyGetList_items_repository_repo_transfer_teams_items_permission
  units: [String]
  units_map: query_notifyGetList_items_repository_repo_transfer_teams_items_units_map
}

"""
TimelineComment represents a timeline comment (comment of any type) on a commit or issue
"""
type TimelineComment {
  assignee: User
  assignee_team: Team
  body: String
  created_at: DateTime
  dependent_issue: Issue
  html_url: String
  id: BigInt
  issue_url: String
  label: Label
  milestone: Milestone
  new_ref: String
  new_title: String
  old_milestone: Milestone
  old_project_id: BigInt
  old_ref: String
  old_title: String
  project_id: BigInt
  pull_request_url: String
  ref_action: String
  ref_comment: Comment

  """commit SHA where issue/PR was referenced"""
  ref_commit_sha: String
  ref_issue: Issue

  """whether the assignees were removed or added"""
  removed_assignee: Boolean
  resolve_doer: User
  review_id: BigInt
  tracked_time: TrackedTime
  type: String
  updated_at: DateTime
  user: User
}

type TimezoneConfig {
  """
  Timezone is automatically set based on the IP address from where the Cloudron was activated. This timezone is used with the auto update pattern to trigger updates at the correct time. See the [Tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for a list of valid values.
  """
  timeZone: String!
}

input TimezoneConfig_Input {
  """
  Timezone is automatically set based on the IP address from where the Cloudron was activated. This timezone is used with the auto update pattern to trigger updates at the correct time. See the [Tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for a list of valid values.
  """
  timeZone: String! = "America/Los_Angeles"
}

input TlsConfig_Input {
  provider: mutationInput_post_cloudron_setup_input_domainConfig_tlsConfig_provider
  wildcard: Boolean
}

"""TopicName a list of repo topic names"""
type TopicName {
  topics: [String]
}

"""TopicResponse for returning topics"""
type TopicResponse {
  created: DateTime
  id: BigInt
  repo_count: BigInt
  topic_name: String
  updated: DateTime
}

"""TrackedTime worked time for an issue / pr"""
type TrackedTime {
  created: DateTime
  id: BigInt
  issue: Issue

  """deprecated (only for backwards compatibility)"""
  issue_id: BigInt

  """Time in seconds"""
  time: BigInt

  """deprecated (only for backwards compatibility)"""
  user_id: BigInt
  user_name: String
}

"""TransferRepoOption options when transfer a repository's ownership"""
input TransferRepoOption_Input {
  new_owner: String!

  """
  ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories.
  """
  team_ids: [BigInt]
}

"""
A field whose value conforms to the standard URL format as specified in RFC3986: https://www.ietf.org/rfc/rfc3986.txt.
"""
scalar URL

"""
UpdateFileOptions options for updating files
Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)
"""
input UpdateFileOptions_Input {
  author: Identity_Input

  """
  branch (optional) to base this file from. if not given, the default branch is used
  """
  branch: String
  committer: Identity_Input

  """content must be base64 encoded"""
  content: String!
  dates: CommitDateOptions_Input

  """
  from_path (optional) is the path of the original file which will be moved/renamed to the path in the URL
  """
  from_path: String

  """
  message (optional) for the commit of this file. if not supplied, a default message will be used
  """
  message: String

  """
  new_branch (optional) will make a new branch from `branch` before creating the file
  """
  new_branch: String

  """sha is the SHA for the file that already exists"""
  sha: String!

  """
  Add a Signed-off-by trailer by the committer at the end of the commit log message.
  """
  signoff: Boolean
}

type UpdatePattern {
  """
  The format listed in the [node-cron](https://github.com/ncb000gt/node-cron#cron-ranges) page. Note that unlike classic crontab format, the pattern contains seconds as the first part. Setting pattern to `never` disables auto update. Some examples of patterns are
  * `00 00 1,3,5,23 * * *` would run updates at 1am, 3am, 5am, 11pm every night.
  * `0 030 4 1,15 * 5` would run updates at 4:30 am on the 1st and 15th of each month, plus every Friday.
  """
  pattern: String!
}

input UpdatePattern_Input {
  """
  The format listed in the [node-cron](https://github.com/ncb000gt/node-cron#cron-ranges) page. Note that unlike classic crontab format, the pattern contains seconds as the first part. Setting pattern to `never` disables auto update. Some examples of patterns are
  * `00 00 1,3,5,23 * * *` would run updates at 1am, 3am, 5am, 11pm every night.
  * `0 030 4 1,15 * 5` would run updates at 4:30 am on the 1st and 15th of each month, plus every Friday.
  """
  pattern: String!
}

type User {
  active: Boolean
  admin: Boolean

  """URL to the user's avatar"""
  avatar_url: String
  created: DateTime

  """the user's description"""
  description: String
  displayName: String
  email: EmailAddress
  fallbackEmail: EmailAddress

  """user counts"""
  followers_count: BigInt
  following_count: BigInt

  """the user's full name"""
  full_name: String
  groupIds: [JSON]
  id: String

  """Is the user an administrator"""
  is_admin: Boolean

  """User locale"""
  language: String
  last_login: DateTime

  """the user's location"""
  location: String

  """the user's username"""
  login: String

  """the user's authentication sign-in name."""
  login_name: String

  """Is user login prohibited"""
  prohibit_login: Boolean

  """Is user restricted"""
  restricted: Boolean
  source: mutation_post_users_source
  starred_repos_count: BigInt
  username: String

  """User visibility level option: public, limited, private"""
  visibility: String

  """the user's website"""
  website: String
}

"""UserHeatmapData represents the data needed to create a heatmap"""
type UserHeatmapData {
  contributions: BigInt

  """TimeStamp defines a timestamp"""
  timestamp: BigInt
}

"""UserSettings represents user settings"""
type UserSettings {
  description: String
  diff_view_style: String
  full_name: String
  hide_activity: Boolean

  """Privacy"""
  hide_email: Boolean
  language: String
  location: String
  theme: String
  website: String
}

"""UserSettingsOptions represents options to change user settings"""
input UserSettingsOptions_Input {
  description: String
  diff_view_style: String
  full_name: String
  hide_activity: Boolean

  """Privacy"""
  hide_email: Boolean
  language: String
  location: String
  theme: String
  website: String
}

"""Represents empty values"""
scalar Void

type Void_container {
  Void: Void
}

"""WatchInfo represents an API watch status of one repository"""
type WatchInfo {
  created_at: DateTime
  ignored: Boolean
  reason: JSON
  repository_url: String
  subscribed: Boolean
  url: String
}

"""WikiCommit page commit/revision"""
type WikiCommit {
  author: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_
  commiter: CommitUser_contains_information_of_a_user_in_the_context_of_a_commit_
  message: String
  sha: String
}

"""WikiCommitList commit/revision list"""
type WikiCommitList {
  commits: [WikiCommit]
  count: BigInt
}

"""WikiPage a wiki page"""
type WikiPage {
  commit_count: BigInt

  """Page content, base64 encoded"""
  content_base64: String
  footer: String
  html_url: String
  last_commit: WikiCommit
  sidebar: String
  sub_url: String
  title: String
}

"""WikiPageMetaData wiki page meta information"""
type WikiPageMetaData {
  html_url: String
  last_commit: WikiCommit
  sub_url: String
  title: String
}

type apps_200_response {
  apps: [App]
}

type apps_by_appid_backups_200_response {
  backups: [query_apps_by_appid_backups_backups_items]
}

type appstore_subscription_200_response {
  cancel_at: DateTime
  canceled_at: DateTime
  cloudronCreatedAt: DateTime
  cloudronId: String
  current_period_end: DateTime
  email: EmailAddress
  features: String
  plan: String
  status: String
}

type backups_200_response {
  backups: [query_backups_backups_items]
}

type cloudron_status_200_response {
  """
  Indicates if this Cloudron was already activated. This is true once the first user was created during setup.
  """
  activated: Boolean

  """The FQDN of the Cloudron dashboard"""
  adminFqdn: String

  """The API endpoint to make App Store requests"""
  apiServerOrigin: URL

  """Name of the Cloudron used in the login screen, nav bar"""
  cloudronName: String

  """Markdown formatted footer content"""
  footer: String
  provider: Provider
  restore: query_cloudron_status_restore
  setup: query_cloudron_status_setup

  """Cloudron version"""
  version: String

  """The Web endpoint for App Store assets (docs, images, etc)"""
  webServerOrigin: URL
}

type config_200_response {
  """
  The main domain for this Cloudron. `adminFqdn` and `mailFqdn` depend on this
  """
  adminDomain: String

  """Subdomain where the dashboard is reachable."""
  adminFqdn: String
  apiServerOrigin: String

  """Same as /api/v1/settings/clouron_name"""
  cloudronName: String
  isDemo: Boolean

  """Subdomain where the mail server is reachable."""
  mailFqdn: String
  provider: Provider
  uiSpec: JSON

  """Cloudron version"""
  version: String
  webServerOrigin: String
}

input delete_mail_by_domain_mailboxes_by_name_request_Input {
  """Also delete emails in mailbox."""
  deleteMails: Boolean
}

type domains_200_response {
  domains: [JSON]
}

type domains_by_domain_200_response {
  config: query_domains_by_domain_config
  domain: String
  fallbackCertificate: query_domains_by_domain_fallbackCertificate
  locked: Boolean
  provider: String
  tlsConfig: query_domains_by_domain_tlsConfig
  zoneName: String
}

type domains_by_domain_dns_check_200_response {
  needsOverwrite: Boolean
}

type groups_200_response {
  groups: [Group]
}

union issueEditCommentDeprecated_response = Comment | Void_container

union issueEditComment_response = Comment | Void_container

union issueGetComment_response = Comment | Void_container

type mail_by_domain_mailbox_count_200_response {
  count: Float
}

type mail_by_domain_mailboxes_200_response {
  mailboxes: [Mailbox]
}

type mail_by_domain_status_200_response {
  dns: query_mail_by_domain_status_dns
  rbl: query_mail_by_domain_status_rbl
  relay: query_mail_by_domain_status_relay
}

enum mutationInput_adminCreateHook_input_type {
  dingtalk
  discord
  feishu
  gitea
  gogs
  msteams
  packagist
  slack
  telegram
  wechatwork
}

"""possible values are `public` (default), `limited` or `private`"""
enum mutationInput_adminCreateOrg_input_visibility {
  limited
  private
  public
}

"""TrustModel of the repository"""
enum mutationInput_adminCreateRepo_input_trust_model {
  collaborator
  collaboratorcommitter
  committer
  default
}

enum mutationInput_issueCreateMilestone_input_state {
  closed
  open
}

enum mutationInput_orgCreateTeam_input_permission {
  admin
  read
  write
}

input mutationInput_orgCreateTeam_input_units_map_Input {
  repo_code: String
  repo_ext_issues: String
  repo_ext_wiki: String
  repo_issues: String
  repo_projects: String
  repo_pulls: String
  repo_releases: String
  repo_wiki: String
}

enum mutationInput_orgEditTeam_input_permission {
  admin
  read
  write
}

input mutationInput_orgEditTeam_input_units_map_Input {
  repo_code: String
  repo_ext_issues: String
  repo_ext_wiki: String
  repo_issues: String
  repo_projects: String
  repo_pulls: String
  repo_releases: String
  repo_wiki: String
}

"""possible values are `public`, `limited` or `private`"""
enum mutationInput_orgEdit_input_visibility {
  limited
  private
  public
}

"""only for gcs provider"""
type mutationInput_post_cloudron_restore_input_backupConfig_credentials {
  client_email: String
  private_key: String
}

"""only for gcs provider"""
input mutationInput_post_cloudron_restore_input_backupConfig_credentials_Input {
  client_email: String
  private_key: String
}

enum mutationInput_post_cloudron_restore_input_backupConfig_provider {
  digitalocean_spaces
  exoscale_sos
  filesystem
  gcs
  minio
  noop
  s3
  s3_v4_compat
  scaleway_objectstorage
  wasabi
}

enum mutationInput_post_cloudron_restore_input_sysinfoConfig_provider {
  fixed
  generic
  network_interface
}

input mutationInput_post_cloudron_setup_input_domainConfig_Input {
  config: mutationInput_post_cloudron_setup_input_domainConfig_config_Input!
  domain: String!
  provider: DnsProvider!
  sysinfoConfig: SysConfig_Input
  tlsConfig: TlsConfig_Input
  zoneName: String
}

"""
DNS provider specific configuration, for example API tokens and secrets
"""
input mutationInput_post_cloudron_setup_input_domainConfig_config_Input {
  token: String
}

"""
Currently the sysinfo provider is only used to determine the public IP of the server. Which in turn is used in the DNS logic to setup records.
"""
enum mutationInput_post_cloudron_setup_input_domainConfig_sysinfoConfig_provider {
  fixed
  generic
  network_interface
}

enum mutationInput_post_cloudron_setup_input_domainConfig_tlsConfig_provider {
  fallback
  letsencrypt_prod
  letsencrypt_staging
}

input mutationInput_post_domains_input_allOf_1_fallbackCertificate_Input {
  cert: String
  key: String
}

enum mutationInput_post_settings_external_ldap_config_input_provider {
  ad
  jumpcloud
  noop
  okta
  other
}

enum mutationInput_repoMergePullRequest_input_Do {
  manually_merged
  merge
  rebase
  rebase_merge
  squash
}

enum mutationInput_repoMigrate_input_service {
  git
  gitea
  github
  gitlab
}

"""how to update pull request"""
enum mutationInput_repoUpdatePullRequest_style {
  merge
  rebase
}

"""
A value of `ldap` indicates, this user if from an LDAP/ActiveDirectory user, otherwise a local user
"""
enum mutation_post_users_source {
  _
  ldap
}

type notifications_200_response {
  notifications: [Notification]
}

type post_apps_by_appid_backup_202_response {
  """taskId to track backup process via the task API"""
  taskId: String
}

input post_apps_by_appid_backups_by_backupId_request_Input {
  """
  Time to keep this backup in seconds (1 week is 604800 seconds). This number + `creationTime` determines if a backup is kept or removed
  """
  preserveSecs: Int
}

type post_apps_by_appid_clone_201_response {
  """appId of the newly created clone instance"""
  id: String

  """taskId to track clone process via the task API"""
  taskId: String
}

input post_apps_by_appid_clone_request_Input {
  """BackupID of the backup the clone should be based off"""
  backupId: String!

  """domain"""
  domain: String!
  overwriteDns: Boolean
  portBindings: PortBindings_Input = {}

  """skipping DNS setup allows dry-runs for backup/restore testing"""
  skipDnsSetup: Boolean

  """subdomain"""
  subdomain: String!
}

input post_apps_by_appid_configure_access_restriction_request_Input {
  accessRestriction: AccessRestriction_Input!
}

type post_apps_by_appid_configure_automatic_backup_202_response {
  """taskId to track start process via the task API"""
  taskId: String
}

input post_apps_by_appid_configure_automatic_backup_request_Input {
  """true/false to enable or disable the automatic backup"""
  enable: JSON!
}

type post_apps_by_appid_configure_location_202_response {
  """taskId to track stop process via the task API"""
  taskId: String
}

input post_apps_by_appid_configure_location_request_Input {
  """list of alias domains - uncapitalized chars only"""
  aliasDomains: [JSON] = []

  """
  list of alternate domains redirecting to the main fqdn - uncapitalized chars only
  """
  alternateDomains: [JSON] = []

  """the main domain"""
  domain: String!

  """to overwrite the dns"""
  overwriteDns: Boolean!
  portBindings: PortBindings_Input = {}

  """the main subdomain of the app"""
  subdomain: String!
}

type post_apps_by_appid_configure_memory_limit_202_response {
  """taskId to track start process via the task API"""
  taskId: String
}

input post_apps_by_appid_configure_memory_limit_request_Input {
  """the memory limit in bytes"""
  memoryLimit: Float!
}

type post_apps_by_appid_restart_202_response {
  """taskId to track restart process via the task API"""
  taskId: String
}

type post_apps_by_appid_restore_202_response {
  """taskId to track restore process via the task API"""
  taskId: String
}

input post_apps_by_appid_restore_request_Input {
  """
  BackupID of the backup to restore to. The Backup ID can be obtained by listing backups of this app.
  """
  backupId: String
}

type post_apps_by_appid_start_202_response {
  """taskId to track start process via the task API"""
  taskId: String
}

type post_apps_by_appid_stop_202_response {
  """taskId to track stop process via the task API"""
  taskId: String
}

type post_apps_by_appid_uninstall_202_response {
  """taskId to track start process via the task API"""
  taskId: String
}

type post_apps_install_200_response {
  id: String
  taskId: String
}

input post_apps_install_request_Input {
  accessRestriction: AccessRestriction_Input!
  alternateDomains: [JSON] = []
  appStoreId: String
  domain: String!
  enableAutomaticUpdate: Boolean = true
  enableBackup: Boolean = true
  icon: String
  label: String
  manifest: AppManifest_Input

  """
  Memory limit as a number of `MB * 1024 * 1024`. So 600MB memory limit is 629145600
  """
  memoryLimit: Int

  """
  If set to `true` Cloudron will overwrite any existing DNS records. This should not be required in most cases.
  """
  overwriteDns: Boolean
  portBindings: PortBindings_Input = {}

  """For apps with `optionalSso` set in the manifest."""
  sso: Boolean = true

  """
  Subdomain the app is installed at. This may be an empty string if the app is installed directly at `domain`
  """
  subdomain: String!
}

input post_appstore_register_cloudron_request_Input {
  email: EmailAddress!
  password: String!

  """
  If `true` a new cloudron.io account will be created. If an account already exists, this request will return an error. Otherwise, this Cloudron will be assigned to the existing account.
  """
  signup: Boolean!

  """
  2FA token. Required when the cloudron.io account already exists and was setup with 2FA.
  """
  totpToken: String
}

type post_backups_cleanup_202_response {
  """
  This id can be used with the /api/v1/tasks routes to determine state and get logs
  """
  taskId: Int
}

type post_backups_create_202_response {
  """
  This id can be used with the /api/v1/tasks routes to determine state and get logs
  """
  taskId: Int
}

type post_cloudron_activate_201_response {
  """Expiry time of token"""
  expires: DateTime

  """
  A token that will authenticate the user for future API requests. Pass this as `?access_token=<token>`.
  """
  token: String

  """Unique ID of the created user"""
  userId: String
}

input post_cloudron_activate_request_Input {
  """Full name of the user."""
  displayName: String

  """Primary email of the user."""
  email: EmailAddress!

  """Password. Minimum of 8 characters required."""
  password: String!

  """Username. The first user is also called the Owner."""
  username: String!
}

type post_cloudron_login_200_response {
  expiresAt: DateTime
  token: String
}

input post_cloudron_login_request_Input {
  password: String!
  username: String!
}

type post_cloudron_renew_certs_202_response {
  """taskId to track restart process via the task API"""
  taskId: String
}

input post_cloudron_renew_certs_request_Input {
  domain: String
}

input post_cloudron_restore_request_Input {
  backupConfig: BackupConfig_Input!
  backupId: String!
  sysinfoConfig: SysinfoConfig_Input
  version: String!
}

input post_cloudron_setup_request_Input {
  domainConfig: mutationInput_post_cloudron_setup_input_domainConfig_Input!
}

input post_domains_request_Input {
  config: JSON!
  domain: String!
  fallbackCertificate: mutationInput_post_domains_input_allOf_1_fallbackCertificate_Input
  hyphenatedSubdomains: Boolean
  provider: DnsProvider!
  tlsConfig: TlsConfig_Input
  wildcard: Boolean
  zoneName: String
}

input post_mail_by_domain_banner_request_Input {
  html: String
  text: String!
}

input post_mail_by_domain_catch_all_request_Input {
  addresses: [JSON]!
}

input post_mail_by_domain_mailboxes_request_Input {
  name: String!
  ownerId: String!
  ownerType: String!
}

input post_mail_by_domain_relay_request_Input {
  acceptSelfSignedCerts: Boolean
  host: String
  password: String
  port: Float
  provider: MailRelayProvider!
  username: String
}

input post_mail_by_domain_send_test_mail_request_Input {
  to: EmailAddress!
}

input post_services_by_service_request_Input {
  memory: Int
}

input post_settings_cloudron_avatar_request_Input {
  avatar: File!
}

input post_users_by_userId_password_request_Input {
  password: String!
}

input post_users_by_userId_request_Input {
  active: Boolean
  admin: Boolean

  """If not specified, the new user will have to set it during onboarding"""
  displayName: String
  email: EmailAddress
  fallbackEmail: EmailAddress

  """If not specified, the new user will have to set it during onboarding"""
  username: String
}

input post_users_by_userId_send_invite_email_request_Input {
  email: JSON!
}

input post_users_request_Input {
  admin: Boolean

  """If not specified, the new user will have to set it during onboarding"""
  displayName: String
  email: EmailAddress!

  """If not specified, the new user will have to set it during onboarding"""
  password: String

  """If not specified, the new user will have to set it during onboarding"""
  username: String
}

input put_groups_by_groupId_members_request_Input {
  userIds: [String]!
}

input put_users_by_userId_groups_request_Input {
  groupIds: [JSON]!
}

"""Log type"""
enum queryInput_apps_by_appid_logs_format {
  json
  plain
}

"""Log type"""
enum queryInput_apps_by_appid_logstream_format {
  json
  plain
}

"""whether issue is open or closed"""
enum queryInput_issueListIssues_state {
  all
  closed
  open
}

"""filter by type (issues / pulls) if set"""
enum queryInput_issueListIssues_type {
  issues
  pulls
}

"""package type filter"""
enum queryInput_listPackages_type {
  cargo
  chef
  composer
  conan
  conda
  container
  generic
  helm
  maven
  npm
  nuget
  pub
  pypi
  rubygems
  vagrant
}

enum queryInput_notifyGetList_subject_type_items {
  commit
  issue
  pull
  repository
}

enum queryInput_notifyGetRepoList_subject_type_items {
  commit
  issue
  pull
  repository
}

"""whether the output is diff or patch"""
enum queryInput_repoDownloadCommitDiffOrPatch_diffType {
  diff
  patch
}

"""whether the output is diff or patch"""
enum queryInput_repoDownloadPullDiffOrPatch_diffType {
  diff
  patch
}

"""whitespace behavior"""
enum queryInput_repoGetPullRequestFiles_whitespace {
  ignore_all
  ignore_change
  ignore_eol
  show_all
}

"""Type of sort"""
enum queryInput_repoListPullRequests_sort {
  leastcomment
  leastupdate
  mostcomment
  oldest
  priority
  recentupdate
}

"""State of pull request: open or closed (optional)"""
enum queryInput_repoListPullRequests_state {
  all
  closed
  open
}

"""type of sort"""
enum queryInput_repoListStatusesByRef_sort {
  highestindex
  leastindex
  leastupdate
  oldest
  recentupdate
}

"""type of state"""
enum queryInput_repoListStatusesByRef_state {
  error
  failure
  pending
  success
  warning
}

"""type of sort"""
enum queryInput_repoListStatuses_sort {
  highestindex
  leastindex
  leastupdate
  oldest
  recentupdate
}

"""type of state"""
enum queryInput_repoListStatuses_state {
  error
  failure
  pending
  success
  warning
}

enum queryInput_tasks_type {
  app
  backup
  cleanBackups
  prepareDashboardDomain
  renewcerts
  syncExternalLdap
  update
}

type query_apps_by_appid_backups_backups_items {
  creationTime: DateTime

  """Always an empty array for apps"""
  dependsOn: [JSON]

  """Only set if encryption was used."""
  encryptionVersion: String
  format: BackupFormat
  id: String

  """contains the appId"""
  identifier: String
  label: String
  manifest: JSON

  """
  Time to keep this backup in seconds (1 week is 604800 seconds). This number + `creationTime` determines if a backup is kept or removed
  """
  preserveSecs: Int
  remotePath: String
  state: query_apps_by_appid_backups_backups_items_state

  """Is always `app` since this API returns the list of app backups."""
  type: String
}

enum query_apps_by_appid_backups_backups_items_state {
  creating
  error
  normal
}

type query_backups_backups_items {
  creationTime: DateTime

  """Contains a list of backup IDs referencing the app backups"""
  dependsOn: [String]
  format: BackupFormat
  id: String
  manifest: JSON

  """
  Time to keep this backup in seconds (1 week is 604800 seconds). This number + `creationTime` determines if a backup is kept or removed
  """
  preserveSecs: Int
  state: query_backups_backups_items_state

  """
  Is always `box` since this API returns the list of platform backups. Individual app backups can be retrieved with the /api/v1/apps/ routes.
  """
  type: String

  """Cloudron version that backups was made for"""
  version: String
}

enum query_backups_backups_items_state {
  creating
  error
  normal
}

type query_cloudron_status_restore {
  """Indicates if a restore is currently in progress."""
  active: Boolean
  errorMessage: String

  """Restore process status messages for ongoing progress display"""
  message: String
}

type query_cloudron_status_setup {
  """
  Indicates if a DNS setup is currently in progress. This happens after /api/v1/cloudron/setup was issued.
  """
  active: Boolean
  errorMessage: String

  """Setup process status messages for ongoing progress display"""
  message: String
}

type query_domains_by_domain_config {
  hyphenatedSubdomains: Boolean
}

type query_domains_by_domain_fallbackCertificate {
  cert: String
  key: String
}

type query_domains_by_domain_tlsConfig {
  provider: String
  wildcard: Boolean
}

"""Text and HTML mail signature"""
type query_mail_by_domain_banner {
  html: String
  text: String
}

type query_mail_by_domain_relay {
  provider: MailRelayProvider
}

type query_mail_by_domain_status_dns {
  dkim: query_mail_by_domain_status_dns_dkim
  dmarc: query_mail_by_domain_status_dns_dmarc
  mx: query_mail_by_domain_status_dns_mx
  ptr: query_mail_by_domain_status_dns_ptr
  spf: query_mail_by_domain_status_dns_spf
}

type query_mail_by_domain_status_dns_dkim {
  domain: String
  expected: String
  name: String
  status: Boolean
  type: String
  value: String
}

type query_mail_by_domain_status_dns_dmarc {
  domain: String
  expected: String
  name: String
  status: Boolean
  type: String
  value: String
}

type query_mail_by_domain_status_dns_mx {
  domain: String
  expected: String
  name: String
  status: Boolean
  type: String
  value: String
}

type query_mail_by_domain_status_dns_ptr {
  domain: String
  expected: String
  name: String
  status: Boolean
  type: String
  value: String
}

type query_mail_by_domain_status_dns_spf {
  domain: String
  expected: String
  name: String
  status: Boolean
  type: String
  value: String
}

type query_mail_by_domain_status_rbl {
  ip: String
  servers: [JSON]
  status: Boolean
}

type query_mail_by_domain_status_relay {
  status: Boolean
  value: String
}

enum query_notifyGetList_items_repository_repo_transfer_teams_items_permission {
  admin
  none
  owner
  read
  write
}

type query_notifyGetList_items_repository_repo_transfer_teams_items_units_map {
  additionalProperties: JSON
  repo_code: String
  repo_ext_issues: String
  repo_ext_wiki: String
  repo_issues: String
  repo_projects: String
  repo_pulls: String
  repo_releases: String
  repo_wiki: String
}

"""
If `memory` and `memorySwap` is not set, then they cannot be configured
"""
type query_services_by_service_config {
  memory: Int
  memorySwap: Int
}

enum query_services_by_service_name {
  docker
  graphite
  mail
  mongodb
  mysql
  nginx
  postgresql
  sftp
  unbound
}

enum query_services_by_service_status {
  active
  starting
  stopped
}

enum query_services_services_items {
  docker
  graphite
  mail
  mongodb
  mysql
  nginx
  postgresql
  sftp
  unbound
}

type query_tasks_tasks_items_error {
  code: query_tasks_tasks_items_error_code
  message: String
}

enum query_tasks_tasks_items_error_code {
  crashed
  stopped
  timeout
}

union repoGetAllCommits_response = APIError | Commit_contains_information_generated_from_a_Git_commit_

type services_200_response {
  services: [query_services_services_items]
}

type settings_dynamic_dns_200_response {
  enabled: Boolean
}

type settings_unstable_apps_200_response {
  enabled: Boolean
}

type tasks_200_response {
  tasks: [Task]
}

type teamSearch_200_response {
  data: [Team]
  ok: Boolean
}

type userSearch_200_response {
  data: [User]
  ok: Boolean
}

type users_200_response {
  users: [JSON]
}

type users_by_userId_invite_link_200_response {
  inviteLink: JSON
}
