type AccessToken {
id: ID!
name: String!
accountId: ID
createdAt: DateTime!
}
type AccessTokenConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [AccessTokenEdge!]!
# A list of nodes.
nodes: [AccessToken!]!
}
input AccessTokenCreateInput {
name: String!
accountId: ID
}
union AccessTokenCreatePayload = AccessTokenCreateSuccess | InvalidAccountError | TokenLimitExceededError
type AccessTokenCreateSuccess {
token: AccessToken!
jwt: String!
query: Query!
}
input AccessTokenDeleteInput {
id: ID!
}
union AccessTokenDeletePayload = AccessTokenDeleteSuccess | TokenDoesNotExistError
type AccessTokenDeleteSuccess {
deletedId: ID!
query: Query!
}
# An edge in a connection.
type AccessTokenEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: AccessToken!
}
interface Account {
id: ID!
slug: String!
name: String!
createdAt: DateTime!
projects(after: String, before: String, first: Int, last: Int): ProjectConnection!
}
type AccountDoesNotExistError {
query: Query!
}
type AlreadyMemberError {
query: Query!
}
type ArchiveFileSizeLimitExceededError {
query: Query!
limit: Int!
}
type Branch {
id: ID!
name: String!
domains: [String!]!
latestDeployment: Deployment
activeDeployment: Deployment
deployments(after: String, before: String, first: Int, last: Int): DeploymentConnection!
project: Project!
environment: BranchEnvironment!
}
type BranchConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [BranchEdge!]!
# A list of nodes.
nodes: [Branch!]!
}
# An edge in a connection.
type BranchEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: Branch!
}
enum BranchEnvironment {
PREVIEW
PRODUCTION
}
union BranchMetricsPayload = BranchMetricsSuccess | ProjectDoesNotExistError
type BranchMetricsSuccess {
latency: Distribution!
request: Distribution!
}
type CurrentPlanLimitReachedError {
max: Int!
query: Query!
}
type DailyDeploymentCountLimitExceededError {
query: Query!
limit: Int!
}
type DatabaseRegion {
name: String!
city: String!
countryCode: String!
continent: String!
}
enum DatabaseRegionChangeStatus {
IN_PROGRESS
COMPLETED
}
type DatabaseUsage {
requestCount: Distribution!
dbReads: Distribution!
dbWrites: Distribution!
dbSize: Distribution!
granularity: DatabaseUsageGranularity!
}
input DatabaseUsageFilter {
environment: BranchEnvironment
startDate: DateTime
endDate: DateTime
}
enum DatabaseUsageGranularity {
HOURLY
DAILY
WEEKLY
MONTHLY
}
# RFC3339 formatted date in the UTC time zone denoted by letter 'Z'
scalar DateTime
# Deployment
type Deployment {
id: ID!
commit: GitCommit
branch: Branch!
createdAt: DateTime!
startedAt: DateTime
finishedAt: DateTime
# The duration of the deployment in milliseconds.
duration: Int
status: DeploymentStatus!
logEntries: [DeploymentLogEntry!]!
project: Project!
schema: String
diffAgainstPreviousBranchDeployment: String
diffAgainstLatestProductionDeployment: String
}
type DeploymentConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [DeploymentEdge!]!
# A list of nodes.
nodes: [Deployment!]!
}
input DeploymentCreateInput {
projectId: ID!
archiveFileSize: Int!
branch: String
}
union DeploymentCreatePayload =
DeploymentCreateSuccess
| ProjectDoesNotExistError
| ArchiveFileSizeLimitExceededError
| DailyDeploymentCountLimitExceededError
type DeploymentCreateSuccess {
deployment: Deployment!
presignedUrl: String!
query: Query!
}
# An edge in a connection.
type DeploymentEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: Deployment!
}
input DeploymentFilter {
branch: String
statuses: [DeploymentStatus!]! = []
}
type DeploymentLogEntry {
createdAt: DateTime!
message: String!
level: DeploymentLogLevel!
}
enum DeploymentLogLevel {
ERROR
INFO
}
enum DeploymentStatus {
QUEUED
IN_PROGRESS
SUCCEEDED
FAILED
}
type Distribution {
unit: UnitType!
values: [DistributionValue!]!
}
type DistributionValue {
bucket: DateTime!
value: Int!
}
type DuplicateDatabaseRegionsError {
duplicates: [String!]!
query: Query!
}
type EmptyDatabaseRegionsError {
query: Query!
}
type EnvironmentVariable {
id: ID!
name: String!
value: String!
createdAt: DateTime!
updatedAt: DateTime!
environments: [BranchEnvironment!]!
branches: [String!]
}
type EnvironmentVariableConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [EnvironmentVariableEdge!]!
# A list of nodes.
nodes: [EnvironmentVariable!]!
}
input EnvironmentVariableCreateInput {
projectId: ID!
# Must not be already assigned.
name: String!
value: String!
environments: [BranchEnvironment!]!
}
union EnvironmentVariableCreatePayload =
EnvironmentVariableCreateSuccess
| NameAlreadyExistsError
| NameTooLongError
| NameContainsInvalidCharactersError
| ValueTooLongError
| ReservedPrefixError
| ProjectDoesNotExistError
type EnvironmentVariableCreateSuccess {
environmentVariable: EnvironmentVariable!
query: Query!
}
input EnvironmentVariableDeleteInput {
id: ID!
}
union EnvironmentVariableDeletePayload = EnvironmentVariableDeleteSuccess | EnvironmentVariableDoesNotExistError
type EnvironmentVariableDeleteSuccess {
deletedId: ID!
query: Query!
}
type EnvironmentVariableDoesNotExistError {
query: Query!
}
# An edge in a connection.
type EnvironmentVariableEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: EnvironmentVariable!
}
input EnvironmentVariableUpdateInput {
id: ID!
name: String
value: String
environments: [BranchEnvironment!]
}
union EnvironmentVariableUpdatePayload =
EnvironmentVariableUpdateSuccess
| EnvironmentVariableDoesNotExistError
| NameAlreadyExistsError
| NameTooLongError
| NameContainsInvalidCharactersError
| ValueTooLongError
| ReservedPrefixError
type EnvironmentVariableUpdateSuccess {
environmentVariable: EnvironmentVariable!
query: Query!
}
type GitAccount {
provider: GitProvider!
id: ID!
slug: String!
type: GitAccountType!
# Date when the app was authorized to access this account
connectedAt: DateTime!
}
enum GitAccountType {
ORGANIZATION
PERSONAL
}
union GitAccountsPayload = GitAccountsSuccess | GitHubAuthorizationError
type GitAccountsSuccess {
accounts: [GitAccount!]!
query: Query!
}
type GitCommit {
sha: String!
message: String!
author: String
authorAvatarUrl: String
}
type GitHubAuthorizationError {
query: Query!
}
enum GitProvider {
GITHUB
}
type GitRepository {
provider: GitProvider!
id: String!
owner: String!
slug: String!
url: String!
defaultBranch: String
private: Boolean!
updatedAt: DateTime!
branches: [String!]!
}
type InvalidAccountError {
query: Query!
}
type InvalidDatabaseRegionsError {
invalid: [String!]!
query: Query!
}
type Invite {
id: ID!
role: MemberRole!
email: String!
invitedBy: User!
lastRenewedAt: DateTime!
status: InviteStatus!
createdAt: DateTime!
organization: Organization!
}
input InviteAcceptInput {
id: ID!
}
union InviteAcceptPayload = InviteAcceptSuccess | InviteDoesNotExistError | AlreadyMemberError
type InviteAcceptSuccess {
member: Member!
query: Query!
}
input InviteCancelInput {
id: ID!
}
union InviteCancelPayload = InviteCancelSuccess | InviteDoesNotExistError | NotAllowedToCancelInvitesError
type InviteCancelSuccess {
id: ID!
query: Query!
}
type InviteConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [InviteEdge!]!
# A list of nodes.
nodes: [Invite!]!
}
input InviteDeclineInput {
id: ID!
}
union InviteDeclinePayload = InviteDeclineSuccess | InviteDoesNotExistError
type InviteDeclineSuccess {
id: ID!
query: Query!
}
type InviteDoesNotExistError {
query: Query!
}
# An edge in a connection.
type InviteEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: Invite!
}
input InviteSendInput {
organizationId: ID!
email: String!
role: MemberRole!
}
union InviteSendPayload = InviteSendSuccess | OrganizationDoesNotExistError | NotAllowedToSendInvitesError
type InviteSendSuccess {
invite: Invite!
query: Query!
}
enum InviteStatus {
PENDING
EXPIRED
}
type KeyDoesNotExistError {
query: Query!
}
type KeyLimitExceededError {
query: Query!
}
type Member {
id: ID!
role: MemberRole!
createdAt: DateTime!
account: Account!
user: User!
}
type MemberConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [MemberEdge!]!
# A list of nodes.
nodes: [Member!]!
}
input MemberDeleteInput {
id: ID!
}
type MemberDeletePayload {
deletedMemberId: ID!
query: Query!
}
# An edge in a connection.
type MemberEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: Member!
}
enum MemberRole {
OWNER
MEMBER
}
input MemberUpdateInput {
id: ID!
role: MemberRole
}
type MemberUpdatePayload {
member: Member!
query: Query!
}
type MonthlyLimits {
reads: Int
writes: Int
apiRequests: Int
size: Int
}
type MustLeaveAtLeastOneKeyForEnvironmentError {
query: Query!
}
type Mutation {
# Create a new access token.
accessTokenCreate(input: AccessTokenCreateInput!): AccessTokenCreatePayload!
# Delete a given access token.
accessTokenDelete(input: AccessTokenDeleteInput!): AccessTokenDeletePayload!
# Create new organization account owned by the current user. Slug must be unique.
organizationCreate(input: OrganizationCreateInput!): OrganizationCreatePayload!
organizationSlugUpdate(input: OrganizationSlugUpdateInput!): OrganizationSlugUpdatePayload!
personalAccountSlugUpdate(input: PersonalAccountSlugUpdateInput!): PersonalAccountSlugUpdatePayload!
organizationUpdate(input: OrganizationUpdateInput!): OrganizationUpdatePayload!
personalAccountUpdate(input: PersonalAccountUpdateInput!): PersonalAccountUpdatePayload!
personalAccountDelete: PersonalAccountDeletePayload!
organizationDelete(input: OrganizationDeleteInput!): OrganizationDeletePayload!
# Create a new deployment for an existing project.
deploymentCreate(input: DeploymentCreateInput!): DeploymentCreatePayload!
# Create a new environment variable.
environmentVariableCreate(input: EnvironmentVariableCreateInput!): EnvironmentVariableCreatePayload!
# Update an environment variable.
environmentVariableUpdate(input: EnvironmentVariableUpdateInput!): EnvironmentVariableUpdatePayload!
# Delete an environment variable.
environmentVariableDelete(input: EnvironmentVariableDeleteInput!): EnvironmentVariableDeletePayload!
inviteSend(input: InviteSendInput!): InviteSendPayload!
inviteCancel(input: InviteCancelInput!): InviteCancelPayload!
inviteAccept(input: InviteAcceptInput!): InviteAcceptPayload!
inviteDecline(input: InviteDeclineInput!): InviteDeclinePayload!
# Update role of an organization member
memberUpdate(input: MemberUpdateInput!): MemberUpdatePayload!
# Remove member from an organization
memberDelete(input: MemberDeleteInput!): MemberDeletePayload!
# Create a new project API key.
projectApiKeyCreate(input: ProjectApiKeyCreateInput!): ProjectApiKeyCreatePayload!
# Update a given API key with a new name.
projectApiKeyUpdate(input: ProjectApiKeyUpdateInput!): ProjectApiKeyUpdatePayload!
# Delete a given API key.
projectApiKeyDelete(input: ProjectApiKeyDeleteInput!): ProjectApiKeyDeletePayload!
# Create a new project without any source for an initial deployment.
projectCreate(input: ProjectCreateInput!): ProjectCreatePayload!
# Create a new project from a GitHub repository.
projectCreateFromSchema(input: ProjectCreateFromSchemaInput!): ProjectCreateFromSchemaPayload!
# Create a new project from a GitHub repository.
projectCreateFromRepository(input: ProjectCreateFromRepositoryInput!): ProjectCreateFromRepositoryPayload!
# Create a new project from a template in a newly created GitHub repository.
projectCreateFromTemplate(input: ProjectCreateFromTemplateInput!): ProjectCreateFromTemplatePayload!
projectUpdate(input: ProjectUpdateInput!): ProjectUpdatePayload!
projectDelete(input: ProjectDeleteInput!): ProjectDeletePayload!
}
type NameAlreadyExistsError {
query: Query!
}
type NameContainsInvalidCharactersError {
query: Query!
}
type NameSizeCheckError {
maxLength: Int!
message: String!
query: Query!
}
type NameTooLongError {
query: Query!
}
type NotAllowedToCancelInvitesError {
query: Query!
}
type NotAllowedToDeleteOrganizationError {
query: Query!
}
type NotAllowedToSendInvitesError {
query: Query!
}
type NotAllowedToSlugUpdateError {
query: Query!
}
type NotAllowedToUpdateOrganizationError {
query: Query!
}
type Organization implements Account {
id: ID!
slug: String!
name: String!
createdAt: DateTime!
projects(after: String, before: String, first: Int, last: Int): ProjectConnection!
invites(after: String, before: String, first: Int, last: Int): InviteConnection!
members(after: String, before: String, first: Int, last: Int): MemberConnection!
}
type OrganizationConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [OrganizationEdge!]!
# A list of nodes.
nodes: [Organization!]!
}
input OrganizationCreateInput {
slug: String!
name: String!
}
union OrganizationCreatePayload =
OrganizationCreateSuccess
| SlugError
| SlugSizeCheckError
| NameSizeCheckError
| ReservedSlugsCheckError
| SlugAlreadyExistsError
type OrganizationCreateSuccess {
organization: Organization!
member: Member!
query: Query!
}
input OrganizationDeleteInput {
id: ID!
}
union OrganizationDeletePayload =
OrganizationDeleteSuccess
| OrganizationDoesNotExistError
| NotAllowedToDeleteOrganizationError
type OrganizationDeleteSuccess {
deletedId: ID!
query: Query!
}
type OrganizationDoesNotExistError {
query: Query!
}
# An edge in a connection.
type OrganizationEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: Organization!
}
type OrganizationOwnershipNotTransferredError {
query: Query!
}
input OrganizationSlugUpdateInput {
id: ID!
slug: String!
}
union OrganizationSlugUpdatePayload =
OrganizationSlugUpdateSuccess
| SlugError
| SlugSizeCheckError
| ReservedSlugsCheckError
| SlugAlreadyExistsError
| OrganizationDoesNotExistError
| NotAllowedToSlugUpdateError
type OrganizationSlugUpdateSuccess {
organization: Organization!
query: Query!
}
input OrganizationUpdateInput {
id: ID!
name: String!
}
union OrganizationUpdatePayload =
OrganizationUpdateSuccess
| OrganizationDoesNotExistError
| NameSizeCheckError
| NotAllowedToUpdateOrganizationError
type OrganizationUpdateSuccess {
organization: Organization!
query: Query!
}
# Information about pagination in a connection
type PageInfo {
# When paginating backwards, are there more items?
hasPreviousPage: Boolean!
# When paginating forwards, are there more items?
hasNextPage: Boolean!
# When paginating backwards, the cursor to continue.
startCursor: String
# When paginating forwards, the cursor to continue.
endCursor: String
}
type PersonalAccount implements Account {
id: ID!
slug: String!
name: String!
createdAt: DateTime!
projects(after: String, before: String, first: Int, last: Int): ProjectConnection!
}
union PersonalAccountDeletePayload = PersonalAccountDeleteSuccess | OrganizationOwnershipNotTransferredError
type PersonalAccountDeleteSuccess {
deletedId: ID!
query: Query!
}
input PersonalAccountSlugUpdateInput {
slug: String!
}
union PersonalAccountSlugUpdatePayload =
PersonalAccountSlugUpdateSuccess
| SlugError
| SlugSizeCheckError
| ReservedSlugsCheckError
| SlugAlreadyExistsError
type PersonalAccountSlugUpdateSuccess {
query: Query!
}
input PersonalAccountUpdateInput {
name: String!
}
union PersonalAccountUpdatePayload = PersonalAccountUpdateSuccess | NameSizeCheckError
type PersonalAccountUpdateSuccess {
query: Query!
}
type Project {
id: ID!
slug: String!
createdAt: DateTime!
repository: GitRepository
branches(after: String, before: String, first: Int, last: Int): BranchConnection!
apiKeys(after: String, before: String, first: Int, last: Int): ProjectApiKeyConnection!
productionBranch: Branch!
environmentVariables(after: String, before: String, first: Int, last: Int): EnvironmentVariableConnection!
deployments(after: String, before: String, first: Int, last: Int, filter: DeploymentFilter): DeploymentConnection!
databaseRegions: [DatabaseRegion!]!
usage(filter: DatabaseUsageFilter): DatabaseUsage!
plan: ProjectPlan!
status: ProjectStatus!
databaseRegionChangeStatus: DatabaseRegionChangeStatus!
}
type ProjectApiKey {
id: ID!
key: String!
environment: BranchEnvironment!
createdAt: DateTime!
name: String!
}
type ProjectApiKeyConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [ProjectApiKeyEdge!]!
# A list of nodes.
nodes: [ProjectApiKey!]!
}
input ProjectApiKeyCreateInput {
projectId: ID!
environment: BranchEnvironment!
name: String!
}
union ProjectApiKeyCreatePayload = ProjectApiKeyCreateSuccess | KeyLimitExceededError | ProjectDoesNotExistError
type ProjectApiKeyCreateSuccess {
apiKey: ProjectApiKey!
query: Query!
}
input ProjectApiKeyDeleteInput {
id: ID!
}
union ProjectApiKeyDeletePayload =
ProjectApiKeyDeleteSuccess
| KeyDoesNotExistError
| MustLeaveAtLeastOneKeyForEnvironmentError
type ProjectApiKeyDeleteSuccess {
deletedId: ID!
query: Query!
}
# An edge in a connection.
type ProjectApiKeyEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: ProjectApiKey!
}
input ProjectApiKeyUpdateInput {
id: ID!
name: String!
}
union ProjectApiKeyUpdatePayload = ProjectApiKeyUpdateSuccess | KeyDoesNotExistError
type ProjectApiKeyUpdateSuccess {
query: Query!
}
type ProjectConnection {
# Information to aid in pagination.
pageInfo: PageInfo!
# A list of edges.
edges: [ProjectEdge!]!
# A list of nodes.
nodes: [Project!]!
}
input ProjectCreateFromRepositoryInput {
accountId: ID!
projectSlug: String!
gitRepoUrl: Url!
gitAccountId: String!
productionBranch: String!
databaseRegions: [String!]!
}
union ProjectCreateFromRepositoryPayload =
ProjectCreateFromRepositorySuccess
| SlugAlreadyExistsError
| SlugInvalidError
| SlugTooLongError
| RepositoryContainsNoBranchesError
| AccountDoesNotExistError
| CurrentPlanLimitReachedError
| EmptyDatabaseRegionsError
| DuplicateDatabaseRegionsError
| InvalidDatabaseRegionsError
type ProjectCreateFromRepositorySuccess {
project: Project!
query: Query!
}
input ProjectCreateFromSchemaInput {
accountId: ID!
projectSlug: String!
schema: String!
databaseRegions: [String!]!
}
union ProjectCreateFromSchemaPayload =
ProjectCreateFromSchemaSuccess
| SlugAlreadyExistsError
| SlugInvalidError
| SlugTooLongError
| AccountDoesNotExistError
| CurrentPlanLimitReachedError
| EmptyDatabaseRegionsError
| DuplicateDatabaseRegionsError
| InvalidDatabaseRegionsError
type ProjectCreateFromSchemaSuccess {
project: Project!
query: Query!
}
input ProjectCreateFromTemplateInput {
accountId: ID!
projectSlug: String!
templateGitUrl: Url!
gitAccountId: String!
repoSlug: String!
repoPrivate: Boolean!
databaseRegions: [String!]!
}
union ProjectCreateFromTemplatePayload =
ProjectCreateFromTemplateSuccess
| SlugAlreadyExistsError
| SlugInvalidError
| SlugTooLongError
| RepositorySlugInUseError
| TemplateDoesNotExistError
| AccountDoesNotExistError
| CurrentPlanLimitReachedError
| EmptyDatabaseRegionsError
| DuplicateDatabaseRegionsError
| InvalidDatabaseRegionsError
type ProjectCreateFromTemplateSuccess {
project: Project!
query: Query!
}
input ProjectCreateInput {
accountId: ID!
projectSlug: String!
databaseRegions: [String!]!
}
union ProjectCreatePayload =
ProjectCreateSuccess
| SlugAlreadyExistsError
| SlugInvalidError
| SlugTooLongError
| AccountDoesNotExistError
| CurrentPlanLimitReachedError
| EmptyDatabaseRegionsError
| DuplicateDatabaseRegionsError
| InvalidDatabaseRegionsError
type ProjectCreateSuccess {
project: Project!
query: Query!
}
input ProjectDeleteInput {
id: ID!
}
union ProjectDeletePayload = ProjectDeleteSuccess | ProjectDoesNotExistError
type ProjectDeleteSuccess {
query: Query!
}
type ProjectDoesNotExistError {
query: Query!
}
# An edge in a connection.
type ProjectEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: Project!
}
type ProjectPlan {
name: String!
monthlyLimits: MonthlyLimits!
}
enum ProjectStatus {
ACTIVE
INACTIVE
}
input ProjectUpdateInput {
id: ID!
projectSlug: String
productionBranch: String
}
union ProjectUpdatePayload =
ProjectUpdateSuccess
| ProjectDoesNotExistError
| SlugAlreadyExistsError
| SlugInvalidError
| SlugTooLongError
type ProjectUpdateSuccess {
project: Project!
query: Query!
}
type Query {
accessTokens(after: String, before: String, first: Int, last: Int): AccessTokenConnection!
accountBySlug(
# slug of the account
slug: String!
): Account
metricsByBranch(
accountSlug: String!
projectSlug: String!
branch: String!
startDate: DateTime!
endDate: DateTime!
): BranchMetricsPayload!
# Get branch by account slug, project slug and the name of the branch.
branch(
# slug of the account
accountSlug: String!
# slug of the project
projectSlug: String!
# name of the branch
name: String!
): Branch
# Get all database regions available for replication.
databaseRegions: [DatabaseRegion!]!
closestDatabaseRegion: DatabaseRegion
# Get deployment by ID.
deployment(
# ID of the deployment
id: ID!
): Deployment
# Return a list of git accounts accessible by the current user sorted by the creation date.
gitAccounts(provider: GitProvider!): GitAccountsPayload!
# Return a list of git repositories accessible by the current user, sorted by updatedAt.
# With `query` specified, the list will include up to 10 repos matching the query.
# Without `query`, the list will include the 10 most recently updated repos.
gitRepos(provider: GitProvider!, gitAccountId: String!, query: String): [GitRepository!]!
# Returns details about a specific git repository identified by its URL.
gitRepoByUrl(url: Url!): GitRepository!
# Returns the contents of the `schema.graphql` file located in a particular branch of a repository idenitifed by its URL.
schema(url: Url!, branch: String!): String
invite(id: ID!): Invite
# Get project by account slug and slug of the project itself.
projectByAccountSlug(
# slug of the account
accountSlug: String!
# slug of the project
projectSlug: String!
): Project
# Give the actual connected user.
viewer: User
}
type RepositoryContainsNoBranchesError {
query: Query!
}
type RepositorySlugInUseError {
query: Query!
}
type ReservedPrefixError {
query: Query!
}
type ReservedSlugsCheckError {
message: String!
query: Query!
}
type SlugAlreadyExistsError {
query: Query!
}
type SlugError {
message: String!
actual: String!
expected: String!
query: Query!
}
type SlugInvalidError {
query: Query!
}
type SlugSizeCheckError {
maxLength: Int!
message: String!
query: Query!
}
type SlugTooLongError {
maxLength: Int!
query: Query!
}
type TemplateDoesNotExistError {
query: Query!
}
type TokenDoesNotExistError {
query: Query!
}
type TokenLimitExceededError {
query: Query!
}
enum UnitType {
NO_UNIT
MILLI_SECONDS
BYTES
}
# URL is a String implementing the [URL Standard](http://url.spec.whatwg.org/)
scalar Url
type User {
id: ID!
name: String!
email: String!
avatarUrl: String
createdAt: DateTime!
organizations(after: String, before: String, first: Int, last: Int): OrganizationConnection!
organizationMemberships: [Member!]!
personalAccount: PersonalAccount
limits: ViewerLimits!
}
type ValueTooLongError {
query: Query!
}
type ViewerLimits {
remainingProjects: Int
totalProjects: Int
}