QM
"""
GraphQL API
"""
query: Query
mutation: Mutation
}
 
"""
Custom error type interface
"""
message: String!
code: String!
}
 
"""
Identity
"""
id: ID!
name: String!
isAccessible: Boolean!
}
 
"""
Reprezentace MyIdentity
"""
id: ID!
name: String!
isAccessible: Boolean!
systemAdmin: Boolean!
accessibleInstitutes: [InstituteAccess!]!
}
 
id: String!
name: String!
apiKey: String!
department: Department
}
 
"""
ApiToken
"""
id: ID!
isAccessible: Boolean!
name: String!
}
 
"""
Describes user's access to application
"""
id: ID!
name: String!
modules: [ModuleAccess!]!
}
 
id: String!
name: String!
tag: String!
isDraft: Boolean!
department: Department
}
 
id: String!
name: String!
description: String
visibility: Visibility!
department: Department!
collectionOrder: [CollectionOrder!]
}
 
id: String!
collection: Collection!
group: Group!
sequence: Int!
}
 
nodes: [ApiKey!]!
count: Int!
}
 
nodes: [Attribute!]!
count: Int!
}
 
nodes: [Collection!]!
count: Int!
}
 
nodes: [Credential!]!
count: Int!
}
 
nodes: [Department!]!
count: Int!
}
 
nodes: [Design!]!
count: Int!
}
 
nodes: [DesignHistory!]!
count: Int!
}
 
nodes: [DesignImage!]!
count: Int!
}
 
nodes: [Group!]!
count: Int!
}
 
id: String!
decryptedId: Int!
group: Group!
name: String!
email: String!
issueDate: DateTimeMs!
expiryDate: DateTimeMs
updatedAt: DateTimeMs
credentialLicenceId: String!
grade: Int
recipientId: String
accredibleId: String
badgeUrl: String
badgePreviewUrl: String
currentBadgeUrl: String
currentBadgePreviewUrl: String
certificateUrl: String
certificatePreviewUrl: String
currentCertificateUrl: String
currentCertificatePreviewUrl: String
customAttributes: [CustomAttribute]
badgeStatus: String
certificateStatus: String
txnId: String
proofId: String
proofValue: String
previousProof: String
proofCreated: DateTimeMs
receipt: String
}
 
id: String!
error: String!
createdAt: String!
updatedAt: String!
}
 
id: String!
status: CsvImportStatus!
createdAt: String!
updatedAt: String!
}
 
id: String!
value: String
attribute: Attribute!
}
 
department: Department!
lastMonth: Int!
lastQuarter: Int!
total: Int!
recipients: Int!
}
 
"""
Department type
"""
id: String!
slug: String!
name: String!
website: String
description: String
linkedinUrl: String
linkedinId: String
twitterUsername: String
facebookUrl: String
logoUrl: String
bannerUrl: String
tweetMessage: String
pageTitle: String
pageDescription: String
emailSender: String
qrUrl: String
groupsCount: Int
attributes: [Attribute]
skillsclub: Boolean!
webhook: Boolean!
autoSendCredentials: Boolean!
}
 
id: String!
name: String!
createdAt: DateTimeMs!
updatedAt: DateTimeMs!
type: String!
department: Department!
shapes: String!
groups: [Group]!
accredibleId: Int
size: String!
orientation: String!
history: [DesignHistory]!
current: DesignHistory!
approvedBy: String
}
 
id: String!
createdAt: DateTimeMs!
updatedAt: DateTimeMs!
shapes: String!
size: String!
orientation: String!
design: Design!
approved: Boolean!
createdBy: String
}
 
id: String!
name: String!
url: String!
department: Department!
}
 
"""
ExamCenter
"""
id: ID!
name: String!
contactEmail: EmailAddress
instituteId: ID!
memberBoardId: ID!
isAccessible: Boolean!
}
 
id: String!
decryptedId: Int!
createdAt: DateTimeMs!
updatedAt: DateTimeMs!
displayName: String!
acronym: String
identifier: String!
website: String
description: String!
certificate: Design
badge: Design
primary: String!
expirationPeriod: Int!
department: Department!
collectionOrder: [CollectionOrder!]
collectionCount: [CollectionOrder!]
credentialsCount: Int!
accredibleId: Int
autoSendCredentials: Boolean!
}
 
