QM
query: Query
mutation: Mutation
}
 
"""
Custom error type interface
"""
message: String!
code: String!
}
 
id: ID!
type: FileType!
name: String!
bucket: String!
url: Url!
size: Int!
}
 
"""
Identity
"""
id: ID!
name: String!
isAccessible: Boolean!
}
 
"""
Reprezentace MyIdentity
"""
id: ID!
name: String!
isAccessible: Boolean!
systemAdmin: Boolean!
accessibleInstitutes: [InstituteAccess!]!
}
 
"""
Reprezentace UserHubIdentity
"""
id: ID!
institutes: [Institute!]!
systemAdmin: Boolean!
rootUser(
instituteId: ID! @resource(type: INSTITUTE)
): Boolean!
memberBoards(
instituteId: ID! @resource(type: INSTITUTE)
examCenters(
instituteId: ID! @resource(type: INSTITUTE)
): [ExamCenter!]
roles(
instituteId: ID! @resource(type: INSTITUTE)
): [Role!]!
permissions(
instituteId: ID! @resource(type: INSTITUTE)
modules(
instituteId: ID! @resource(type: INSTITUTE)
): [AppModule!]!
instituteAccess(
instituteId: ID! @resource(type: INSTITUTE)
}
 
"""
AddEmailTwoFactorMethodPayload
"""
success: Boolean!
}
 
"""
AddTotpTwoFactorMethodPayload
"""
provisioningUri: String!
}
 
"""
Reprezentace User
"""
id: ID!
institutes: [Institute!]!
systemAdmin: Boolean!
rootUser(
instituteId: ID! @resource(type: INSTITUTE)
): Boolean!
memberBoards(
instituteId: ID! @resource(type: INSTITUTE)
examCenters(
instituteId: ID! @resource(type: INSTITUTE)
): [ExamCenter!]
roles(
instituteId: ID! @resource(type: INSTITUTE)
): [Role!]!
permissions(
instituteId: ID! @resource(type: INSTITUTE)
modules(
instituteId: ID! @resource(type: INSTITUTE)
): [AppModule!]!
instituteAccess(
instituteId: ID! @resource(type: INSTITUTE)
name: String!
}
 
items(
sort: ApiTokenSort! = DEFAULT
sortDirection: SortDirection! = DESC
limit: Int! = 10 @intConstraint(min: 1, max: 100)
offset: Int! = 0 @intConstraint(min: 0)
): [ApiToken!]!
count: Int!
}
 
"""
ApiToken
"""
id: ID!
isAccessible: Boolean!
name: String!
}
 
"""
Reprezentace aplikace
"""
id: ID!
name: String!
bridgeUrl: String!
connected: Boolean!
connectedAt: DateTimeMs
modules: [AppModule!]!
}
 
"""
Describes user's access to application
"""
id: ID!
name: String!
modules: [ModuleAccess!]!
}
 
"""
Reprezentace modulu
"""
id: ID!
app: App!
slug: String!
name: String!
description: String!
autoAccessible: Boolean!
permissions: [AppPermission!]!
notifications: [AppNotification!]!
}
 
items(
sort: AppModuleSort! = DEFAULT
sortDirection: SortDirection! = DESC
limit: Int! = 10 @intConstraint(min: 1, max: 100)
offset: Int! = 0 @intConstraint(min: 0)
): [AppModule!]!
count: Int!
}
 
"""
Reprezentace notification
"""
id: ID!
slug: ID!
description: String!
}
 
"""
Reprezentace permission
"""
id: ID!
slug: ID!
description: String!
groupLabel: String
}
 
items(
sort: AppSort! = DEFAULT
sortDirection: SortDirection! = DESC
limit: Int! = 10 @intConstraint(min: 1, max: 100)
offset: Int! = 0 @intConstraint(min: 0)
): [App!]!
count: Int!
}
 
type AudioFile implements File {
id: ID!
type: FileType!
name: String!
bucket: String!
url: Url!
size: Int!
duration: Int!
}
 
"""
AuthenticatorSelectionCriteria
"""
userVerification: String!
residentKey: String
}
 
"""
Cannot modify admin user
"""
message: String!
code: String!
}
 
"""
Cannot remove autoAccessible module exception
"""
message: String!
code: String!
}
 
