type Query {
  roles(options: RoleListOptions): RoleList!
  role(id: ID!): Role
}

type Mutation {
  "Create a new Role"
  createRole(input: CreateRoleInput!): Role!
  "Update an existing Role"
  updateRole(input: UpdateRoleInput!): Role!
  "Delete an existing Role"
  deleteRole(id: ID!): DeletionResponse!
}

# generated by generateListOptions function
input RoleListOptions

input CreateRoleInput {
    code: String!
    description: String!
    permissions: [Permission!]!
    channelIds: [ID!]
}

input UpdateRoleInput {
    id: ID!
    code: String
    description: String
    permissions: [Permission!]
    channelIds: [ID!]
}
