generated: '2026-10-09' method: derived generator: derive-data-model.py source: - openapi/cesnet-exafs-openapi.yml - openapi/cesnet-perun-rpc-openapi.yml notation: has_one = property $ref; has_many = array of $ref; belongs_to = _id field summary: entities: 126 entities_in_spec: 126 relationships: 154 entities: - name: Application fields: 18 - name: ApplicationForm fields: 7 - name: ApplicationFormItem fields: 17 - name: ApplicationFormItemData fields: 6 - name: ApplicationMail fields: 7 - name: ApplicationOperationResult fields: 2 - name: ApplicationsPageQuery fields: 13 - name: AssignedGroup fields: 5 - name: AssignedMember fields: 2 description: represents a member of a group assigned to a resource - name: AssignedResource fields: 7 - name: Attribute fields: 5 - name: AttributeDefinition fields: 10 - name: AttributePolicy fields: 4 - name: AttributePolicyCollection fields: 4 - name: AttributeRules fields: 2 - name: AuditEvent fields: 14 - name: AuditMessage fields: 5 - name: AuditMessagesPageQuery fields: 4 - name: Auditable fields: 6 description: represents audit information - name: Author fields: 7 - name: Authorship fields: 5 - name: AuthzRoles fields: 0 - name: Ban fields: 2 - name: BanOnFacility fields: 2 - name: BanOnResource fields: 2 - name: BanOnVo fields: 2 - name: BlockedLogin fields: 3 description: represent a login block for namespace (or globally) - name: BlockedLoginsPageQuery fields: 6 - name: Brand fields: 5 - name: Candidate fields: 4 - name: CantBeApprovedException fields: 5 description: thrown by Registrar modules when application shouldn't be approved - name: Category fields: 2 - name: Consent fields: 4 - name: ConsentHub fields: 3 - name: Destination fields: 3 - name: EnrichedBanOnFacility fields: 3 - name: EnrichedBanOnResource fields: 3 - name: EnrichedBanOnVo fields: 3 - name: EnrichedExtSource fields: 2 - name: EnrichedFacility fields: 4 - name: EnrichedGroup fields: 2 - name: EnrichedHost fields: 2 - name: EnrichedIdentity fields: 5 - name: EnrichedResource fields: 2 - name: EnrichedVo fields: 3 - name: EntitylessAttributesByKeys fields: 0 - name: ExtSource fields: 2 description: represents external source of data for users such as an IdP or an HR database - name: Facility fields: 3 - name: FacilityState fields: 3 - name: FacilityWithAttributes fields: 2 - name: GenDataNode fields: 2 - name: GraphDTO fields: 2 - name: Group fields: 6 - name: GroupMemberData fields: 2 - name: GroupMemberRelation fields: 8 - name: GroupsPageQuery fields: 8 - name: HashedGenData fields: 2 - name: Host fields: 1 - name: IPv4Rule fields: 0 - name: IPv4RuleInput fields: 13 - name: IPv6Rule fields: 0 - name: IPv6RuleInput fields: 12 - name: Identity fields: 5 - name: IdmObject fields: 2 - name: Invitation fields: 11 - name: InvitationWithSender fields: 2 - name: InvitationsPageQuery fields: 8 - name: ItemTexts fields: 5 - name: MailText fields: 4 - name: Member fields: 9 description: represents Member of a Virtual Organization - name: MemberCandidate fields: 3 - name: MemberWithSponsors fields: 2 - name: MembersPageQuery fields: 8 - name: NamespaceRules fields: 7 - name: NewApps fields: 7 - name: Owner fields: 3 - name: PaginatedAuditMessages fields: 4 - name: PaginatedBlockedLogins fields: 4 - name: PaginatedInvitationsWithSender fields: 4 - name: PaginatedRichApplications fields: 4 - name: PaginatedRichGroups fields: 4 - name: PaginatedRichMembers fields: 4 - name: PaginatedRichUsers fields: 4 description: represents Paginated<RichUser> - name: PersonalDataChangeConfig fields: 9 description: represents personal data change config - name: PerunAppsConfig fields: 1 - name: PerunBean fields: 2 description: identifiable entity in Perun, common ancestor of all entity classes - name: PerunException fields: 3 description: exception thrown from inside of Perun - name: PerunNotifObject fields: 4 - name: PerunNotifReceiver fields: 5 description: Represents one receiver of message, is defined in template - name: PerunNotifRegex fields: 4 description: Holds a regex definition used to recognize type of message - name: PerunNotifTemplate fields: 11 description: Represents template for message sent to receivers - name: PerunNotifTemplateMessage fields: 5 description: Localized freemarker template - name: PerunPolicy fields: 3 - name: PerunPrincipal fields: 9 - name: Publication fields: 14 - name: PublicationForGUI fields: 3 - name: PublicationSystem fields: 6 - name: RTBHRule fields: 0 - name: RTBHRuleInput fields: 7 - name: RTMessage fields: 2 - name: RegistrarApplicationInput fields: 4 description: input for registrar application endpoints - name: Resource fields: 5 - name: ResourceState fields: 2 - name: ResourceTag fields: 2 - name: RichApplication fields: 1 - name: RichDestination fields: 5 - name: RichFacility fields: 1 - name: RichGroup fields: 1 - name: RichMember fields: 4 description: Member data packed with member and user attributes, User and UserExtSources - name: RichResource fields: 3 - name: RichUser fields: 2 description: user data packed together with all user attributes and UserExtSources - name: RichUserExtSource fields: 2 - name: RoleManagementRules fields: 9 - name: Service fields: 9 - name: ServiceForGUI fields: 1 - name: ServiceState fields: 7 - name: Sponsor fields: 5 description: represents a Sponsor for some specific member - name: SponsoredUserData fields: 9 - name: Task fields: 17 - name: TaskResult fields: 10 - name: Thanks fields: 5 - name: ThanksForGUI fields: 1 - name: User fields: 10 description: represents user as a physical person - name: UserExtSource fields: 6 description: represents specific user authentication or identification in external source of data - name: UsersPageQuery fields: 12 - name: Vo fields: 3 relationships: - from: IPv4Rule to: User type: belongs_to via: user_id - from: IPv6Rule to: User type: belongs_to via: user_id - from: RTBHRule to: User type: belongs_to via: user_id - from: CantBeApprovedException to: Application type: belongs_to via: applicationId - from: RichUser to: UserExtSource type: has_many via: userExtSources - from: RichUser to: Attribute type: has_many via: userAttributes - from: PaginatedRichUsers to: RichUser type: has_many via: data - from: Sponsor to: User type: has_one via: user - from: Sponsor to: UserExtSource type: has_many via: userExtSources - from: Sponsor to: Attribute type: has_many via: userAttributes - from: Member to: User type: belongs_to via: userId - from: Member to: Vo type: belongs_to via: voId - from: AssignedMember to: RichMember type: has_one via: richMember - from: RichMember to: User type: has_one via: user - from: RichMember to: UserExtSource type: has_many via: userExtSources - from: RichMember to: Attribute type: has_many via: userAttributes - from: RichMember to: Attribute type: has_many via: memberAttributes - from: PaginatedRichMembers to: RichMember type: has_many via: data - from: MembersPageQuery to: Group type: belongs_to via: groupId - from: UsersPageQuery to: Facility type: belongs_to via: facilityId - from: UsersPageQuery to: Vo type: belongs_to via: voId - from: UsersPageQuery to: Service type: belongs_to via: serviceId - from: UsersPageQuery to: Resource type: belongs_to via: resourceId - from: PaginatedBlockedLogins to: BlockedLogin type: has_many via: data - from: UserExtSource to: User type: belongs_to via: userId - from: UserExtSource to: ExtSource type: has_one via: extSource - from: EnrichedExtSource to: ExtSource type: has_one via: extSource - from: AttributeRules to: AttributePolicyCollection type: has_many via: attributePolicyCollections - from: AuditEvent to: AttributeDefinition type: has_one via: attribute - from: AuditEvent to: ExtSource type: has_one via: extSource - from: AuditEvent to: ExtSource type: has_one via: source - from: AuditEvent to: Facility type: has_one via: facility - from: AuditEvent to: Group type: has_one via: group - from: AuditEvent to: Group type: has_one via: parentGroup - from: AuditEvent to: Member type: has_one via: member - from: AuditEvent to: Resource type: has_one via: resource - from: AuditEvent to: Service type: has_one via: service - from: AuditEvent to: User type: has_one via: user - from: AuditEvent to: UserExtSource type: has_one via: userExtSource - from: AuditEvent to: Vo type: has_one via: vo - from: AuditMessage to: AuditEvent type: has_one via: event - from: PaginatedAuditMessages to: AuditMessage type: has_many via: data - from: AttributePolicyCollection to: Attribute type: belongs_to via: attributeId - from: AttributePolicyCollection to: AttributePolicy type: has_many via: policies - from: RichFacility to: Owner type: has_many via: facilityOwners - from: FacilityWithAttributes to: Facility type: has_one via: facility - from: FacilityWithAttributes to: Attribute type: has_many via: attributes - from: EnrichedResource to: Resource type: has_one via: resource - from: EnrichedResource to: Attribute type: has_many via: attributes - from: EnrichedGroup to: Group type: has_one via: group - from: EnrichedGroup to: Attribute type: has_many via: attributes - from: AssignedResource to: EnrichedResource type: has_one via: enrichedResource - from: AssignedResource to: Facility type: has_one via: facility - from: AssignedResource to: ResourceTag type: has_many via: resourceTags - from: AssignedGroup to: EnrichedGroup type: has_one via: enrichedGroup - from: EnrichedHost to: Host type: has_one via: host - from: EnrichedHost to: Attribute type: has_many via: hostAttributes - from: EnrichedFacility to: Facility type: has_one via: facility - from: EnrichedFacility to: Owner type: has_many via: owners - from: EnrichedFacility to: Destination type: has_many via: destinations - from: EnrichedFacility to: Host type: has_many via: hosts - from: EnrichedVo to: Vo type: has_one via: vo - from: EnrichedVo to: Vo type: has_many via: memberVos - from: EnrichedVo to: Vo type: has_many via: parentVos - from: ConsentHub to: Facility type: has_many via: facilities - from: Publication to: Author type: has_many via: authors - from: Publication to: PublicationSystem type: belongs_to via: publicationSystemId - from: Publication to: Category type: belongs_to via: categoryId - from: PublicationForGUI to: ThanksForGUI type: has_many via: thanks - from: Thanks to: Publication type: belongs_to via: publicationId - from: Thanks to: Owner type: belongs_to via: ownerId - from: Authorship to: Publication type: belongs_to via: publicationId - from: Authorship to: User type: belongs_to via: userId - from: Author to: Attribute type: has_many via: attributes - from: Author to: Authorship type: has_many via: authorships - from: Group to: Vo type: belongs_to via: voId - from: RichGroup to: Attribute type: has_many via: attributes - from: PaginatedRichGroups to: RichGroup type: has_many via: data - from: GroupsPageQuery to: Member type: belongs_to via: memberId - from: Consent to: User type: belongs_to via: userId - from: Consent to: ConsentHub type: has_one via: consentHub - from: Consent to: AttributeDefinition type: has_many via: attributes - from: Resource to: Vo type: belongs_to via: voId - from: Resource to: Facility type: belongs_to via: facilityId - from: RichResource to: Vo type: has_one via: vo - from: RichResource to: Facility type: has_one via: facility - from: RichResource to: ResourceTag type: has_many via: resourceTags - from: ResourceTag to: Vo type: belongs_to via: voId - from: RichDestination to: Service type: has_one via: service - from: RichDestination to: Facility type: has_one via: facility - from: ApplicationForm to: Vo type: has_one via: vo - from: ApplicationForm to: Group type: has_one via: group - from: ApplicationFormItemData to: ApplicationFormItem type: has_one via: formItem - from: Application to: Vo type: has_one via: vo - from: Application to: Group type: has_one via: group - from: Application to: User type: has_one via: user - from: RichApplication to: ApplicationFormItemData type: has_many via: formData - from: PaginatedRichApplications to: RichApplication type: has_many via: data - from: ApplicationsPageQuery to: User type: belongs_to via: userId - from: ApplicationsPageQuery to: Group type: belongs_to via: groupId - from: Invitation to: Vo type: belongs_to via: voId - from: Invitation to: Group type: belongs_to via: groupId - from: Invitation to: Application type: belongs_to via: applicationId - from: PaginatedInvitationsWithSender to: InvitationWithSender type: has_many via: data - from: PerunPrincipal to: User type: has_one via: user - from: PerunPrincipal to: User type: belongs_to via: userId - from: BanOnResource to: Member type: belongs_to via: memberId - from: BanOnResource to: Resource type: belongs_to via: resourceId - from: BanOnVo to: Member type: belongs_to via: memberId - from: BanOnVo to: Vo type: belongs_to via: voId - from: EnrichedBanOnVo to: Vo type: has_one via: vo - from: EnrichedBanOnVo to: RichMember type: has_one via: member - from: EnrichedBanOnVo to: BanOnVo type: has_one via: ban - from: BanOnFacility to: User type: belongs_to via: userId - from: BanOnFacility to: Facility type: belongs_to via: facilityId - from: EnrichedBanOnResource to: Resource type: has_one via: resource - from: EnrichedBanOnResource to: RichMember type: has_one via: member - from: EnrichedBanOnResource to: BanOnResource type: has_one via: ban - from: EnrichedBanOnFacility to: Facility type: has_one via: facility - from: EnrichedBanOnFacility to: RichUser type: has_one via: user - from: EnrichedBanOnFacility to: BanOnFacility type: has_one via: ban - from: RichUserExtSource to: UserExtSource type: has_one via: userExtSource - from: RichUserExtSource to: Attribute type: has_many via: attributes - from: Candidate to: UserExtSource type: has_one via: userExtSource - from: Candidate to: UserExtSource type: has_many via: additionalUserExtSources - from: MemberCandidate to: Candidate type: has_one via: candidate - from: MemberCandidate to: Member type: has_one via: member - from: MemberCandidate to: RichUser type: has_one via: richUser - from: Task to: Service type: has_one via: service - from: Task to: Facility type: has_one via: facility - from: Task to: Destination type: has_many via: destinations - from: TaskResult to: Task type: belongs_to via: taskId - from: TaskResult to: Destination type: belongs_to via: destinationId - from: TaskResult to: Destination type: has_one via: destination - from: TaskResult to: Service type: has_one via: service - from: FacilityState to: Facility type: has_one via: facility - from: ResourceState to: Resource type: has_one via: resource - from: ResourceState to: Task type: has_many via: taskList - from: ServiceState to: Service type: has_one via: service - from: ServiceState to: Facility type: has_one via: facility - from: ServiceState to: Task type: has_one via: task - from: MemberWithSponsors to: RichMember type: has_one via: member - from: MemberWithSponsors to: Sponsor type: has_many via: sponsors - from: Brand to: NewApps type: has_one via: newApps - from: PerunAppsConfig to: Brand type: has_many via: brands - from: GroupMemberData to: GroupMemberRelation type: has_many via: relations - from: Identity to: ExtSource type: has_many via: identities - from: EnrichedIdentity to: EnrichedExtSource type: has_many via: identities - from: ApplicationOperationResult to: Application type: belongs_to via: applicationId - from: ApplicationOperationResult to: PerunException type: has_one via: error - from: PerunNotifTemplate to: PerunNotifRegex type: has_many via: matchingRegexs - from: PerunNotifTemplate to: PerunNotifReceiver type: has_many via: receivers - from: PerunNotifTemplate to: PerunNotifTemplateMessage type: has_many via: perunNotifTemplateMessages - from: PerunNotifRegex to: PerunNotifObject type: has_many via: objects