"""
Cannot remove root user from institute
"""
message: String!
code: String!
}
 
"""
ConfirmTotpTwoFactorMethodPayload
"""
success: Boolean!
}
 
"""
ConfirmWebAuthnCredentialPayload
"""
success: Boolean!
}
 
"""
CreateApiTokenPayload
"""
id: String!
name: String!
accessToken: String!
secretToken: String!
}
 
"""
Create app payload
"""
result: App!
}
 
"""
Create exam center payload
"""
result: ExamCenter!
}
 
"""
Create institute payload
"""
result: Institute!
}
 
"""
Create member board payload
"""
result: MemberBoard!
}
 
"""
Create role payload
"""
result: Role!
}
 
"""
Delete exam center payload
"""
success: Boolean!
}
 
"""
DeleteIdentityPayload
"""
success: Boolean!
}
 
"""
Delete member board payload
"""
success: Boolean!
}
 
"""
Delete role payload
"""
success: Boolean!
}
 
"""
DeleteTwoFactorMethodResultPayload
"""
success: Boolean!
}
 
"""
Delete user invitation payload
"""
success: Boolean!
}
 
"""
DeleteWebauthnCredentialResultPayload
"""
success: Boolean!
}
 
"""
DisableWebAuthnResultPayload
"""
success: Boolean!
}
 
type DocumentFile implements File {
id: ID!
type: FileType!
name: String!
bucket: String!
url: Url!
size: Int!
}
 
"""
EnabledTwoFactorMethod
"""
id: ID!
}
 
"""
Reprezentace exam center
"""
id: ID!
name: String!
contactEmail: EmailAddress
}
 
"""
ExamCenter was not found in institute exception
"""
message: String!
code: String!
}
 
items(
sort: ExamCenterSort! = DEFAULT
sortDirection: SortDirection! = DESC
limit: Int! = 10 @intConstraint(min: 1, max: 100)
offset: Int! = 0 @intConstraint(min: 0)
): [ExamCenter!]!
count: Int!
}
 
"""
ExamCenter
"""
id: ID!
name: String!
contactEmail: EmailAddress
instituteId: ID!
memberBoardId: ID!
isAccessible: Boolean!
}
 
"""
Fetch app permissions payload
"""
success: Boolean!
}
 
"""
Reprezentace url pro upload souboru
"""
url: String!
}
 
type ImageFile implements File {
id: ID!
type: FileType!
name: String!
bucket: String!
url: Url!
size: Int!
width: Int!
height: Int!
}
 
"""
Reprezentace institutu
"""
id: ID!
name: String!
modules: [AppModule!]!
logo: File
}
 
"""
Describes user's access to institute
"""
id: ID!
name: String!
accessibleApps: [AppAccess!]!
isRootUser: Boolean!
}
 
"""
Describes user's data scope within an institute
"""
memberBoardIds: [String!]
examCenterIds: [String!]
}
 
items(
sort: InstituteSort! = DEFAULT
sortDirection: SortDirection! = DESC
limit: Int! = 10 @intConstraint(min: 1, max: 100)
offset: Int! = 0 @intConstraint(min: 0)
): [Institute!]!
count: Int!
}
 
"""
Institute
"""
id: ID!
name: String!
logoFileUrl: Url
isAccessible: Boolean!
}
 
message: String!
code: String!
}
 
"""
Invalid country code provided exception.
"""
message: String!
code: String!
}
 
"""
Invalid credentials exception
"""
message: String!
code: String!
}
 
message: String!
code: String!
}
 
"""
Old password is invalid exception
"""
message: String!
code: String!
}
 
"""
Invalid TOTP config exception
"""
message: String!
code: String!
}
 
"""
InviteUserPayload
"""
success: Boolean!
}
 
"""
Reprezentace member boardu
"""
id: ID!
name: String!
contactEmail: EmailAddress
logo: File
examCenters: ExamCenterSelection!
}
 
"""
MemberBoard was not found in institute exception
"""
message: String!
code: String!
}
 
items(
sort: MemberBoardSort! = DEFAULT
sortDirection: SortDirection! = DESC
limit: Int! = 10 @intConstraint(min: 1, max: 100)
offset: Int! = 0 @intConstraint(min: 0)
): [MemberBoard!]!
count: Int!
}
 