link: String!
}
 
"""
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!]
}
 
"""
Institute
"""
id: ID!
name: String!
logoFileUrl: Url
isAccessible: Boolean!
}
 
"""
Invalid country code provided exception.
"""
message: String!
code: String!
}
 
"""
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!]!
}
 
"""
 
"""
createApiKey(
createAttribute(
name: String!
tag: String!
parentEntity: AttributeParent!
department: String
): Attribute @auth(module: CERTHUB, permission: MUTATION_CREATE_ATTRIBUTE)
createCollection(
name: String!
description: String
visibility: Visibility!
department: String!
GroupOrderInput: [GroupOrderInput!]!
): Collection @auth(module: CERTHUB, permission: MUTATION_CREATE_COLLECTION)
createCredential(
group: String!
name: String!
email: String!
expiryDate: String
credentialLicenceId: String
grade: Int
recipientId: String
issueDate: String!
customAttributes: [CustomAttributesInput]
): Credential @auth(module: CERTHUB, permission: MUTATION_CREATE_CREDENTIAL)
createCredentialBulk(
credentials: [CreateCredentialInput!]!
): [Credential] @auth(module: CERTHUB, permission: MUTATION_CREATE_CREDENTIAL_BULK)
createCredentialCsv(
csv: Upload!
): String! @auth(module: CERTHUB, permission: MUTATION_CREATE_CREDENTIAL_CSV)
createDepartment(
CreateDepartmentInput: CreateDepartmentInput!
): Department @auth(module: CERTHUB, permission: MUTATION_CREATE_DEPARTMENT)
createDesign(
CreateDesignInput: CreateDesignInput!
): Design @auth(module: CERTHUB, permission: MUTATION_CREATE_DESIGN)
createDesignImage(
CreateDesignImageInput: CreateDesignImageInput!
): DesignImage @auth(module: CERTHUB, permission: MUTATION_CREATE_DESIGN_IMAGE)
createGroup(
displayName: String!
acronym: String
identifier: String!
website: String
description: String!
certificate: String
badge: String
primary: DesignType!
expirationPeriod: Int!
autoSendCredentials: Boolean! = true
): Group @auth(module: CERTHUB, permission: MUTATION_CREATE_GROUP)
deleteApiKey(
id: String!
): Success @auth(module: CERTHUB, permission: MUTATION_DELETE_API_KEY)
deleteCredential(
id: String!
): Success @auth(module: CERTHUB, permission: MUTATION_DELETE_CREDENTIAL)
deleteDesign(
id: String!
): Success @auth(module: CERTHUB, permission: MUTATION_DELETE_DESIGN)
deleteDesignImage(
id: String!
): Success @auth(module: CERTHUB, permission: MUTATION_DELETE_DESIGN_IMAGE)
deleteGroup(
id: String!
): Success @auth(module: CERTHUB, permission: MUTATION_DELETE_GROUP)
duplicateDesign(
id: String!
department: String!
): Design @auth(module: CERTHUB, permission: MUTATION_DUPLICATE_DESIGN)
duplicateGroup(
id: String!
department: String!
): Group @auth(module: CERTHUB, permission: MUTATION_DUPLICATE_GROUP)
moveCredentials(
group: String!
credentials: [String!]!
): [Credential] @auth(module: CERTHUB, permission: MUTATION_MOVE_CREDENTIALS)
sendCredentialEmail(
): [SendCredentialEmailResult!]! @auth(module: CERTHUB, permission: MUTATION_SEND_CREDENTIAL_EMAIL)
activeShapes(
designId: String!
historyId: String!
): Design! @auth(module: CERTHUB, permission: MUTATION_UPDATE_ACTIVE_SHAPE)
updateAttribute(
id: String!
name: String
tag: String
parentEntity: AttributeParent
): Attribute @auth(module: CERTHUB, permission: MUTATION_UPDATE_ATTRIBUTE)
updateCollection(
id: String!
name: String
description: String
visibility: Visibility
GroupOrderInput: [GroupOrderInput]
): Collection @auth(module: CERTHUB, permission: MUTATION_UPDATE_COLLECTION)
updateCredential(
id: String!
name: String
email: String
expiryDate: String
credentialLicenceId: String
grade: Int
recipientId: String
issueDate: String
customAttributes: [CustomAttributesInput]
): Credential @auth(module: CERTHUB, permission: MUTATION_UPDATE_CREDENTIAL)
updateDepartment(
UpdateDepartmentInput: UpdateDepartmentInput!
): Department @auth(module: CERTHUB, permission: MUTATION_UPDATE_DEPARTMENT)
updateDesign(
id: String!
name: String
department: String
shapes: String
size: String
orientation: String
): Design @auth(module: CERTHUB, permission: MUTATION_UPDATE_DESIGN)
updateDesignImage(
id: String!
name: String
): DesignImage @auth(module: CERTHUB, permission: MUTATION_UPDATE_DESIGN_IMAGE)
updateGroup(
id: String!
displayName: String
acronym: String
identifier: String
website: String
description: String
certificate: String
badge: String
primary: DesignType
expirationPeriod: Int
autoSendCredentials: Boolean
): Group @auth(module: CERTHUB, permission: MUTATION_UPDATE_GROUP)
upload(
image: Upload!
): UploadPayload @auth(module: CERTHUB, permission: MUTATION_UPLOAD)
}
 
