type Query {
  Collection1(id: String!, draft: Boolean): Collection1
  Collection1s(where: Collection1_where, draft: Boolean, page: Int, limit: Int, sort: String): Collection1s
  docAccessCollection1(id: String!): collection1DocAccess
  Collection2(id: String!, draft: Boolean): Collection2
  Collection2s(where: Collection2_where, draft: Boolean, page: Int, limit: Int, sort: String): Collection2s
  docAccessCollection2(id: String!): collection2DocAccess
  User(id: String!, draft: Boolean): User
  Users(where: User_where, draft: Boolean, page: Int, limit: Int, sort: String): Users
  docAccessUser(id: String!): usersDocAccess
  meUser: usersMe
  initializedUser: Boolean
  Preference(key: String): Preference
  Access: Access
}

type Collection1 {
  id: String
  testing: String!
  title: String!
  meta: [SharedMetaArray!]
  blocks: [Collection1_Blocks!]!
  updatedAt: DateTime
  createdAt: DateTime
}

type SharedMetaArray {
  title: String
  description: String
  id: String
}

union Collection1_Blocks = SharedMetaBlock | AnotherSharedBlock

type SharedMetaBlock {
  b1title: String!
  b1description: String
  id: String
  blockName: String
  blockType: String
}

type AnotherSharedBlock {
  b2title: String!
  b2description: String
  id: String
  blockName: String
  blockType: String
}

"""
A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.
"""
scalar DateTime

type Collection1s {
  docs: [Collection1]
  totalDocs: Int
  offset: Int
  limit: Int
  totalPages: Int
  page: Int
  pagingCounter: Int
  hasPrevPage: Boolean
  hasNextPage: Boolean
  prevPage: Int
  nextPage: Int
}

input Collection1_where {
  testing: Collection1_testing_operator
  title: Collection1_title_operator
  meta__title: Collection1_meta__title_operator
  meta__description: Collection1_meta__description_operator
  meta__id: Collection1_meta__id_operator
  updatedAt: Collection1_updatedAt_operator
  createdAt: Collection1_createdAt_operator
  id: Collection1_id_operator
  OR: [Collection1_where_or]
  AND: [Collection1_where_and]
}

input Collection1_testing_operator {
  equals: String
  not_equals: String
  like: String
  contains: String
  in: [String]
  not_in: [String]
  all: [String]
}

input Collection1_title_operator {
  equals: String
  not_equals: String
  like: String
  contains: String
  in: [String]
  not_in: [String]
  all: [String]
}

input Collection1_meta__title_operator {
  equals: String
  not_equals: String
  like: String
  contains: String
  in: [String]
  not_in: [String]
  all: [String]
  exists: Boolean
}

input Collection1_meta__description_operator {
  equals: String
  not_equals: String
  like: String
  contains: String
  in: [String]
  not_in: [String]
  all: [String]
  exists: Boolean
}

input Collection1_meta__id_operator {
  equals: String
  not_equals: String
  like: String
  contains: String
  in: [String]
  not_in: [String]
  all: [String]
  exists: Boolean
}

input Collection1_updatedAt_operator {
  equals: DateTime
  not_equals: DateTime
  greater_than_equal: DateTime
  greater_than: DateTime
  less_than_equal: DateTime
  less_than: DateTime
  like: DateTime
  exists: Boolean
}

input Collection1_createdAt_operator {
  equals: DateTime
  not_equals: DateTime
  greater_than_equal: DateTime
  greater_than: DateTime
  less_than_equal: DateTime
  less_than: DateTime
  like: DateTime
  exists: Boolean
}

input Collection1_id_operator {
  equals: String
  not_equals: String
  like: String
  contains: String
  in: [String]
  not_in: [String]
  all: [String]
  exists: Boolean
}

input Collection1_where_or {
  testing: Collection1_testing_operator
  title: Collection1_title_operator
  meta__title: Collection1_meta__title_operator
  meta__description: Collection1_meta__description_operator
  meta__id: Collection1_meta__id_operator
  updatedAt: Collection1_updatedAt_operator
  createdAt: Collection1_createdAt_operator
  id: Collection1_id_operator
}

input Collection1_where_and {
  testing: Collection1_testing_operator
  title: Collection1_title_operator
  meta__title: Collection1_meta__title_operator
  meta__description: Collection1_meta__description_operator
  meta__id: Collection1_meta__id_operator
  updatedAt: Collection1_updatedAt_operator
  createdAt: Collection1_createdAt_operator
  id: Collection1_id_operator
}

type collection1DocAccess {
  fields: Collection1DocAccessFields
  create: Collection1CreateDocAccess
  read: Collection1ReadDocAccess
  update: Collection1UpdateDocAccess
  delete: Collection1DeleteDocAccess
}

type Collection1DocAccessFields {
  testing: Collection1DocAccessFields_testing
  title: Collection1DocAccessFields_title
  meta: Collection1DocAccessFields_meta
  blocks: Collection1DocAccessFields_blocks
  updatedAt: Collection1DocAccessFields_updatedAt
  createdAt: Collection1DocAccessFields_createdAt
}

type Collection1DocAccessFields_testing {
  create: Collection1DocAccessFields_testing_Create
  read: Collection1DocAccessFields_testing_Read
  update: Collection1DocAccessFields_testing_Update
  delete: Collection1DocAccessFields_testing_Delete
}

type Collection1DocAccessFields_testing_Create {
  permission: Boolean!
}

type Collection1DocAccessFields_testing_Read {
  permission: Boolean!
}

