1"""An operation applied to a bug."""
  2interface Operation {
  3    """The identifier of the operation"""
  4    id: ID!
  5    """The operations author."""
  6    author: Identity!
  7    """The datetime when this operation was issued."""
  8    date: Time!
  9}
 10
 11# Connection
 12
 13"""The connection type for an Operation"""
 14type OperationConnection {
 15    edges: [OperationEdge!]!
 16    nodes: [Operation!]!
 17    pageInfo: PageInfo!
 18    totalCount: Int!
 19}
 20
 21"""Represent an Operation"""
 22type OperationEdge {
 23    cursor: String!
 24    node: Operation!
 25}
 26
 27# Operations
 28
 29type CreateOperation implements Operation & Authored {
 30    """The identifier of the operation"""
 31    id: ID!
 32    """The author of this object."""
 33    author: Identity!
 34    """The datetime when this operation was issued."""
 35    date: Time!
 36
 37    title: String!
 38    message: String!
 39    files: [Hash!]!
 40}
 41
 42type SetTitleOperation implements Operation & Authored {
 43    """The identifier of the operation"""
 44    id: ID!
 45    """The author of this object."""
 46    author: Identity!
 47    """The datetime when this operation was issued."""
 48    date: Time!
 49
 50    title: String!
 51    was: String!
 52}
 53
 54type AddCommentOperation implements Operation & Authored {
 55    """The identifier of the operation"""
 56    id: ID!
 57    """The author of this object."""
 58    author: Identity!
 59    """The datetime when this operation was issued."""
 60    date: Time!
 61
 62    message: String!
 63    files: [Hash!]!
 64}
 65
 66type EditCommentOperation implements Operation & Authored {
 67    """The identifier of the operation"""
 68    id: ID!
 69    """The author of this object."""
 70    author: Identity!
 71    """The datetime when this operation was issued."""
 72    date: Time!
 73
 74    target: String!
 75    message: String!
 76    files: [Hash!]!
 77}
 78
 79type SetStatusOperation implements Operation & Authored {
 80    """The identifier of the operation"""
 81    id: ID!
 82    """The author of this object."""
 83    author: Identity!
 84    """The datetime when this operation was issued."""
 85    date: Time!
 86
 87    status: Status!
 88}
 89
 90type LabelChangeOperation implements Operation & Authored {
 91    """The identifier of the operation"""
 92    id: ID!
 93    """The author of this object."""
 94    author: Identity!
 95    """The datetime when this operation was issued."""
 96    date: Time!
 97
 98    added: [Label!]!
 99    removed: [Label!]!
100}