enum Status { online offline } type Presence { id: ID! status: Status! } type Mutation { connect(id: ID!): Presence disconnect(id: ID!): Presence } type Query { heartbeat(id: ID!): Presence status(id: ID!): Presence } type Subscription { onStatus(id: ID!): Presence @aws_subscribe(mutations: ["connect","disconnect"]) } type Mutation { connect(id: ID!): Presence disconnect(id: ID!): Presence disconnected(id: ID!): Presence @aws_iam } ... type Subscription { onStatus(id: ID!): Presence @aws_subscribe(mutations: ["connect","disconnect","disconnected"]) }