"""
Member Board
"""
id: ID!
name: String!
contactEmail: EmailAddress
instituteId: ID!
logoFileUrl: Url
isAccessible: Boolean!
}
 
"""
Describes user's access to module
"""
id: ID!
name: String!
permissions: [String!]!
}
 
"""
Module was not found in institute exception
"""
message: String!
code: String!
}
 
"""
Root type pro mutation operaci
"""
"App management"
createApp(
 
updateApp(
id: ID! @resource(type: APP)
fetchAppPermissions(
id: ID! @resource(type: APP)
 
"Role management"
createRole(
 
createInstituteRole(
updateRole(
id: ID! @resource(type: ROLE)
updateInstituteRole(
id: ID! @resource(type: ROLE) @authResource(module: DEFAULT, permission: UPDATE_ROLE)
deleteRole(
id: ID! @resource(type: ROLE)
deleteInstituteRole(
id: ID! @resource(type: ROLE) @authResource(module: DEFAULT, permission: DELETE_ROLE)
 
"Institute management"
createInstitute(
 
updateInstitute(
id: ID! @resource(type: INSTITUTE)
 
"Member board management"
createMemberBoard(
 
updateMemberBoard(
id: ID! @resource(type: MEMBER_BOARD) @authResource(module: DEFAULT, permission: UPDATE_MEMBER_BOARD)
deleteMemberBoard(
id: ID! @resource(type: MEMBER_BOARD) @authResource(module: DEFAULT, permission: DELETE_MEMBER_BOARD)
 
"Exam center management"
createExamCenter(
 
updateExamCenter(
id: ID! @resource(type: EXAM_CENTER) @authResource(module: DEFAULT, permission: UPDATE_EXAM_CENTER)
deleteExamCenter(
id: ID! @resource(type: EXAM_CENTER) @authResource(module: DEFAULT, permission: DELETE_EXAM_CENTER)
 
"Api Token management"
createApiToken(
 
rotateApiToken(
 
"User management"
inviteUser(
 
deleteUserInvitation(
id: ID! @resource(type: USER_INVITATION) @authResource(module: DEFAULT, permission: DELETE_USER_INVITATION)
removeUserFromInstitute(
deleteIdentity(
id: ID! @resource(type: USER)
setUserRoles(
setUserPermissions(
setUserModules(
setUserExamCenters(
setUserMemberBoards(
updateUser(
 
"Profile management"
updateProfile(
 
updatePassword(
setUserNotifications(
addEmailTwoFactorMethod: AddEmailTwoFactorMethodResult! @loggedIn
addTotpTwoFactorMethod(
input: AddTotpTwoFactorMethodInput! = {forceRecreate:false}
confirmTotpTwoFactorMethod(
setPreferredTwoFactorMethod(
deleteTwoFactorMethod(
id: ID! @resource(type: ENABLED_TWO_FACTOR_METHOD)
 
"WebAuthn credential management"
addWebAuthnCredential: AddWebAuthnCredentialResult! @loggedIn
 
confirmWebAuthnCredential(
deleteWebAuthnCredential(
id: ID!
}
 
"""
Authenticated api token
"""
id: ID!
isAccessible: Boolean!
systemAdmin: Boolean!
accessibleInstitutes: [InstituteAccess!]!
name: String!
}
 
"""
Authenticated user
"""
id: ID!
isAccessible: Boolean!
systemAdmin: Boolean!
accessibleInstitutes: [InstituteAccess!]!
name: String!
firstName: String!
lastName: String!
email: EmailAddress!
language: Language!
}
 
"""
REsource with given name already exists exception
"""
message: String!
code: String!
}
 
"""
NoChangePayload
"""
success: Boolean!
}
 
"""
Password do not match exception
"""
message: String!
code: String!
}
 
type PdfFile implements File {
id: ID!
type: FileType!
name: String!
bucket: String!
url: Url!
size: Int!
}
 
"""
PublicKeyCredentialCreationOptions
"""
challenge: String!
timeout: Int!
pubKeyCredParams: [PublicKeyCredentialParameters!]!
authenticatorSelection: AuthenticatorSelectionCriteria
attestation: String
excludeCredentials: [PublicKeyCredentialDescriptor!]!
}
 
"""
PublicKeyCredentialDescriptor
"""
id: String!
type: String!
transports: [String!]!
}
 
"""
PublicKeyCredentialParameters
"""
type: String!
alg: Int!
}
 
"""
PublicKeyCredentialRpEntity
"""
id: String!
name: String!
}
 
"""
PublicKeyCredentialUserEntity
"""
id: String!
name: String!
displayName: String!
}
 
"""
Root type pro query operaci
"""
"Get information about current identity."
 
identities(
filter: IdentityFilter! = {}
users(
filter: IdentityFilter! = {}
apiTokens(
filter: IdentityFilter! = {}
identity(
id: ID! @resource(type: IDENTITY)
user(
id: ID! @resource(type: USER)
apiToken(
id: ID! @resource(type: API_TOKEN)
institute(
id: ID! @resource(type: INSTITUTE)
app(
id: ID! @resource(type: APP)
module(
id: ID! @resource(type: MODULE)
memberBoard(
id: ID! @resource(type: MEMBER_BOARD)
memberBoards(
filter: MemberBoardFilter! = {}
examCenter(
id: ID! @resource(type: EXAM_CENTER)
examCenters(
filter: ExamCenterFilter! = {}
role(
id: ID! @resource(type: ROLE)
roles(
filter: RoleFilter
userInvitations(
filter: UserInvitationFilter! = {}
userInvitation(
id: ID! @resource(type: USER_INVITATION)
}
 
"""
Remove user from exam center payload
"""
success: Boolean!
}
 
"""
Reprezentace role
"""
id: ID!
name: String!
global: Boolean!
permissions: [AppPermission!]!
}
 
"""
Role was not found in institute exception
"""
message: String!
code: String!
}
 
items(
sort: RoleSort! = DEFAULT
sortDirection: SortDirection! = DESC
limit: Int! = 10 @intConstraint(min: 1, max: 100)
offset: Int! = 0 @intConstraint(min: 0)
): [Role!]!
count: Int!
}
 
"""
RotateApiTokenPayload
"""
id: String!
name: String!
accessToken: String!
secretToken: String!
}
 
"""
SetPreferredTwoFactorMethodPayload
"""
success: Boolean!
}
 
"""
SetUserExamCentersPayload
"""
success: Boolean!
}
 
"""
SetUserMemberBoardsPayload
"""
success: Boolean!
}
 
"""
SetUserModulesPayload
"""
success: Boolean!
}
 
"""
SetUserNotificationsPayload
"""
success: Boolean!
}
 
"""
SetUserPermissionsPayload
"""
success: Boolean!
}
 
"""
SetUserRolesPayload
"""
success: Boolean!
}
 
"""
Resource with given slug already exists exception
"""
message: String!
code: String!
}
 
"""
Two factor method not enabled
"""
message: String!
code: String!
}
 
message: String!
code: String!
}
 
"""
Unauthorize to set data scope
"""
message: String!
code: String!
}
 
"""
Unauthorize to set roles and permissions
"""
message: String!
code: String!
}
 
message: String!
code: String!
}
 
"""
Update app payload
"""
result: App!
}
 
"""
Update exam center payload
"""
result: ExamCenter!
}
 
"""
Update institute payload
"""
result: Institute!
}
 
"""
Update member board payload
"""
result: MemberBoard!
}
 
"""
UpdatePasswordPayload
"""
success: Boolean!
}
 
"""
UpdateProfilePayload
"""
success: Boolean!
}
 
"""
Update role payload
"""
result: Role!
}
 
"""
UpdateUserPayload
"""
success: Boolean!
}
 
type UrlFile implements File {
id: ID!
type: FileType!
name: String!
bucket: String!
url: Url!
size: Int!
}
 
"""
Reprezentace User
"""
type User implements UserHubIdentity {
id: ID!
institutes: [Institute!]!
systemAdmin: Boolean!
rootUser(
instituteId: ID! @resource(type: INSTITUTE)
): Boolean!
memberBoards(
instituteId: ID! @resource(type: INSTITUTE)
examCenters(
instituteId: ID! @resource(type: INSTITUTE)
): [ExamCenter!]
roles(
instituteId: ID! @resource(type: INSTITUTE)
): [Role!]!
permissions(
instituteId: ID! @resource(type: INSTITUTE)
modules(
instituteId: ID! @resource(type: INSTITUTE)
): [AppModule!]!
instituteAccess(
instituteId: ID! @resource(type: INSTITUTE)
firstName: String!
lastName: String!
email: EmailAddress!
language: Language!
preferredTwoFactorMethod: TwoFactorMethod
enabledTwoFactorMethods: [EnabledTwoFactorMethod!]!
webAuthnCredentials: [WebauthnCredential!]!
notifications(
instituteId: ID! @resource(type: INSTITUTE)
}
 
"""
User is already a member of this institute exception
"""
message: String!
code: String!
}
 
items(
sort: IdentitySort! = DEFAULT
sortDirection: SortDirection! = DESC
limit: Int! = 10 @intConstraint(min: 1, max: 100)
offset: Int! = 0 @intConstraint(min: 0)
count: Int!
}
 
"""
Reprezentace user invitation
"""
id: ID!
email: EmailAddress!
author: IdentityView!
institute: Institute!
memberBoards: MemberBoardSelection
examCenters: ExamCenterSelection
roles: RoleSelection!
permissions: [AppPermission!]!
createdAt: DateTimeMs!
}
 
items(
sort: UserInvitationSort! = DEFAULT
sortDirection: SortDirection! = DESC
limit: Int! = 10 @intConstraint(min: 1, max: 100)
offset: Int! = 0 @intConstraint(min: 0)
count: Int!
}
 
"""
User was not found in institute exception
"""
message: String!
code: String!
}
 
items(
sort: UserSort! = DEFAULT
sortDirection: SortDirection! = DESC
limit: Int! = 10 @intConstraint(min: 1, max: 100)
offset: Int! = 0 @intConstraint(min: 0)
): [User!]!
count: Int!
}
 
"""
User
"""
id: ID!
isAccessible: Boolean!
name: String!
firstName: String!
lastName: String!
email: EmailAddress!
}
 
"""
Reprezentace file
"""
result: File!
}
 
type VideoFile implements File {
id: ID!
type: FileType!
name: String!
bucket: String!
url: Url!
size: Int!
width: Int!
height: Int!
duration: Int!
}
 
"""
WebauthnCredential
"""
id: ID!
name: String!
lastUsedAt: DateTimeMs!
registeredAt: DateTimeMs!
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
"""
AddTotpTwoFactorMethodInput
"""
forceRecreate: Boolean! = false
}
 
"""
AttestationResponseInput
"""
clientDataJSON: String!
attestationObject: String!
authenticatorData: String = null
transports: [String] = null
publicKey: String = null
publicKeyAlgorithm: Int = null
}
 
"""
ClientExtensionResultsInput
"""
appid: Boolean = null
credProps: CredentialPropertiesOutputInput = null
hmacCreateSecret: Boolean = null
}
 
"""
SetTwoFactorInput
"""
otp: String!
}
 
"""
ConfirmWebAuthnCredentialInput
"""
id: String!
name: String! @stringConstraint(minLength: 1, maxLength: 30)
authenticatorAttachment: String = null
type: String!
rawId: String!
}
 
"""
Input pro přidání ApiToken
"""
name: String! @stringConstraint(minLength: 1, maxLength: 200)
instituteId: ID! @resource(type: INSTITUTE) @authResource(module: DEFAULT, permission: CREATE_API_TOKEN)
examCenterIds: [ID!] @listConstraint(unique: true) @resource(type: EXAM_CENTER)
memberBoardIds: [ID!] @listConstraint(unique: true) @resource(type: MEMBER_BOARD)
permissionIds: [ID!] @optional @listConstraint(unique: true) @resource(type: PERMISSION)
roleIds: [ID!] @optional @listConstraint(unique: true) @resource(type: ROLE)
moduleIds: [ID!] @optional @listConstraint(unique: true) @resource(type: MODULE)
}
 
"""
Input pro přidání aplikace
"""
name: String! @stringConstraint(minLength: 1, maxLength: 30)
slug: String! @stringConstraint(minLength: 1, maxLength: 30)
bridgeUrl: String! @stringConstraint(minLength: 1, maxLength: 200)
}
 
"""
Input pro pridani exam center
"""
name: String! @stringConstraint(minLength: 1, maxLength: 30)
memberBoardId: ID! @resource(type: MEMBER_BOARD) @authResource(module: DEFAULT, permission: CREATE_EXAM_CENTER)
contactEmail: EmailAddress = null
}
 
"""
Input pro přidání institutu
"""
name: String! @stringConstraint(minLength: 1, maxLength: 30)
slug: String! @stringConstraint(minLength: 1, maxLength: 30)
moduleIds: [ID!]! @listConstraint(unique: true) @resource(type: MODULE)
rootUserEmail: EmailAddress!
logoFileId: ID = null @resource(type: FILE)
}
 
"""
Input pro pridani role s institutem
"""
name: String! @stringConstraint(minLength: 1, maxLength: 30)
permissions: [ID!] @listConstraint(unique: true) @resource(type: PERMISSION)
instituteId: ID! @resource(type: INSTITUTE) @authResource(module: DEFAULT, permission: CREATE_ROLE)
}
 
"""
Input pro pridani member boardu
"""
name: String! @stringConstraint(minLength: 1, maxLength: 30)
instituteId: ID! @resource(type: INSTITUTE) @authResource(module: DEFAULT, permission: CREATE_MEMBER_BOARD)
contactEmail: EmailAddress = null
logoFileId: ID = null @resource(type: FILE)
}
 
"""
Input pro pridani role bez institutu
"""
name: String! @stringConstraint(minLength: 1, maxLength: 30)
permissions: [ID!] @listConstraint(unique: true) @resource(type: PERMISSION)
}
 
"""
CredentialPropertiesOutputInput
"""
rk: Boolean = null
}
 
"""
Filter exam center
"""
instituteId: ID @optional @resource(type: INSTITUTE)
memberBoardId: ID @optional @resource(type: MEMBER_BOARD)
}
 
"""
File generate url input
"""
bucket: Bucket!
}
 
"""
Filter identity
"""
instituteId: ID @resource(type: INSTITUTE) @optional
}
 
"""
Input pro přidání User
"""
email: EmailAddress!
instituteId: ID! @resource(type: INSTITUTE) @authResource(module: DEFAULT, permission: INVITE_USER)
examCenterIds: [ID!] @listConstraint(unique: true) @resource(type: EXAM_CENTER)
memberBoardIds: [ID!] @listConstraint(unique: true) @resource(type: MEMBER_BOARD)
permissionIds: [ID!] @optional @listConstraint(unique: true) @resource(type: PERMISSION)
roleIds: [ID!] @optional @listConstraint(unique: true) @resource(type: ROLE)
moduleIds: [ID!] @optional @listConstraint(unique: true) @resource(type: MODULE)
}
 
minItems: Int = null @intConstraint(min: 0)
maxItems: Int = null @intConstraint(min: 0)
unique: Boolean! = false
innerList: ListConstraintInput = null
}
 
"""
Filter meber boardu
"""
instituteId: ID @resource(type: INSTITUTE) @optional
}
 
count: Int! @intConstraint(min: 1)
from: [String!]! @listConstraint(minItems: 1)
}
 
"""
Input pro smazani usera z institutu
"""
userId: ID! @resource(type: USER)
instituteId: ID! @resource(type: INSTITUTE) @authResource(module: DEFAULT, permission: REMOVE_USER_FROM_INSTITUTE)
}
 