type Collection1DocAccessFields_testing_Update {
  permission: Boolean!
}

type Collection1DocAccessFields_testing_Delete {
  permission: Boolean!
}

type Collection1DocAccessFields_title {
  create: Collection1DocAccessFields_title_Create
  read: Collection1DocAccessFields_title_Read
  update: Collection1DocAccessFields_title_Update
  delete: Collection1DocAccessFields_title_Delete
}

type Collection1DocAccessFields_title_Create {
  permission: Boolean!
}

type Collection1DocAccessFields_title_Read {
  permission: Boolean!
}

type Collection1DocAccessFields_title_Update {
  permission: Boolean!
}

type Collection1DocAccessFields_title_Delete {
  permission: Boolean!
}

type Collection1DocAccessFields_meta {
  create: Collection1DocAccessFields_meta_Create
  read: Collection1DocAccessFields_meta_Read
  update: Collection1DocAccessFields_meta_Update
  delete: Collection1DocAccessFields_meta_Delete
  fields: Collection1DocAccessFields_meta_Fields
}

type Collection1DocAccessFields_meta_Create {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_Read {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_Update {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_Delete {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_Fields {
  title: Collection1DocAccessFields_meta_title
  description: Collection1DocAccessFields_meta_description
  id: Collection1DocAccessFields_meta_id
}

type Collection1DocAccessFields_meta_title {
  create: Collection1DocAccessFields_meta_title_Create
  read: Collection1DocAccessFields_meta_title_Read
  update: Collection1DocAccessFields_meta_title_Update
  delete: Collection1DocAccessFields_meta_title_Delete
}

type Collection1DocAccessFields_meta_title_Create {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_title_Read {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_title_Update {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_title_Delete {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_description {
  create: Collection1DocAccessFields_meta_description_Create
  read: Collection1DocAccessFields_meta_description_Read
  update: Collection1DocAccessFields_meta_description_Update
  delete: Collection1DocAccessFields_meta_description_Delete
}

type Collection1DocAccessFields_meta_description_Create {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_description_Read {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_description_Update {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_description_Delete {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_id {
  create: Collection1DocAccessFields_meta_id_Create
  read: Collection1DocAccessFields_meta_id_Read
  update: Collection1DocAccessFields_meta_id_Update
  delete: Collection1DocAccessFields_meta_id_Delete
}

type Collection1DocAccessFields_meta_id_Create {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_id_Read {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_id_Update {
  permission: Boolean!
}

type Collection1DocAccessFields_meta_id_Delete {
  permission: Boolean!
}

type Collection1DocAccessFields_blocks {
  create: Collection1DocAccessFields_blocks_Create
  read: Collection1DocAccessFields_blocks_Read
  update: Collection1DocAccessFields_blocks_Update
  delete: Collection1DocAccessFields_blocks_Delete
}

type Collection1DocAccessFields_blocks_Create {
  permission: Boolean!
}

type Collection1DocAccessFields_blocks_Read {
  permission: Boolean!
}

type Collection1DocAccessFields_blocks_Update {
  permission: Boolean!
}

type Collection1DocAccessFields_blocks_Delete {
  permission: Boolean!
}

type Collection1DocAccessFields_updatedAt {
  create: Collection1DocAccessFields_updatedAt_Create
  read: Collection1DocAccessFields_updatedAt_Read
  update: Collection1DocAccessFields_updatedAt_Update
  delete: Collection1DocAccessFields_updatedAt_Delete
}

type Collection1DocAccessFields_updatedAt_Create {
  permission: Boolean!
}

type Collection1DocAccessFields_updatedAt_Read {
  permission: Boolean!
}

type Collection1DocAccessFields_updatedAt_Update {
  permission: Boolean!
}

type Collection1DocAccessFields_updatedAt_Delete {
  permission: Boolean!
}

type Collection1DocAccessFields_createdAt {
  create: Collection1DocAccessFields_createdAt_Create
  read: Collection1DocAccessFields_createdAt_Read
  update: Collection1DocAccessFields_createdAt_Update
  delete: Collection1DocAccessFields_createdAt_Delete
}

type Collection1DocAccessFields_createdAt_Create {
  permission: Boolean!
}

type Collection1DocAccessFields_createdAt_Read {
  permission: Boolean!
}

type Collection1DocAccessFields_createdAt_Update {
  permission: Boolean!
}

type Collection1DocAccessFields_createdAt_Delete {
  permission: Boolean!
}

type Collection1CreateDocAccess {
  permission: Boolean!
  where: JSONObject
}

"""
The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
"""
scalar JSONObject

type Collection1ReadDocAccess {
  permission: Boolean!
  where: JSONObject
}

type Collection1UpdateDocAccess {
  permission: Boolean!
  where: JSONObject
}

type Collection1DeleteDocAccess {
  permission: Boolean!
  where: JSONObject
}

type Collection2 {
  id: String
  meta: SharedMeta
  nestedGroup: Collection2_NestedGroup
  updatedAt: DateTime
  createdAt: DateTime
}

type SharedMeta {
  title: String
  description: String
}

type Collection2_NestedGroup {
  meta: SharedMeta
}

type Collection2s {
  docs: [Collection2]
  totalDocs: Int
  offset: Int
  limit: Int
  totalPages: Int
  page: Int
  pagingCounter: Int
  hasPrevPage: Boolean
  hasNextPage: Boolean
  prevPage: Int
  nextPage: Int
}

input Collection2_where {
  meta__title: Collection2_meta__title_operator
  meta__description: Collection2_meta__description_operator
  meta__id: Collection2_meta__id_operator
  nestedGroup__meta__title: Collection2_nestedGroup__meta__title_operator
  nestedGroup__meta__description: Collection2_nestedGroup__meta__description_operator
  updatedAt: Collection2_updatedAt_operator
  createdAt: Collection2_createdAt_operator
  id: Collection2_id_operator
  OR: [Collection2_where_or]
  AND: [Collection2_where_and]
}

input Collection2_meta__title_operator {
  equals: String
  not_equals: String
  like: String
  contains: String
  in: [String]
  not_in: [String]
  all: [String]
  exists: Boolean
}

input Collection2_meta__description_operator {
  equals: String
  not_equals: String
  like: String
  contains: String
  in: [String]
  not_in: [String]
  all: [String]
  exists: Boolean
}

input Collection2_meta__id_operator {
  equals: String
  not_equals: String
  like: String
  contains: String
  in: [String]
  not_in: [String]
  all: [String]
  exists: Boolean
}

input Collection2_nestedGroup__meta__title_operator {
  equals: String
  not_equals: String
  like: String
  contains: String
  in: [String]
  not_in: [String]
  all: [String]
  exists: Boolean
}

input Collection2_nestedGroup__meta__description_operator {
  equals: String
  not_equals: String
  like: String
  contains: String
  in: [String]
  not_in: [String]
  all: [String]
  exists: Boolean
}

input Collection2_updatedAt_operator {
  equals: DateTime
  not_equals: DateTime
  greater_than_equal: DateTime
  greater_than: DateTime
  less_than_equal: DateTime
  less_than: DateTime
  like: DateTime
  exists: Boolean
}

input Collection2_createdAt_operator {
  equals: DateTime
  not_equals: DateTime
  greater_than_equal: DateTime
  greater_than: DateTime
  less_than_equal: DateTime
  less_than: DateTime
  like: DateTime
  exists: Boolean
}

input Collection2_id_operator {
  equals: String
  not_equals: String
  like: String
  contains: String
  in: [String]
  not_in: [String]
  all: [String]
  exists: Boolean
}

input Collection2_where_or {
  meta__title: Collection2_meta__title_operator
  meta__description: Collection2_meta__description_operator
  meta__id: Collection2_meta__id_operator
  nestedGroup__meta__title: Collection2_nestedGroup__meta__title_operator
  nestedGroup__meta__description: Collection2_nestedGroup__meta__description_operator
  updatedAt: Collection2_updatedAt_operator
  createdAt: Collection2_createdAt_operator
  id: Collection2_id_operator
}

input Collection2_where_and {
  meta__title: Collection2_meta__title_operator
  meta__description: Collection2_meta__description_operator
  meta__id: Collection2_meta__id_operator
  nestedGroup__meta__title: Collection2_nestedGroup__meta__title_operator
  nestedGroup__meta__description: Collection2_nestedGroup__meta__description_operator
  updatedAt: Collection2_updatedAt_operator
  createdAt: Collection2_createdAt_operator
  id: Collection2_id_operator
}

type collection2DocAccess {
  fields: Collection2DocAccessFields
  create: Collection2CreateDocAccess
  read: Collection2ReadDocAccess
  update: Collection2UpdateDocAccess
  delete: Collection2DeleteDocAccess
}

type Collection2DocAccessFields {
  meta: Collection2DocAccessFields_meta
  nestedGroup: Collection2DocAccessFields_nestedGroup
  updatedAt: Collection2DocAccessFields_updatedAt
  createdAt: Collection2DocAccessFields_createdAt
}

type Collection2DocAccessFields_meta {
  create: Collection2DocAccessFields_meta_Create
  read: Collection2DocAccessFields_meta_Read
  update: Collection2DocAccessFields_meta_Update
  delete: Collection2DocAccessFields_meta_Delete
  fields: Collection2DocAccessFields_meta_Fields
}

type Collection2DocAccessFields_meta_Create {
  permission: Boolean!
}

type Collection2DocAccessFields_meta_Read {
  permission: Boolean!
}

type Collection2DocAccessFields_meta_Update {
  permission: Boolean!
}

type Collection2DocAccessFields_meta_Delete {
  permission: Boolean!
}

type Collection2DocAccessFields_meta_Fields {
  title: Collection2DocAccessFields_meta_title
  description: Collection2DocAccessFields_meta_description
}

type Collection2DocAccessFields_meta_title {
  create: Collection2DocAccessFields_meta_title_Create
  read: Collection2DocAccessFields_meta_title_Read
  update: Collection2DocAccessFields_meta_title_Update
  delete: Collection2DocAccessFields_meta_title_Delete
}

type Collection2DocAccessFields_meta_title_Create {
  permission: Boolean!
}

type Collection2DocAccessFields_meta_title_Read {
  permission: Boolean!
}

type Collection2DocAccessFields_meta_title_Update {
  permission: Boolean!
}

type Collection2DocAccessFields_meta_title_Delete {
  permission: Boolean!
}

type Collection2DocAccessFields_meta_description {
  create: Collection2DocAccessFields_meta_description_Create
  read: Collection2DocAccessFields_meta_description_Read
  update: Collection2DocAccessFields_meta_description_Update
  delete: Collection2DocAccessFields_meta_description_Delete
}

type Collection2DocAccessFields_meta_description_Create {
  permission: Boolean!
}

type Collection2DocAccessFields_meta_description_Read {
  permission: Boolean!
}

type Collection2DocAccessFields_meta_description_Update {
  permission: Boolean!
}

type Collection2DocAccessFields_meta_description_Delete {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup {
  create: Collection2DocAccessFields_nestedGroup_Create
  read: Collection2DocAccessFields_nestedGroup_Read
  update: Collection2DocAccessFields_nestedGroup_Update
  delete: Collection2DocAccessFields_nestedGroup_Delete
  fields: Collection2DocAccessFields_nestedGroup_Fields
}

type Collection2DocAccessFields_nestedGroup_Create {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_Read {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_Update {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_Delete {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_Fields {
  meta: Collection2DocAccessFields_nestedGroup_meta
}

type Collection2DocAccessFields_nestedGroup_meta {
  create: Collection2DocAccessFields_nestedGroup_meta_Create
  read: Collection2DocAccessFields_nestedGroup_meta_Read
  update: Collection2DocAccessFields_nestedGroup_meta_Update
  delete: Collection2DocAccessFields_nestedGroup_meta_Delete
  fields: Collection2DocAccessFields_nestedGroup_meta_Fields
}

type Collection2DocAccessFields_nestedGroup_meta_Create {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_meta_Read {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_meta_Update {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_meta_Delete {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_meta_Fields {
  title: Collection2DocAccessFields_nestedGroup_meta_title
  description: Collection2DocAccessFields_nestedGroup_meta_description
}

type Collection2DocAccessFields_nestedGroup_meta_title {
  create: Collection2DocAccessFields_nestedGroup_meta_title_Create
  read: Collection2DocAccessFields_nestedGroup_meta_title_Read
  update: Collection2DocAccessFields_nestedGroup_meta_title_Update
  delete: Collection2DocAccessFields_nestedGroup_meta_title_Delete
}

type Collection2DocAccessFields_nestedGroup_meta_title_Create {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_meta_title_Read {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_meta_title_Update {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_meta_title_Delete {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_meta_description {
  create: Collection2DocAccessFields_nestedGroup_meta_description_Create
  read: Collection2DocAccessFields_nestedGroup_meta_description_Read
  update: Collection2DocAccessFields_nestedGroup_meta_description_Update
  delete: Collection2DocAccessFields_nestedGroup_meta_description_Delete
}

type Collection2DocAccessFields_nestedGroup_meta_description_Create {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_meta_description_Read {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_meta_description_Update {
  permission: Boolean!
}

type Collection2DocAccessFields_nestedGroup_meta_description_Delete {
  permission: Boolean!
}

type Collection2DocAccessFields_updatedAt {
  create: Collection2DocAccessFields_updatedAt_Create
  read: Collection2DocAccessFields_updatedAt_Read
  update: Collection2DocAccessFields_updatedAt_Update
  delete: Collection2DocAccessFields_updatedAt_Delete
}

type Collection2DocAccessFields_updatedAt_Create {
  permission: Boolean!
}

type Collection2DocAccessFields_updatedAt_Read {
  permission: Boolean!
}

type Collection2DocAccessFields_updatedAt_Update {
  permission: Boolean!
}

type Collection2DocAccessFields_updatedAt_Delete {
  permission: Boolean!
}

type Collection2DocAccessFields_createdAt {
  create: Collection2DocAccessFields_createdAt_Create
  read: Collection2DocAccessFields_createdAt_Read
  update: Collection2DocAccessFields_createdAt_Update
  delete: Collection2DocAccessFields_createdAt_Delete
}

type Collection2DocAccessFields_createdAt_Create {
  permission: Boolean!
}

type Collection2DocAccessFields_createdAt_Read {
  permission: Boolean!
}

type Collection2DocAccessFields_createdAt_Update {
  permission: Boolean!
}

type Collection2DocAccessFields_createdAt_Delete {
  permission: Boolean!
}

type Collection2CreateDocAccess {
  permission: Boolean!
  where: JSONObject
}

type Collection2ReadDocAccess {
  permission: Boolean!
  where: JSONObject
}

type Collection2UpdateDocAccess {
  permission: Boolean!
  where: JSONObject
}

type Collection2DeleteDocAccess {
  permission: Boolean!
  where: JSONObject
}

type User {
  id: String
  updatedAt: DateTime
  createdAt: DateTime
  email: EmailAddress!
  resetPasswordToken: String
  resetPasswordExpiration: DateTime
  salt: String
  hash: String
  loginAttempts: Float
  lockUntil: DateTime
  password: String!
}

"""
A field whose value conforms to the standard internet email address format as specified in HTML Spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address.
"""
scalar EmailAddress @specifiedBy(url: "https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address")

type Users {
  docs: [User]
  totalDocs: Int
  offset: Int
  limit: Int
  totalPages: Int
  page: Int
  pagingCounter: Int
  hasPrevPage: Boolean
  hasNextPage: Boolean
  prevPage: Int
  nextPage: Int
}

input User_where {
  updatedAt: User_updatedAt_operator
  createdAt: User_createdAt_operator
  email: User_email_operator
  id: User_id_operator
  OR: [User_where_or]
  AND: [User_where_and]
}

input User_updatedAt_operator {
  equals: DateTime
  not_equals: DateTime
  greater_than_equal: DateTime
  greater_than: DateTime
  less_than_equal: DateTime
  less_than: DateTime
  like: DateTime
  exists: Boolean
}

input User_createdAt_operator {
  equals: DateTime
  not_equals: DateTime
  greater_than_equal: DateTime
  greater_than: DateTime
  less_than_equal: DateTime
  less_than: DateTime
  like: DateTime
  exists: Boolean
}

input User_email_operator {
  equals: EmailAddress
  not_equals: EmailAddress
  like: EmailAddress
  contains: EmailAddress
  in: [EmailAddress]
  not_in: [EmailAddress]
  all: [EmailAddress]
}

input User_id_operator {
  equals: String
  not_equals: String
  like: String
  contains: String
  in: [String]
  not_in: [String]
  all: [String]
  exists: Boolean
}

input User_where_or {
  updatedAt: User_updatedAt_operator
  createdAt: User_createdAt_operator
  email: User_email_operator
  id: User_id_operator
}

input User_where_and {
  updatedAt: User_updatedAt_operator
  createdAt: User_createdAt_operator
  email: User_email_operator
  id: User_id_operator
}

type usersDocAccess {
  fields: UsersDocAccessFields
  create: UsersCreateDocAccess
  read: UsersReadDocAccess
  update: UsersUpdateDocAccess
  delete: UsersDeleteDocAccess
  unlock: UsersUnlockDocAccess
}

type UsersDocAccessFields {
  updatedAt: UsersDocAccessFields_updatedAt
  createdAt: UsersDocAccessFields_createdAt
  email: UsersDocAccessFields_email
  password: UsersDocAccessFields_password
}

type UsersDocAccessFields_updatedAt {
  create: UsersDocAccessFields_updatedAt_Create
  read: UsersDocAccessFields_updatedAt_Read
  update: UsersDocAccessFields_updatedAt_Update
  delete: UsersDocAccessFields_updatedAt_Delete
}

type UsersDocAccessFields_updatedAt_Create {
  permission: Boolean!
}

type UsersDocAccessFields_updatedAt_Read {
  permission: Boolean!
}

type UsersDocAccessFields_updatedAt_Update {
  permission: Boolean!
}

type UsersDocAccessFields_updatedAt_Delete {
  permission: Boolean!
}

type UsersDocAccessFields_createdAt {
  create: UsersDocAccessFields_createdAt_Create
  read: UsersDocAccessFields_createdAt_Read
  update: UsersDocAccessFields_createdAt_Update
  delete: UsersDocAccessFields_createdAt_Delete
}

type UsersDocAccessFields_createdAt_Create {
  permission: Boolean!
}

type UsersDocAccessFields_createdAt_Read {
  permission: Boolean!
}

type UsersDocAccessFields_createdAt_Update {
  permission: Boolean!
}

type UsersDocAccessFields_createdAt_Delete {
  permission: Boolean!
}

type UsersDocAccessFields_email {
  create: UsersDocAccessFields_email_Create
  read: UsersDocAccessFields_email_Read
  update: UsersDocAccessFields_email_Update
  delete: UsersDocAccessFields_email_Delete
}

type UsersDocAccessFields_email_Create {
  permission: Boolean!
}

type UsersDocAccessFields_email_Read {
  permission: Boolean!
}

type UsersDocAccessFields_email_Update {
  permission: Boolean!
}

type UsersDocAccessFields_email_Delete {
  permission: Boolean!
}

type UsersDocAccessFields_password {
  create: UsersDocAccessFields_password_Create
  read: UsersDocAccessFields_password_Read
  update: UsersDocAccessFields_password_Update
  delete: UsersDocAccessFields_password_Delete
}

type UsersDocAccessFields_password_Create {
  permission: Boolean!
}

type UsersDocAccessFields_password_Read {
  permission: Boolean!
}

type UsersDocAccessFields_password_Update {
  permission: Boolean!
}

type UsersDocAccessFields_password_Delete {
  permission: Boolean!
}

type UsersCreateDocAccess {
  permission: Boolean!
  where: JSONObject
}

type UsersReadDocAccess {
  permission: Boolean!
  where: JSONObject
}

type UsersUpdateDocAccess {
  permission: Boolean!
  where: JSONObject
}

type UsersDeleteDocAccess {
  permission: Boolean!
  where: JSONObject
}

type UsersUnlockDocAccess {
  permission: Boolean!
  where: JSONObject
}

type usersMe {
  token: String
  user: User
  exp: Int
  collection: String
}

type Preference {
  key: String!
  value: JSON
  createdAt: DateTime!
  updatedAt: DateTime!
}

"""
The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
"""
scalar JSON

type Access {
  canAccessAdmin: Boolean!
  collection1: collection1Access
  collection2: collection2Access
  users: usersAccess
}

type collection1Access {
  fields: Collection1Fields
  create: Collection1CreateAccess
  read: Collection1ReadAccess
  update: Collection1UpdateAccess
  delete: Collection1DeleteAccess
}

type Collection1Fields {
  testing: Collection1Fields_testing
  title: Collection1Fields_title
  meta: Collection1Fields_meta
  blocks: Collection1Fields_blocks
  updatedAt: Collection1Fields_updatedAt
  createdAt: Collection1Fields_createdAt
}

type Collection1Fields_testing {
  create: Collection1Fields_testing_Create
  read: Collection1Fields_testing_Read
  update: Collection1Fields_testing_Update
  delete: Collection1Fields_testing_Delete
}

type Collection1Fields_testing_Create {
  permission: Boolean!
}

type Collection1Fields_testing_Read {
  permission: Boolean!
}

type Collection1Fields_testing_Update {
  permission: Boolean!
}

type Collection1Fields_testing_Delete {
  permission: Boolean!
}

type Collection1Fields_title {
  create: Collection1Fields_title_Create
  read: Collection1Fields_title_Read
  update: Collection1Fields_title_Update
  delete: Collection1Fields_title_Delete
}

type Collection1Fields_title_Create {
  permission: Boolean!
}

type Collection1Fields_title_Read {
  permission: Boolean!
}

type Collection1Fields_title_Update {
  permission: Boolean!
}

type Collection1Fields_title_Delete {
  permission: Boolean!
}

type Collection1Fields_meta {
  create: Collection1Fields_meta_Create
  read: Collection1Fields_meta_Read
  update: Collection1Fields_meta_Update
  delete: Collection1Fields_meta_Delete
  fields: Collection1Fields_meta_Fields
}

type Collection1Fields_meta_Create {
  permission: Boolean!
}

type Collection1Fields_meta_Read {
  permission: Boolean!
}

type Collection1Fields_meta_Update {
  permission: Boolean!
}

type Collection1Fields_meta_Delete {
  permission: Boolean!
}

type Collection1Fields_meta_Fields {
  title: Collection1Fields_meta_title
  description: Collection1Fields_meta_description
  id: Collection1Fields_meta_id
}

type Collection1Fields_meta_title {
  create: Collection1Fields_meta_title_Create
  read: Collection1Fields_meta_title_Read
  update: Collection1Fields_meta_title_Update
  delete: Collection1Fields_meta_title_Delete
}

type Collection1Fields_meta_title_Create {
  permission: Boolean!
}

type Collection1Fields_meta_title_Read {
  permission: Boolean!
}

type Collection1Fields_meta_title_Update {
  permission: Boolean!
}

type Collection1Fields_meta_title_Delete {
  permission: Boolean!
}

type Collection1Fields_meta_description {
  create: Collection1Fields_meta_description_Create
  read: Collection1Fields_meta_description_Read
  update: Collection1Fields_meta_description_Update
  delete: Collection1Fields_meta_description_Delete
}

type Collection1Fields_meta_description_Create {
  permission: Boolean!
}

type Collection1Fields_meta_description_Read {
  permission: Boolean!
}

type Collection1Fields_meta_description_Update {
  permission: Boolean!
}

type Collection1Fields_meta_description_Delete {
  permission: Boolean!
}

type Collection1Fields_meta_id {
  create: Collection1Fields_meta_id_Create
  read: Collection1Fields_meta_id_Read
  update: Collection1Fields_meta_id_Update
  delete: Collection1Fields_meta_id_Delete
}

type Collection1Fields_meta_id_Create {
  permission: Boolean!
}

type Collection1Fields_meta_id_Read {
  permission: Boolean!
}

type Collection1Fields_meta_id_Update {
  permission: Boolean!
}

type Collection1Fields_meta_id_Delete {
  permission: Boolean!
}

type Collection1Fields_blocks {
  create: Collection1Fields_blocks_Create
  read: Collection1Fields_blocks_Read
  update: Collection1Fields_blocks_Update
  delete: Collection1Fields_blocks_Delete
}

type Collection1Fields_blocks_Create {
  permission: Boolean!
}

type Collection1Fields_blocks_Read {
  permission: Boolean!
}

type Collection1Fields_blocks_Update {
  permission: Boolean!
}

type Collection1Fields_blocks_Delete {
  permission: Boolean!
}

type Collection1Fields_updatedAt {
  create: Collection1Fields_updatedAt_Create
  read: Collection1Fields_updatedAt_Read
  update: Collection1Fields_updatedAt_Update
  delete: Collection1Fields_updatedAt_Delete
}

type Collection1Fields_updatedAt_Create {
  permission: Boolean!
}

type Collection1Fields_updatedAt_Read {
  permission: Boolean!
}

type Collection1Fields_updatedAt_Update {
  permission: Boolean!
}

type Collection1Fields_updatedAt_Delete {
  permission: Boolean!
}

type Collection1Fields_createdAt {
  create: Collection1Fields_createdAt_Create
  read: Collection1Fields_createdAt_Read
  update: Collection1Fields_createdAt_Update
  delete: Collection1Fields_createdAt_Delete
}

type Collection1Fields_createdAt_Create {
  permission: Boolean!
}

type Collection1Fields_createdAt_Read {
  permission: Boolean!
}

type Collection1Fields_createdAt_Update {
  permission: Boolean!
}

type Collection1Fields_createdAt_Delete {
  permission: Boolean!
}

type Collection1CreateAccess {
  permission: Boolean!
  where: JSONObject
}

type Collection1ReadAccess {
  permission: Boolean!
  where: JSONObject
}

type Collection1UpdateAccess {
  permission: Boolean!
  where: JSONObject
}

type Collection1DeleteAccess {
  permission: Boolean!
  where: JSONObject
}

type collection2Access {
  fields: Collection2Fields
  create: Collection2CreateAccess
  read: Collection2ReadAccess
  update: Collection2UpdateAccess
  delete: Collection2DeleteAccess
}

type Collection2Fields {
  meta: Collection2Fields_meta
  nestedGroup: Collection2Fields_nestedGroup
  updatedAt: Collection2Fields_updatedAt
  createdAt: Collection2Fields_createdAt
}

type Collection2Fields_meta {
  create: Collection2Fields_meta_Create
  read: Collection2Fields_meta_Read
  update: Collection2Fields_meta_Update
  delete: Collection2Fields_meta_Delete
  fields: Collection2Fields_meta_Fields
}

type Collection2Fields_meta_Create {
  permission: Boolean!
}

type Collection2Fields_meta_Read {
  permission: Boolean!
}

type Collection2Fields_meta_Update {
  permission: Boolean!
}

type Collection2Fields_meta_Delete {
  permission: Boolean!
}

type Collection2Fields_meta_Fields {
  title: Collection2Fields_meta_title
  description: Collection2Fields_meta_description
}

type Collection2Fields_meta_title {
  create: Collection2Fields_meta_title_Create
  read: Collection2Fields_meta_title_Read
  update: Collection2Fields_meta_title_Update
  delete: Collection2Fields_meta_title_Delete
}

type Collection2Fields_meta_title_Create {
  permission: Boolean!
}

type Collection2Fields_meta_title_Read {
  permission: Boolean!
}

type Collection2Fields_meta_title_Update {
  permission: Boolean!
}

type Collection2Fields_meta_title_Delete {
  permission: Boolean!
}

type Collection2Fields_meta_description {
  create: Collection2Fields_meta_description_Create
  read: Collection2Fields_meta_description_Read
  update: Collection2Fields_meta_description_Update
  delete: Collection2Fields_meta_description_Delete
}

type Collection2Fields_meta_description_Create {
  permission: Boolean!
}

type Collection2Fields_meta_description_Read {
  permission: Boolean!
}

type Collection2Fields_meta_description_Update {
  permission: Boolean!
}

type Collection2Fields_meta_description_Delete {
  permission: Boolean!
}

type Collection2Fields_nestedGroup {
  create: Collection2Fields_nestedGroup_Create
  read: Collection2Fields_nestedGroup_Read
  update: Collection2Fields_nestedGroup_Update
  delete: Collection2Fields_nestedGroup_Delete
  fields: Collection2Fields_nestedGroup_Fields
}

type Collection2Fields_nestedGroup_Create {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_Read {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_Update {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_Delete {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_Fields {
  meta: Collection2Fields_nestedGroup_meta
}

type Collection2Fields_nestedGroup_meta {
  create: Collection2Fields_nestedGroup_meta_Create
  read: Collection2Fields_nestedGroup_meta_Read
  update: Collection2Fields_nestedGroup_meta_Update
  delete: Collection2Fields_nestedGroup_meta_Delete
  fields: Collection2Fields_nestedGroup_meta_Fields
}

type Collection2Fields_nestedGroup_meta_Create {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_meta_Read {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_meta_Update {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_meta_Delete {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_meta_Fields {
  title: Collection2Fields_nestedGroup_meta_title
  description: Collection2Fields_nestedGroup_meta_description
}

type Collection2Fields_nestedGroup_meta_title {
  create: Collection2Fields_nestedGroup_meta_title_Create
  read: Collection2Fields_nestedGroup_meta_title_Read
  update: Collection2Fields_nestedGroup_meta_title_Update
  delete: Collection2Fields_nestedGroup_meta_title_Delete
}

type Collection2Fields_nestedGroup_meta_title_Create {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_meta_title_Read {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_meta_title_Update {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_meta_title_Delete {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_meta_description {
  create: Collection2Fields_nestedGroup_meta_description_Create
  read: Collection2Fields_nestedGroup_meta_description_Read
  update: Collection2Fields_nestedGroup_meta_description_Update
  delete: Collection2Fields_nestedGroup_meta_description_Delete
}

type Collection2Fields_nestedGroup_meta_description_Create {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_meta_description_Read {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_meta_description_Update {
  permission: Boolean!
}

type Collection2Fields_nestedGroup_meta_description_Delete {
  permission: Boolean!
}

type Collection2Fields_updatedAt {
  create: Collection2Fields_updatedAt_Create
  read: Collection2Fields_updatedAt_Read
  update: Collection2Fields_updatedAt_Update
  delete: Collection2Fields_updatedAt_Delete
}

type Collection2Fields_updatedAt_Create {
  permission: Boolean!
}

type Collection2Fields_updatedAt_Read {
  permission: Boolean!
}

type Collection2Fields_updatedAt_Update {
  permission: Boolean!
}

type Collection2Fields_updatedAt_Delete {
  permission: Boolean!
}

type Collection2Fields_createdAt {
  create: Collection2Fields_createdAt_Create
  read: Collection2Fields_createdAt_Read
  update: Collection2Fields_createdAt_Update
  delete: Collection2Fields_createdAt_Delete
}

type Collection2Fields_createdAt_Create {
  permission: Boolean!
}

type Collection2Fields_createdAt_Read {
  permission: Boolean!
}

type Collection2Fields_createdAt_Update {
  permission: Boolean!
}

type Collection2Fields_createdAt_Delete {
  permission: Boolean!
}

type Collection2CreateAccess {
  permission: Boolean!
  where: JSONObject
}

type Collection2ReadAccess {
  permission: Boolean!
  where: JSONObject
}

type Collection2UpdateAccess {
  permission: Boolean!
  where: JSONObject
}

type Collection2DeleteAccess {
  permission: Boolean!
  where: JSONObject
}

type usersAccess {
  fields: UsersFields
  create: UsersCreateAccess
  read: UsersReadAccess
  update: UsersUpdateAccess
  delete: UsersDeleteAccess
  unlock: UsersUnlockAccess
}

type UsersFields {
  updatedAt: UsersFields_updatedAt
  createdAt: UsersFields_createdAt
  email: UsersFields_email
  password: UsersFields_password
}

type UsersFields_updatedAt {
  create: UsersFields_updatedAt_Create
  read: UsersFields_updatedAt_Read
  update: UsersFields_updatedAt_Update
  delete: UsersFields_updatedAt_Delete
}

type UsersFields_updatedAt_Create {
  permission: Boolean!
}

type UsersFields_updatedAt_Read {
  permission: Boolean!
}

type UsersFields_updatedAt_Update {
  permission: Boolean!
}

type UsersFields_updatedAt_Delete {
  permission: Boolean!
}

type UsersFields_createdAt {
  create: UsersFields_createdAt_Create
  read: UsersFields_createdAt_Read
  update: UsersFields_createdAt_Update
  delete: UsersFields_createdAt_Delete
}

type UsersFields_createdAt_Create {
  permission: Boolean!
}

type UsersFields_createdAt_Read {
  permission: Boolean!
}

type UsersFields_createdAt_Update {
  permission: Boolean!
}

type UsersFields_createdAt_Delete {
  permission: Boolean!
}

type UsersFields_email {
  create: UsersFields_email_Create
  read: UsersFields_email_Read
  update: UsersFields_email_Update
  delete: UsersFields_email_Delete
}

type UsersFields_email_Create {
  permission: Boolean!
}

type UsersFields_email_Read {
  permission: Boolean!
}

type UsersFields_email_Update {
  permission: Boolean!
}

type UsersFields_email_Delete {
  permission: Boolean!
}

type UsersFields_password {
  create: UsersFields_password_Create
  read: UsersFields_password_Read
  update: UsersFields_password_Update
  delete: UsersFields_password_Delete
}

type UsersFields_password_Create {
  permission: Boolean!
}

type UsersFields_password_Read {
  permission: Boolean!
}

type UsersFields_password_Update {
  permission: Boolean!
}

type UsersFields_password_Delete {
  permission: Boolean!
}

type UsersCreateAccess {
  permission: Boolean!
  where: JSONObject
}

type UsersReadAccess {
  permission: Boolean!
  where: JSONObject
}

type UsersUpdateAccess {
  permission: Boolean!
  where: JSONObject
}

type UsersDeleteAccess {
  permission: Boolean!
  where: JSONObject
}

type UsersUnlockAccess {
  permission: Boolean!
  where: JSONObject
}

type Mutation {
  createCollection1(data: mutationCollection1Input!, draft: Boolean): Collection1
  updateCollection1(id: String!, data: mutationCollection1UpdateInput!, draft: Boolean, autosave: Boolean): Collection1
  deleteCollection1(id: String!): Collection1
  createCollection2(data: mutationCollection2Input!, draft: Boolean): Collection2
  updateCollection2(id: String!, data: mutationCollection2UpdateInput!, draft: Boolean, autosave: Boolean): Collection2
  deleteCollection2(id: String!): Collection2
  createUser(data: mutationUserInput!, draft: Boolean): User
  updateUser(id: String!, data: mutationUserUpdateInput!, draft: Boolean, autosave: Boolean): User
  deleteUser(id: String!): User
  refreshTokenUser(token: String): usersRefreshedUser
  logoutUser: String
  unlockUser(email: String!): Boolean!
  loginUser(email: String, password: String): usersLoginResult
  forgotPasswordUser(email: String!, disableEmail: Boolean, expiration: Int): Boolean!
  resetPasswordUser(token: String, password: String): usersResetPassword
  verifyEmailUser(token: String): Boolean
  updatePreference(key: String!, value: JSON): Preference
  deletePreference(key: String!): Preference
}

input mutationCollection1Input {
  testing: String!
  title: String!
  meta: [mutationCollection1_MetaInput]
  blocks: JSON
  updatedAt: String
  createdAt: String
}

input mutationCollection1_MetaInput {
  title: String
  description: String
  id: String
}

input mutationCollection1UpdateInput {
  testing: String
  title: String
  meta: [mutationCollection1Update_MetaInput]
  blocks: JSON
  updatedAt: String
  createdAt: String
}

input mutationCollection1Update_MetaInput {
  title: String
  description: String
  id: String
}

input mutationCollection2Input {
  meta: mutationCollection2_MetaInput
  nestedGroup: mutationCollection2_NestedGroupInput
  updatedAt: String
  createdAt: String
}

input mutationCollection2_MetaInput {
  title: String
  description: String
}

input mutationCollection2_NestedGroupInput {
  meta: mutationCollection2_NestedGroup_MetaInput
}

input mutationCollection2_NestedGroup_MetaInput {
  title: String
  description: String
}

input mutationCollection2UpdateInput {
  meta: mutationCollection2Update_MetaInput
  nestedGroup: mutationCollection2Update_NestedGroupInput
  updatedAt: String
  createdAt: String
}

input mutationCollection2Update_MetaInput {
  title: String
  description: String
}

input mutationCollection2Update_NestedGroupInput {
  meta: mutationCollection2Update_NestedGroup_MetaInput
}

input mutationCollection2Update_NestedGroup_MetaInput {
  title: String
  description: String
}

input mutationUserInput {
  updatedAt: String
  createdAt: String
  email: String!
  resetPasswordToken: String
  resetPasswordExpiration: String
  salt: String
  hash: String
  loginAttempts: Float
  lockUntil: String
  password: String!
}

input mutationUserUpdateInput {
  updatedAt: String
  createdAt: String
  email: String
  resetPasswordToken: String
  resetPasswordExpiration: String
  salt: String
  hash: String
  loginAttempts: Float
  lockUntil: String
  password: String
}

type usersRefreshedUser {
  user: usersJWT
  refreshedToken: String
  exp: Int
}

type usersJWT {
  email: EmailAddress!
  collection: String!
}

type usersLoginResult {
  token: String
  user: User
  exp: Int
}

type usersResetPassword {
  token: String
  user: User
}