"""
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!
}
 
"""
 
"""
apiKeys(
name: String
pagination: PaginationInput! = {page:1,itemsPerPage:20}
attributes(
departmentId: String!
pagination: PaginationInput! = {page:1,itemsPerPage:20}
): CountedAttribute! @auth(module: CERTHUB)
collections(
id: String
name: String
visibility: String
pagination: PaginationInput! = {page:1,itemsPerPage:20}
): CountedCollection! @auth(module: CERTHUB)
credentials(
id: String
group: [String]
search: String
issuedAtFrom: String
issuedAtTo: String
updatedAtFrom: String
updatedAtTo: String
expiryDateFrom: String
expiryDateTo: String
neverExpires: Boolean
direction: SortDirection
pagination: PaginationInput! = {page:1,itemsPerPage:20}
): CountedCredential! @auth(module: CERTHUB)
credentialsCsv(
id: String
group: [String]
search: String
issuedAtFrom: String
issuedAtTo: String
updatedAtFrom: String
updatedAtTo: String
expiryDateFrom: String
expiryDateTo: String
neverExpires: Boolean
direction: SortDirection
): String! @auth(module: CERTHUB)
credentialsTemplate(
department: String!
): String! @auth(module: CERTHUB)
csvImportStatus(
id: String!
): CsvImportStatusPayload @auth(module: CERTHUB)
dashboard: Dashboard! @auth(module: CERTHUB)
departments(
id: String
name: String
pagination: PaginationInput! = {page:1,itemsPerPage:20}
): CountedDepartment! @auth(module: CERTHUB)
designHistories(
id: String
pagination: PaginationInput! = {page:1,itemsPerPage:20}
): CountedDesignHistory! @auth(module: CERTHUB)
designHistory(
id: String!
): DesignHistory! @auth(module: CERTHUB)
designImages(
id: String
name: String
pagination: PaginationInput! = {page:1,itemsPerPage:20}
): CountedDesignImage! @auth(module: CERTHUB)
designs(
id: String
group: [String]
collection: String
name: String
type: String
pagination: PaginationInput! = {page:1,itemsPerPage:20}
): CountedDesign! @auth(module: CERTHUB)
errors: [String!]!
groups(
id: String
search: String
collection: [String]
certificate: Boolean
badge: Boolean
design: String
createdAtFrom: String
createdAtTo: String
updatedAtFrom: String
updatedAtTo: String
sort: GroupSort
direction: SortDirection
pagination: PaginationInput! = {page:1,itemsPerPage:20}
): CountedGroup! @auth(module: CERTHUB)
groupsCsv(
search: String
collection: [String]
certificate: Boolean
badge: Boolean
createdAtFrom: String
createdAtTo: String
updatedAtFrom: String
updatedAtTo: String
sort: GroupSort
direction: SortDirection
): String! @auth(module: CERTHUB)
 
"Get information about current identity."
}
 
credential: Credential!
}
 
success: Boolean
}
 
file: String!
}
 
"""
User
"""
id: ID!
isAccessible: Boolean!
name: String!
firstName: String!
lastName: String!
email: EmailAddress!
}
 
name: String!
isGlobal: Boolean!
}
 
group: String!
name: String!
email: String!
expiryDate: String
credentialLicenceId: String
grade: Int
recipientId: String
issueDate: String!
customAttributes: [CustomAttributesInput]
}
 
name: String!
slug: String!
website: String
description: String
linkedinUrl: String
linkedinId: String
twitterUsername: String
facebookUrl: String
logo: Upload
banner: Upload
tweetMessage: String
pageTitle: String
pageDescription: String
qrUrl: String
skillsclub: Boolean!
webhook: Boolean!
autoSendCredentials: Boolean! = false
}
 
name: String!
image: Upload!
department: String!
}
 
name: String!
type: DesignType!
department: String!
shapes: String!
size: String!
orientation: String!
}
 
attribute: String!
value: String
data: Upload
}
 
certificate: Boolean
badge: Boolean
}
 
group: String!
sequence: Int!
}
 
minItems: Int = null @intConstraint(min: 0)
maxItems: Int = null @intConstraint(min: 0)
unique: Boolean! = false
innerList: ListConstraintInput = null
}
 
count: Int! @intConstraint(min: 1)
from: [String!]! @listConstraint(minItems: 1)
}
 
page: Int! = 1
itemsPerPage: Int! = 20
}
 
credentialIds: [ID!]! @listConstraint(minItems: 1, unique: true)
}
 
id: String!
name: String
slug: String
website: String
description: String
linkedinUrl: String
linkedinId: String
twitterUsername: String
facebookUrl: String
logo: Upload
banner: Upload
tweetMessage: String
pageTitle: String
pageDescription: String
qrUrl: String
skillsclub: Boolean
webhook: Boolean
autoSendCredentials: Boolean
}
 
id: String!
name: String!
type: DesignType!
department: String!
shapes: String!
}
 
"""
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")
 
