| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | # ===============================================# GROUPS# ===============================================extend type Query {  groups(    filter: String    orderBy: String  ): [Group]  groupById(    id: UUID!  ): Group}extend type Mutation {  createGroup(    name: String!  ): GroupResponse  updateGroup(    id: UUID!    name: String!    redirectOnLogin: String!    permissions: [String]!    rules: [GroupRuleInput]!  ): DefaultResponse  deleteGroup(    id: UUID!  ): DefaultResponse  assignUserToGroup(    groupId: UUID!    userId: UUID!  ): DefaultResponse  unassignUserFromGroup(    groupId: UUID!    userId: UUID!  ): DefaultResponse}# -----------------------------------------------# TYPES# -----------------------------------------------type GroupResponse {  operation: Operation  group: Group}type Group {  id: UUID  name: String  isSystem: Boolean  redirectOnLogin: String  redirectOnFirstLogin: String  redirectOnLogout: String  permissions: [String]  rules: [GroupRule]  users(    page: Int    pageSize: Int    orderBy: UserOrderBy    orderByDirection: OrderByDirection    # Filter by name / email    filter: String    ): [UserMinimal]  userCount: Int  createdAt: Date  updatedAt: Date}type GroupRule {  id: UUID  name: String  mode: GroupRuleMode  match: GroupRuleMatch  roles: [String]  path: String  locales: [String]  sites: [UUID]}input GroupRuleInput {  id: UUID!  name: String!  mode: GroupRuleMode!  match: GroupRuleMatch!  roles: [String]!  path: String!  locales: [String]!  sites: [UUID]}enum GroupRuleMode {  ALLOW  DENY  FORCEALLOW}enum GroupRuleMatch {  START  EXACT  END  REGEX  TAG  TAGALL}
 |