scalar JSON
scalar Long
scalar UUID
scalar DateTime
scalar Port
scalar URL

type Welcome {
    message: String!
}

type Query {
    # This should always be available even for guest users
    online: Boolean
    info: Info
}

type Mutation {
    login(username: String!, password: String!): String
    shutdown: String
    reboot: String
}

type Subscription {
    ping: String!
    info: Info!
    online: Boolean!
}

# An object with a Globally Unique ID: see https://graphql.org/learn/global-object-identification/
interface Node {
    id: ID!
}