"""
Upload type - represents file which was send to server.
By GraphQL viewpoint it is scalar type, but it must be used as input only.;
"""
scalar Upload @specifiedBy(url: "https://github.com/jaydenseric/graphql-multipart-request-spec")
 
"""
Url type - string which contains valid URL (Uniform Resource Locator).
"""
scalar Url @specifiedBy(url: "https://datatracker.ietf.org/doc/html/rfc3986")
 
issuer
group
credential
recipient
custom
}
 
text
date
email
image
draft
}
 
id
name
email
issuedAt
updatedAt
createdAt
}
 
NEW
PROCESSING
FAILED
COMPLETE_WITH_ERRORS
COMPLETE
}
 
badge
certificate
}
 
displayName
createdAt
updatedAt
id
identifier
credentialCount
department
}
 
"""
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
}
 
"""
Modules supported by this application
"""
CERTHUB
}
 
"""
Permissions supported by this application
"""
MUTATION_CREATE_ATTRIBUTE
MUTATION_CREATE_COLLECTION
MUTATION_CREATE_CREDENTIAL
MUTATION_CREATE_CREDENTIAL_BULK
MUTATION_CREATE_CREDENTIAL_CSV
MUTATION_CREATE_DEPARTMENT
MUTATION_CREATE_DESIGN
MUTATION_CREATE_DESIGN_IMAGE
MUTATION_CREATE_GROUP
MUTATION_DELETE_API_KEY
MUTATION_DELETE_CREDENTIAL
MUTATION_DELETE_DESIGN
MUTATION_DELETE_DESIGN_IMAGE
MUTATION_DELETE_GROUP
MUTATION_DUPLICATE_DESIGN
MUTATION_DUPLICATE_GROUP
MUTATION_MOVE_CREDENTIALS
MUTATION_UPDATE_ACTIVE_SHAPE
MUTATION_UPDATE_ATTRIBUTE
MUTATION_UPDATE_COLLECTION
MUTATION_UPDATE_CREDENTIAL
MUTATION_UPDATE_DEPARTMENT
MUTATION_UPDATE_DESIGN
MUTATION_UPDATE_DESIGN_IMAGE
MUTATION_UPDATE_GROUP
MUTATION_SEND_CREDENTIAL_EMAIL
MUTATION_UPLOAD
}
 
"""
Typ entity
"""
CREDENTIAL
}
 
SUCCESS
ALREADY_SENT
BADGE_AND_CERTIFICATE_NOT_READY
}
 
"""
Sorting direction
"""
ASC
DESC
}
 
private
public
}
 
"""
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
 
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