Skip to content

Instantly share code, notes, and snippets.

@mnichols
Created March 27, 2019 04:48
Show Gist options
  • Save mnichols/3b94f868c5744f4df0d9c1055deecc48 to your computer and use it in GitHub Desktop.
Save mnichols/3b94f868c5744f4df0d9c1055deecc48 to your computer and use it in GitHub Desktop.
GraphQLSchema
schema {
query: Query
mutation: Mutation
}
enum InstallStrategy {
APP
ASSET
}
enum AppStatus {
MUTABLE
VERIFIABLE
APPROVED
REJECTED
}
type App {
author: Developer!
bannerImage: String!
bugs: String
contributors: [Developer!]
description: String!
displayName: String!
homepage: String!
icon: String!
installUrl: String
installStrategy: InstallStrategy
latest: App
licenses: [String!]
manifestVersion: String
name: String!
privacyPolicy: String
screenshots: [String!]
repository: String
selfUrl: String!
socialUrls: [String!]
status: AppStatus
tagline: String!
teamId: String!
teamName: String!
termsOfService: String
updatedAt: Int!
version: String!
}
type AssetEntry {
key: String!
url: String!
}
type Developer {
email: String!
name: String!
urls: [String!]
imageUrl: String
}
type Files {
submitted: [AssetEntry!]
pending: [String!]
uploaded: [String!]
}
type Query {
app(selfUrl: String!): App!
apps(criteria: AppsCriteriaInput!): [App!]
latest(selfUrl: String!): App!
uploads(name: String!, version: String!): Files!
}
"""
Inputs
"""
input AssetInput {
license: String
licenseUrl: String
name: String!
path: String!
type: String!
}
input DeveloperInput {
email: String!
imageUrl: String
name: String!
urls: [String!]
}
"""
https://github.com/InVisionApp/developer-portal/blob/master/studio/getting-started/manifest.md
TODO: homepage and manifestVersion need to be made non-null
"""
input ManifestInput {
author: DeveloperInput!
assets: [AssetInput!]
bannerImage: String!
bugs: String
contributors: [DeveloperInput!]
description: String!
displayName: String!
dockIcon: String
entry: String
homepage: String
icon: String
licenses: [String!]
manifestVersion: String
name: String!
privacyPolicy: String
repository: String
screenshots: [String!]
socialUrls: [String!]
tagline: String!
teamSubdomain: String
termsOfService: String
version: String!
}
input AppIdentityInput {
teamId: String!
name: String
version: String
}
input AppsCriteriaInput {
identities: [AppIdentityInput!]
installStrategy: [InstallStrategy!],
status: [AppStatus!],
updateableOnly: Boolean
}
type Mutation {
submitApp(manifest: ManifestInput!, installStrategies: [InstallStrategy!]!, team: String): Files!
verifyApp(selfUrl: String!, status: AppStatus!): App!
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment