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!
institute(
id: ID! @resource(type: INSTITUTE)
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!
institute(
id: ID! @resource(type: INSTITUTE)
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(
): CreateRoleResult! @auth(module: DEFAULT, permission: CREATE_ROLE)
updateRole(
id: ID! @resource(type: ROLE)
updateInstituteRole(
id: ID! @resource(type: ROLE) @authResource(module: DEFAULT, permission: UPDATE_ROLE)
): UpdateRoleResult! @auth(module: DEFAULT, permission: UPDATE_ROLE)
deleteRole(
id: ID! @resource(type: ROLE)
deleteInstituteRole(
id: ID! @resource(type: ROLE) @authResource(module: DEFAULT, permission: DELETE_ROLE)
): DeleteRoleResult! @auth(module: DEFAULT, permission: DELETE_ROLE)
 
"Institute management"
createInstitute(
 
updateInstitute(
id: ID! @resource(type: INSTITUTE)
 
"Member board management"
createMemberBoard(
): CreateMemberBoardResult! @auth(module: DEFAULT, permission: CREATE_MEMBER_BOARD)
 
updateMemberBoard(
id: ID! @resource(type: MEMBER_BOARD) @authResource(module: DEFAULT, permission: UPDATE_MEMBER_BOARD)
): UpdateMemberBoardResult! @auth(module: DEFAULT, permission: UPDATE_MEMBER_BOARD)
deleteMemberBoard(
id: ID! @resource(type: MEMBER_BOARD) @authResource(module: DEFAULT, permission: DELETE_MEMBER_BOARD)
): DeleteMemberBoardResult! @auth(module: DEFAULT, permission: DELETE_MEMBER_BOARD)
 
"Exam center management"
createExamCenter(
): CreateExamCenterResult! @auth(module: DEFAULT, permission: CREATE_EXAM_CENTER)
 
updateExamCenter(
id: ID! @resource(type: EXAM_CENTER) @authResource(module: DEFAULT, permission: UPDATE_EXAM_CENTER)
): UpdateExamCenterResult! @auth(module: DEFAULT, permission: UPDATE_EXAM_CENTER)
deleteExamCenter(
id: ID! @resource(type: EXAM_CENTER) @authResource(module: DEFAULT, permission: DELETE_EXAM_CENTER)
): DeleteExamCenterResult! @auth(module: DEFAULT, permission: DELETE_EXAM_CENTER)
 
"Api Token management"
createApiToken(
): CreateApiTokenResult! @auth(module: DEFAULT, permission: CREATE_API_TOKEN)
 
rotateApiToken(
): RotateApiTokenResult! @auth(module: DEFAULT, permission: ROTATE_API_TOKEN)
 
"User management"
inviteUser(
): InviteUserResult! @auth(module: DEFAULT, permission: INVITE_USER)
 
deleteUserInvitation(
id: ID! @resource(type: USER_INVITATION) @authResource(module: DEFAULT, permission: DELETE_USER_INVITATION)
): DeleteUserInvitationResult! @auth(module: DEFAULT, permission: DELETE_USER_INVITATION)
removeUserFromInstitute(
): RemoveUserFromInstituteResult! @auth(module: DEFAULT, permission: REMOVE_USER_FROM_INSTITUTE)
deleteIdentity(
id: ID! @resource(type: USER)
setUserRoles(
): SetUserRolesResult! @auth(module: DEFAULT, permission: SET_ROLES_AND_PERMISSIONS)
setUserPermissions(
): SetUserPermissionsResult! @auth(module: DEFAULT, permission: SET_ROLES_AND_PERMISSIONS)
setUserModules(
): SetUserModulesResult! @auth(module: DEFAULT, permission: SET_ROLES_AND_PERMISSIONS)
setUserExamCenters(
): SetUserExamCentersResult! @auth(module: DEFAULT, permission: SET_DATA_SCOPE)
setUserMemberBoards(
): SetUserMemberBoardsResult! @auth(module: DEFAULT, permission: SET_DATA_SCOPE)
updateUser(
): UpdateUserResult! @auth(module: DEFAULT, permission: UPDATE_USER)
 
"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!
validateFile(
}
 
"""
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."
 
myIdentity: UserHubIdentity! @loggedIn
identities(
filter: IdentityFilter! = {}
): UserHubIdentitySelection! @auth(module: DEFAULT)
users(
filter: IdentityFilter! = {}
): UserSelection! @auth(module: DEFAULT)
apiTokens(
filter: IdentityFilter! = {}
): ApiTokenSelection! @auth(module: DEFAULT)
identity(
id: ID! @resource(type: IDENTITY)
): UserHubIdentity! @auth(module: DEFAULT)
user(
id: ID! @resource(type: USER)
): User! @auth(module: DEFAULT)
apiToken(
id: ID! @resource(type: API_TOKEN)
): ApiToken! @auth(module: DEFAULT)
institutes: InstituteSelection! @auth(module: DEFAULT)
institute(
id: ID! @resource(type: INSTITUTE)
): Institute! @auth(module: DEFAULT)
apps: AppSelection! @auth(module: DEFAULT)
app(
id: ID! @resource(type: APP)
): App! @auth(module: DEFAULT)
modules: AppModuleSelection! @auth(module: DEFAULT)
module(
id: ID! @resource(type: MODULE)
): AppModule! @auth(module: DEFAULT)
memberBoard(
id: ID! @resource(type: MEMBER_BOARD)
): MemberBoard! @auth(module: DEFAULT)
memberBoards(
filter: MemberBoardFilter! = {}
): MemberBoardSelection! @auth(module: DEFAULT)
examCenter(
id: ID! @resource(type: EXAM_CENTER)
): ExamCenter! @auth(module: DEFAULT)
examCenters(
filter: ExamCenterFilter! = {}
): ExamCenterSelection! @auth(module: DEFAULT)
role(
id: ID! @resource(type: ROLE)
): Role! @auth(module: DEFAULT)
roles(
filter: RoleFilter
): RoleSelection! @auth(module: DEFAULT)
userInvitations(
filter: UserInvitationFilter! = {}
): UserInvitationSelection! @auth(module: DEFAULT)
userInvitation(
id: ID! @resource(type: USER_INVITATION)
): UserInvitation! @auth(module: DEFAULT)
fileUploadUrl(
}
 
"""
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!
institute(
id: ID! @resource(type: INSTITUTE)
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
"""
AA
AB
AE
AF
AK
AM
AN
AR
AS
AV
AY
AZ
BA
BE
BG
BH
BI
BM
BN
BO
BR
BS
CA
CE
CH
CO
CR
CS
CU
CV
CY
DA
DE
DV
DZ
EE
EL
EN
EO
ES
ET
EU
FA
FF
FI
FJ
FO
FR
FY
GA
GD
GL
GN
GU
GV
HA
HE
HI
HO
HR
HT
HU
HY
HZ
IA
ID
IE
IG
II
IK
IO
IS
IT
IU
JA
JV
KA
KG
KI
KJ
KK
KL
KM
KN
KO
KR
KS
KU
KV
KW
KY
LA
LB
LG
LI
LN
LO
LT
LU
LV
MG
MH
MI
MK
ML
MN
MR
MS
MT
MY
NA
NB
ND
NE
NG
NL
NN
NO
NR
NV
NY
OC
OJ
OM
OR
OS
PA
PI
PL
PS
PT
QU
RM
RN
RO
RU
RW
SA
SC
SD
SE
SG
SI
SK
SL
SM
SN
SO
SQ
SR
SS
ST
SU
SV
SW
TA
TE
TG
TH
TI
TK
TL
TN
TO
TR
TS
TT
TW
TY
UG
UK
UR
UZ
VE
VI
VO
WA
WO
XH
YI
YO
ZA
ZH
ZU
}
 
"""
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