"""
Filter na role
"""
instituteId: ID @resource(type: INSTITUTE)
}
 
"""
Input pro rotaci API tokenu
"""
tokenId: ID! @resource(type: API_TOKEN)
instituteId: ID! @resource(type: INSTITUTE) @authResource(module: DEFAULT, permission: ROTATE_API_TOKEN)
}
 
"""
SetPreferredTwoFactorMethodInput
"""
preferredTwoFactorMethod: TwoFactorMethod!
}
 
"""
Input pro pridani usera do exam center
"""
userId: ID! @resource(type: USER)
instituteId: ID! @resource(type: INSTITUTE) @authResource(module: DEFAULT, permission: SET_DATA_SCOPE)
examCenterIds: [ID!] @listConstraint(unique: true) @resource(type: EXAM_CENTER)
}
 
"""
Input pro pridani usera do member boardu
"""
userId: ID! @resource(type: USER)
instituteId: ID! @resource(type: INSTITUTE) @authResource(module: DEFAULT, permission: SET_DATA_SCOPE)
memberBoardIds: [ID!] @listConstraint(unique: true) @resource(type: MEMBER_BOARD)
}
 
"""
Input pro pridani usera do app
"""
userId: ID! @resource(type: USER)
instituteId: ID! @resource(type: INSTITUTE) @authResource(module: DEFAULT, permission: SET_ROLES_AND_PERMISSIONS)
moduleIds: [ID!]! @listConstraint(unique: true) @resource(type: MODULE)
}
 
