type Query {
    administrators(options: AdministratorListOptions): AdministratorList!
    administrator(id: ID!): Administrator
    activeAdministrator: Administrator
}

type Mutation {
    "Create a new Administrator"
    createAdministrator(input: CreateAdministratorInput!): Administrator!
    "Update an existing Administrator"
    updateAdministrator(input: UpdateAdministratorInput!): Administrator!
    "Update the active (currently logged-in) Administrator"
    updateActiveAdministrator(input: UpdateActiveAdministratorInput!): Administrator!
    "Delete an Administrator"
    deleteAdministrator(id: ID!): DeletionResponse!
    "Delete multiple Administrators"
    deleteAdministrators(ids: [ID!]!): [DeletionResponse!]!
    "Assign a Role to an Administrator"
    assignRoleToAdministrator(administratorId: ID!, roleId: ID!): Administrator!
}

# generated by generateListOptions function
input AdministratorListOptions

input CreateAdministratorInput {
    firstName: String!
    lastName: String!
    emailAddress: String!
    password: String!
    roleIds: [ID!]!
}

input UpdateAdministratorInput {
    id: ID!
    firstName: String
    lastName: String
    emailAddress: String
    password: String
    roleIds: [ID!]
}

input UpdateActiveAdministratorInput {
    firstName: String
    lastName: String
    emailAddress: String
    password: String
}