"""
Input pro pridani usera do exam center
"""
instituteId: ID! @resource(type: INSTITUTE)
notificationIds: [ID!]! @listConstraint(unique: true) @resource(type: NOTIFICATION)
}
 
"""
Input pro pridani usera do exam center
"""
userId: ID! @resource(type: USER)
instituteId: ID! @resource(type: INSTITUTE) @authResource(module: DEFAULT, permission: SET_ROLES_AND_PERMISSIONS)
permissionIds: [ID!]! @listConstraint(unique: true) @resource(type: PERMISSION)
}
 
"""
Input pro pridani usera do exam center
"""
userId: ID! @resource(type: USER)
instituteId: ID! @resource(type: INSTITUTE) @authResource(module: DEFAULT, permission: SET_ROLES_AND_PERMISSIONS)
roleIds: [ID!]! @listConstraint(unique: true) @resource(type: ROLE)
}
 
"""
Input pro update aplikace
"""
name: String! @stringConstraint(minLength: 1, maxLength: 30)
bridgeUrl: String! @stringConstraint(minLength: 1, maxLength: 200)
}
 
"""
Input pro update exam center
"""
name: String! @stringConstraint(minLength: 1, maxLength: 30)
contactEmail: EmailAddress
}
 
"""
Input pro update institutu
"""
name: String @optional @stringConstraint(minLength: 1, maxLength: 30)
moduleIds: [ID!] @optional @listConstraint(unique: true) @resource(type: MODULE)
logoFileId: ID @resource(type: FILE)
}
 
"""
Input pro update member boardu
"""
name: String! @stringConstraint(minLength: 1, maxLength: 30)
contactEmail: EmailAddress
logoFileId: ID @resource(type: FILE)
}
 
"""
Inpot pro update hesla
"""
oldPassword: String!
newPassword: String! @stringConstraint(minLength: 8, regex: "/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*_\\-\\.]).{0,}$/")
newPasswordConfirmation: String! @stringConstraint(minLength: 8, regex: "/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*_\\-\\.]).{0,}$/")
}
 
"""
Input pro update usera
"""
firstName: String @optional @stringConstraint(minLength: 1, maxLength: 200)
lastName: String @optional @stringConstraint(minLength: 1, maxLength: 200)
language: Language @optional
}
 
"""
Input pro update role
"""
name: String! @stringConstraint(minLength: 1, maxLength: 30)
permissions: [ID!] @listConstraint(unique: true) @resource(type: PERMISSION)
}
 
"""
Input pro update Usera
"""
userId: ID! @resource(type: USER)
instituteId: ID! @resource(type: INSTITUTE) @authResource(module: DEFAULT, permission: UPDATE_USER)
examCenterIds: [ID!] @listConstraint(unique: true) @resource(type: EXAM_CENTER)
memberBoardIds: [ID!] @listConstraint(unique: true) @resource(type: MEMBER_BOARD)
permissionIds: [ID!] @optional @listConstraint(unique: true) @resource(type: PERMISSION)
roleIds: [ID!] @optional @listConstraint(unique: true) @resource(type: ROLE)
moduleIds: [ID!] @optional @listConstraint(unique: true) @resource(type: MODULE)
}
 
"""
Filter user invitation
"""
instituteId: ID @optional @resource(type: INSTITUTE)
email: String @optional
}
 
"""
File upload validation input
"""
fileUrl: Url!
name: String! @stringConstraint(minLength: 1, maxLength: 200)
}
 
"""
DateTimeMs type - string which contains valid date in ISO8601 format.
"""
scalar DateTimeMs @specifiedBy(url: "https://datatracker.ietf.org/doc/html/rfc3339#section-5.6")
 
"""
EmailAddress type - string which contains valid email address.
"""
scalar EmailAddress @specifiedBy(url: "https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1")
 
"""
Json type - string which contains valid JSON.
"""
scalar Json @specifiedBy(url: "https://datatracker.ietf.org/doc/html/rfc7159")
 
"""
Url type - string which contains valid URL (Uniform Resource Locator).
"""
scalar Url @specifiedBy(url: "https://datatracker.ietf.org/doc/html/rfc3986")
 
"""
Řazení api token
"""
DEFAULT
}
 
"""
Řazení uživatele
"""
DEFAULT
}
 
"""
Řazení uživatele
"""
DEFAULT
}
 
"""
Aws buckets supported by this application
"""
default
}
 
"""
Razeni exam center
"""
DEFAULT
}
 
"""
Type of file
"""
IMAGE
AUDIO
VIDEO
PDF
URL
DOCUMENT
}
 
"""
Řazení identity
"""
DEFAULT
}
 
"""
Řazení uživatele
"""
DEFAULT
}
 
"""
Supported languages
"""
EN
DE
ES
FR
IT
PL
}
 
"""
Razeni member boardu
"""
DEFAULT
}
 
"""
Modules supported by this application
"""
DEFAULT
}
 
"""
Permissions supported by this application
"""
INVITE_USER
DELETE_USER_INVITATION
REMOVE_USER_FROM_INSTITUTE
SET_ROLES_AND_PERMISSIONS
UPDATE_USER
SET_DATA_SCOPE
CREATE_API_TOKEN
ROTATE_API_TOKEN
CREATE_MEMBER_BOARD
UPDATE_MEMBER_BOARD
DELETE_MEMBER_BOARD
CREATE_EXAM_CENTER
UPDATE_EXAM_CENTER
DELETE_EXAM_CENTER
CREATE_ROLE
UPDATE_ROLE
DELETE_ROLE
}
 
"""
Typ entity
"""
APP
MODULE
PERMISSION
NOTIFICATION
ROLE
INSTITUTE
USER
API_TOKEN
IDENTITY
USER_INVITATION
MEMBER_BOARD
EXAM_CENTER
ENABLED_TWO_FACTOR_METHOD
FILE
}
 
"""
Razeni roli
"""
DEFAULT
}
 
"""
Sorting direction
"""
ASC
DESC
}
 
"""
Methods of 2FA
"""
EMAIL
TOTP
}
 
"""
Razeni user invitation
"""
DEFAULT
}
 
"""
Řazení uživatele
"""
DEFAULT
}
 
"""
Only system admin can perform this action.
"""
directive @admin on FIELD_DEFINITION
 
"""
Only user with given permission can perform this action.
"""
module: Module!
permission: Permission
) on FIELD_DEFINITION
 
"""
Only user with given permission can perform this action.
"""
module: Module!
permission: Permission
) repeatable on ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
 
"""
Graphpinator floatConstraint directive.
"""
min: Float
max: Float
oneOf: [Float!] @listConstraint(minItems: 1)
) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | VARIABLE_DEFINITION
 
"""
Graphpinator intConstraint directive.
"""
min: Int
max: Int
oneOf: [Int!] @listConstraint(minItems: 1)
) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | VARIABLE_DEFINITION
 
"""
Graphpinator listConstraint directive.
"""
minItems: Int = null @intConstraint(min: 0)
maxItems: Int = null @intConstraint(min: 0)
unique: Boolean! = false
innerList: ListConstraintInput = null
) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | VARIABLE_DEFINITION
 
"""
Only logged in user can perform this action.
"""
directive @loggedIn on FIELD_DEFINITION
 
"""
Graphpinator objectConstraint directive.
"""
atLeastOne: [String!] @listConstraint(minItems: 1)
atMostOne: [String!] @listConstraint(minItems: 1)
exactlyOne: [String!] @listConstraint(minItems: 1)
) repeatable on OBJECT | INTERFACE | INPUT_OBJECT
 
"""
Input value for this argument can be either omitted or have non-null value.
"""
directive @optional on ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
 
type: ResourceType!
) on ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
 
"""
Only root user can perform this action.
"""
directive @root on FIELD_DEFINITION
 
"""
Graphpinator stringConstraint directive.
"""
minLength: Int @intConstraint(min: 0)
maxLength: Int @intConstraint(min: 0)
regex: String
oneOf: [String!] @listConstraint(minItems: 1)
) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION | VARIABLE_DEFINITION